

終止支援通知：將於 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)