

终止支持通知：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，您可以使用版本跟踪和拉取请求等功能配置、管理和部署您的服务。服务同步与 Git 相结合 AWS Proton ，可帮助您配置通过 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`、`beta`、`gamma`、`prod-one`、`prod-two` 和 `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 CLI。 AWS 管理控制台 

AWS Proton 有助于避免覆盖您通过 AWS 管理控制台 或所做的任何手动更改 AWS CLI，例如更新服务实例或删除服务实例。为了实现该目的，在检测到手动更改时， AWS Proton 禁用服务同步以自动创建服务同步阻止标记。

要获取与某个服务关联的所有阻止标记，您必须按顺序为与该服务关联的每个 `serviceInstance` 执行以下操作：
+ 仅使用 `serviceName` 调用 `getServiceSyncBlockerSummary` API。
+ 使用 `serviceName` 和 `serviceInstanceName` 调用 `getServiceSyncBlockerSummary` API。

这会返回最近的阻止标记及其关联状态的列表。如果任何阻止标记标为 **ACTIVE**，您必须使用 `blockerId` 和 `resolvedReason` 为每个阻止标记调用 `UpdateServiceSyncBlocker` API 以解除这些阻止标记。

如果您手动更新或创建服务实例，则会在服务实例上 AWS Proton 创建服务同步拦截器。 AWS Proton 继续同步所有其他服务实例，但在阻止程序解决之前禁用此服务实例的同步。如果您从服务中删除服务实例，则会在该服务上 AWS Proton 创建服务同步拦截器。这可以 AWS Proton 防止在解决拦截器之前同步任何服务实例。

在创建所有活动阻止标记后，您必须使用 `blockerId` 和 `resolvedReason` 为每个活动阻止标记调用 `UpdateServiceSyncBlocker` API 以解除这些阻止标记。

使用 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)