

終止支援通知：2026 年 10 月 7 日 AWS 將終止 的支援 AWS Proton。2026 年 10 月 7 日之後，您將無法再存取 AWS Proton 主控台或 AWS Proton 資源。您部署的基礎設施將保持不變。如需詳細資訊，請參閱[AWS Proton 服務棄用和遷移指南](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 服務同步組態
<a name="ag-service-sync-configs"></a>

透過服務同步，您可以使用 Git 來設定和部署 AWS Proton 服務。您可以使用服務同步，透過 Git 儲存庫中定義的組態來管理 AWS Proton 服務的初始部署和更新。透過 Git，您可以使用版本追蹤和提取請求等功能來設定、管理和部署您的服務。服務同步結合了 AWS Proton 和 Git，可協助您佈建透過 AWS Proton 範本定義和管理的標準化基礎設施。它可管理 Git 儲存庫中的服務定義，並減少工具切換。相較於單獨使用 Git， 中的 AWS Proton 範本和部署標準化可協助您減少管理基礎設施的時間。 AWS Proton 也為開發人員和平台團隊提供更高的透明度和可稽核性。

## AWS Proton OPS 檔案
<a name="service-sync-ops"></a>

`proton-ops` 檔案會定義 在何處 AWS Proton 尋找用來更新服務執行個體的規格檔案。它還定義了在 中更新服務執行個體的順序，以及何時將變更從一個執行個體提升到另一個執行個體。

`proton-ops` 檔案支援使用規格檔案或連結儲存庫中的多個規格檔案來同步服務執行個體。您可以在 `proton-ops` 檔案中定義同步區塊來執行此操作，如下列範例所示。

**範例 ./configuration/proton-ops.yaml：**

```
sync:
  services:
      frontend-svc:
          alpha:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          beta:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          gamma:
              branch: pre-prod
              spec: ./frontend-svc/pre-prod/frontend-spec.yaml
          prod-one:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-two:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-three:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
```

在上述範例中， `frontend-svc`是服務名稱，而 `alpha`、、`prod-two`、、 和 `beta` `gamma` `prod-one``prod-three`是執行個體。

`spec` 檔案可以是檔案內定義的所有執行個體或執行個體子集`proton-ops`。不過，它至少必須在分支中定義執行個體，以及要同步的規格。如果未在 `proton-ops` 檔案中定義執行個體，且具有特定分支和`spec`檔案位置，則服務同步不會建立或更新這些執行個體。

下列範例顯示`spec`檔案的外觀。請記住，`proton-ops`檔案會從這些`spec`檔案同步。

**範例`./frontend-svc/test/frontend-spec.yaml`：**

```
proton: "ServiceSpec"
instances:
- name: "alpha"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "beta"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**範例`./frontend-svc/pre-prod/frontend-spec.yaml`：**

```
proton: "ServiceSpec"
instances:
- name: "gamma"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**範例`./frontend-svc/prod/frontend-spec-second.yaml`：**

```
proton: "ServiceSpec"
instances:
- name: "prod-one"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-two"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-three"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

如果執行個體未同步，且嘗試同步時持續發生問題，呼叫 [https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html](https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html) API 可能有助於解決問題。

**注意**  
使用服務同步的客戶仍受到 AWS Proton 限制。

**封鎖程式**

透過使用服務同步來 AWS Proton 同步服務，您可以更新您的服務規格，並從 Git 儲存庫建立和更新服務執行個體。不過，有時候您可能需要透過 或 手動更新服務或執行個體 AWS 管理主控台 AWS CLI。

AWS Proton 有助於避免覆寫您透過 AWS 管理主控台 或 所做的任何手動變更 AWS CLI，例如更新服務執行個體或刪除服務執行個體。為了達成此目的， AWS Proton 會在偵測到手動變更時停用服務同步，以自動建立服務同步封鎖程式。

若要取得與服務相關聯的所有封鎖程式，您必須針對與服務`serviceInstance`相關聯的每個 執行下列動作：
+ 僅使用 呼叫 `getServiceSyncBlockerSummary` API`serviceName`。
+ 使用 `serviceName`和 呼叫 `getServiceSyncBlockerSummary` API`serviceInstanceName`。

這會傳回最新的封鎖程式清單，以及與其相關聯的狀態。如果有任何封鎖程式標示為 **ACTIVE**，您必須呼叫 `UpdateServiceSyncBlocker` API 來解決這些問題，`resolvedReason`並針對每個封鎖程式呼叫 `blockerId`和 。

如果您手動更新或建立服務執行個體， 會在服務執行個體上 AWS Proton 建立服務同步封鎖程式。 AWS Proton 會繼續同步所有其他服務執行個體，但會停用此服務執行個體的同步，直到封鎖程式解決為止。如果您從服務中刪除服務執行個體， 會在服務上 AWS Proton 建立服務同步封鎖程式。這 AWS Proton 可防止同步任何服務執行個體，直到封鎖程式解決為止。

在您擁有所有作用中的封鎖程式之後，您必須透過呼叫 `UpdateServiceSyncBlocker` API 搭配 `blockerId`和每個作用中`resolvedReason`的封鎖程式來解決這些問題。

使用 AWS 管理主控台，您可以透過導覽並選擇 AWS Proton 服務同步索引標籤來判斷**服務同步**是否已停用。如果服務或 服務執行個體遭到封鎖，則會顯示**啟用**按鈕。若要啟用服務同步，請選擇**啟用**。

**Topics**
+ [AWS Proton OPS 檔案](#service-sync-ops)
+ [建立服務同步組態](create-service-sync.md)
+ [檢視服務同步的組態詳細資訊](get-service-sync.md)
+ [編輯服務同步組態](update-service-sync.md)
+ [刪除服務同步組態](delete-service-sync.md)

# 建立服務同步組態
<a name="create-service-sync"></a>



您可以使用 主控台或 建立服務同步組態 AWS CLI。

------
#### [ AWS 管理主控台 ]

1. 在**選擇服務範本**頁面上，選取範本，然後選擇**設定**。

1. 在**設定服務**頁面上的服務**詳細資訊**區段中，輸入新的**服務名稱**。

1. （選用） 輸入服務的描述。

1. 在**應用程式原始碼儲存庫**區段中，選擇**選擇連結的 Git 儲存庫**，以選取您已連結的儲存庫 AWS Proton。如果您還沒有連結的儲存庫，請選擇**連結另一個 Git 儲存庫**，並遵循[建立儲存庫連結](https://docs.aws.amazon.com//proton/latest/userguide/ag-create-repo.html)中的指示。

1. 對於**儲存庫**，從清單中選擇來源碼儲存庫的名稱。

1. 針對**分支**，從清單中選擇來源碼的儲存庫分支名稱。

1. （選用） 在**標籤**區段中，選擇**新增標籤**，然後輸入索引鍵和值以建立客戶受管標籤。

1. 選擇**下一步**。

1. 在**設定服務執行個體**頁面**的服務定義來源**區段中，選取**從 Git 同步您的服務**。

1. 在**服務定義檔案**區段中，如果您想要 AWS Proton 建立`proton-ops`檔案，請選取**我想要 AWS Proton 建立檔案**。使用此選項， 會在您指定的位置 AWS Proton 建立 `spec`和 `proton-ops` 檔案。選取**我提供自己的檔案**，以建立您自己的 OPS 檔案。

1. 在**服務定義儲存庫**區段中，選擇**選擇連結的 Git 儲存庫**，以選取您已連結的儲存庫 AWS Proton。

1. 針對**儲存庫名稱**，從清單中選擇來源碼儲存庫的名稱。

1. 對於**`proton-ops`檔案分支**，請從 AWS Proton 將放置 OPS 和規格檔案的清單中選擇分支的名稱。

1. 在**服務執行個體**區段中，每個欄位都會根據`proton-ops`檔案中的值自動填入。

1. 選擇**下一步**並檢閱您的輸入。

1. 選擇**建立**。

------
#### [ AWS CLI ]

**使用 建立服務同步組態 AWS CLI**
+ 執行下列命令。

  ```
  $ aws proton create-service-sync-config \
      --resource "service-arn" \
      --repository-provider "GITHUB" \
      --repository "example/proton-sync-service" \
      --ops-file-branch "main" \
      --proton-ops-file "./configuration/custom-proton-ops.yaml" (optional)
  ```

  回應如下所示。

  ```
  {
      "serviceSyncConfig": {
          "branch": "main",
          "filePath": "./configuration/custom-proton-ops.yaml",
          "repositoryName": "example/proton-sync-service",
          "repositoryProvider": "GITHUB",
          "serviceName": "service name"
      }
  }
  ```

------

# 檢視服務同步的組態詳細資訊
<a name="get-service-sync"></a>

您可以使用 主控台或 檢視服務同步的組態詳細資訊資料 AWS CLI。

------
#### [ AWS 管理主控台 ]

**使用 主控台檢視服務同步的組態詳細資訊**

1. 在導覽窗格中，選擇**服務**。

1. 若要檢視詳細資訊，請選擇您為其建立服務同步組態的服務名稱。

1. 在服務的詳細資訊頁面中，選取**服務同步**索引標籤以檢視服務同步的組態詳細資訊資料。

------
#### [ AWS CLI ]

**使用 AWS CLI 取得同步服務。**

執行下列命令。

```
$ aws proton get-service-sync-config \
    --service-name "service name"
```

回應如下所示。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**使用 AWS CLI 取得服務同步狀態。**

執行下列命令。

```
$ aws proton get-service-sync-status \
    --service-name "service name"
```

------

# 編輯服務同步組態
<a name="update-service-sync"></a>

您可以使用 主控台或 編輯服務同步組態 AWS CLI。



------
#### [ AWS 管理主控台 ]

使用主控台編輯服務同步組態。

1. 在導覽窗格中，選擇**服務**。

1. 若要檢視詳細資訊，請選擇您為其建立服務同步組態的服務名稱。

1. 在服務詳細資訊頁面上，選擇**服務同步**索引標籤。

1. 在**服務同步**區段中，選擇**編輯**。

1. 在**編輯**頁面上，更新您要編輯的資訊，然後選擇**儲存**。

------
#### [ AWS CLI ]

**下列範例命令和回應顯示如何使用 編輯服務同步組態 AWS CLI。**

執行下列命令。

```
$ aws proton update-service-sync-config \
    --service-name "service name" \
    --repository-provider "GITHUB" \
    --repository "example/proton-sync-service" \
    --ops-file-branch "main" \
    --ops-file "./configuration/custom-proton-ops.yaml"
```

回應如下所示。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

------

# 刪除服務同步組態
<a name="delete-service-sync"></a>

您可以使用 主控台或 刪除服務同步組態 AWS CLI。

------
#### [ AWS 管理主控台 ]

**使用主控台刪除服務同步組態**

1. 在服務詳細資訊頁面上，選擇**服務同步**索引標籤。

1. 在**服務同步詳細資訊**區段中，選擇**中斷連線**以中斷儲存庫的連線。您的儲存庫中斷連線後，我們就不會再同步該儲存庫的服務。

------
#### [ AWS CLI ]

**下列範例命令和回應示範如何使用 AWS CLI 刪除服務同步組態。**

執行下列命令。

```
$ aws proton delete-service-sync-config \
    --service-name "service name"
```

回應如下所示。

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**注意**  
服務同步不會刪除服務執行個體。它只會刪除組態。

------