

終止支援通知：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="create-template-sync"></a>

了解如何使用 建立範本同步組態 AWS Proton。

**建立範本同步組態先決條件：**
+ 您已[將儲存庫與 連結](ag-create-repo.md) AWS Proton。
+ [範本套件](ag-template-authoring.md#ag-template-bundles)位於您的儲存庫中。

**儲存庫連結包含下列項目：**
+ CodeConnections 連線提供存取儲存庫和訂閱其通知的 AWS Proton 許可。
+ [服務連結角色](using-service-linked-roles.md)。當您連結儲存庫時，系統會為您建立服務連結角色。

建立第一個範本同步組態之前，請將範本套件推送至您的儲存庫，如下列目錄配置所示。

```
 /templates/                                                 # subdirectory (optional)
 /templates/my-env-template/                                 # template name
 /templates/my-env-template/v1/                              # template version
 /templates/my-env-template/v1/infrastructure/               # template bundle
 /templates/my-env-template/v1/schema/
```

建立第一個範本同步組態之後，當您推送在新版本 （例如，在 下） 下新增更新範本套件的遞交時，系統會自動建立新的範本版本`/my-env-template/v2/`。

```
 /templates/                                                 # subdirectory (optional)
 /templates/my-env-template/                                 # template name
 /templates/my-env-template/v1/                              # template version
 /templates/my-env-template/v1/infrastructure/               # template bundle
 /templates/my-env-template/v1/schema/
 /templates/my-env-template/v2/
 /templates/my-env-template/v2/infrastructure/
 /templates/my-env-template/v2/schema/
```

您可以在單一遞交中包含一或多個同步設定範本的新範本套件版本。 會為每個包含在遞交中的新範本套件版本 AWS Proton 建立新的範本版本。

建立範本同步組態之後，您仍然可以從 S3 儲存貯體上傳範本套件， AWS CLI 在 主控台或使用 手動建立新版本的範本。範本同步只能以一個方向運作：從儲存庫到 AWS Proton。手動建立的範本版本*不會*同步。

設定範本同步組態之後， AWS Proton 請列出儲存庫的變更。每當推送變更時，就會尋找與範本同名的任何目錄。然後，它會在該目錄中尋找任何看起來像主要版本的目錄。 會將範本套件 AWS Proton 註冊到對應的範本主要版本。新版本一律處於 `DRAFT` 狀態。您可以使用 主控台或 [發佈新版本](template-create.md) AWS CLI。

例如，假設您有一個名為 的範本，`my-env-template`其設定為`main`使用以下配置在分支`my-repo/templates`上從 同步。

```
 /code
 /code/service.go
 README.md
 /templates/
 /templates/my-env-template/
 /templates/my-env-template/v1/
 /templates/my-env-template/v1/infrastructure/
 /templates/my-env-template/v1/schema/
 /templates/my-env-template/v2/
 /templates/my-env-template/v2/infrastructure/
 /templates/my-env-template/v2/schema/
```

AWS Proton 會將 的內容同步`/templates/my-env-template/v1/`至 ，`my-env-template:1`並將 的內容同步`/templates/my-env-template/v2/`至 `my-env-template:2`。如果它們尚未存在，則會建立這些主要版本。

AWS Proton 找到第一個符合範本名稱的目錄。您可以在建立或編輯範本同步組態`subdirectoryPath`時指定 ，以限制目錄 AWS Proton 搜尋。例如，您可以`/production-templates/`為 指定 `subdirectoryPath`。

您可以使用 主控台或 CLI 建立範本同步組態。

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

**使用 主控台建立範本和範本同步組態。**

1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇**環境範本**。

1. 選擇**建立環境範本**。

1. 在**建立環境範本**頁面的**範本選項**區段中，選擇**建立範本以佈建新的環境**。

1. 在**範本套件來源**區段中，從 **Git 選擇同步範本**。

1. 在**來源碼儲存庫**區段中：

   1. 針對**儲存庫**，選取包含範本套件的連結儲存庫。

   1. 針對**分支**，選取要從中同步的儲存庫分支。

   1. （選用） 針對**範本套件目錄**，輸入要縮小範本套件搜尋範圍的目錄名稱。

1. 在**範本詳細資訊**區段中。

   1. 輸入**範本名稱**。

   1. （選用） 輸入**範本顯示名稱**。

   1. （選用） 輸入環境範本的範本**描述**。

1. （選用） 勾選加密**設定區段中自訂加密設定的核取方塊 （進階）**，以提供您自己的加密金鑰。 ****

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

1. 選擇**建立環境範本**。

   您現在位於顯示新環境範本狀態和詳細資訊的新頁面。這些詳細資訊包括 AWS 受管和客戶受管標籤的清單。當您建立 AWS Proton 資源時， AWS Proton 會自動為您產生 AWS 受管標籤。如需詳細資訊，請參閱[AWS Proton 資源和標記](resources.md)。

1. 在範本詳細資訊頁面中，選擇**同步**索引標籤以檢視範本同步組態詳細資訊。

1. 選擇**範本版本**索引標籤，以檢視具有狀態詳細資訊的範本版本。

1. 新環境範本狀態的狀態會以**草稿**狀態開始。您和具有`proton:CreateEnvironment`許可的其他人可以檢視和存取它。依照下一個步驟，讓範本可供其他人使用。

1. 在**範本版本**區段中，選擇您剛建立之範本次要版本左側的選項按鈕 (1.0)。或者，您可以在資訊提醒中選擇**發佈**，並略過下一個步驟。

1. 在**範本版本**區段中，選擇**發佈**。

1. 範本狀態會變更為**已發佈**。這是範本的最新和**建議**版本。

1. 在導覽窗格中，選取**環境範本**以檢視環境範本和詳細資訊的清單。

建立服務範本和範本同步組態的程序類似。

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

**使用 建立範本和範本同步組態 AWS CLI。**

1. 

**建立範本。在此範例中，會建立環境範本。**

   執行下列命令。

   ```
   $ aws proton create-environment-template \
       --name "env-template"
   ```

   回應如下所示。

   ```
   {
       "environmentTemplate": {
           "arn": "arn:aws:proton:us-east-1:123456789012:environment-template/env-template",
           "createdAt": "2021-11-07T23:32:43.045000+00:00",
           "displayName": "env-template",
           "lastModifiedAt": "2021-11-07T23:32:43.045000+00:00",
           "name": "env-template",
           "status": "DRAFT",
           "templateName": "env-template"
       }
   }
   ```

1. 

**透過提供下列項目 AWS CLI ，使用 建立範本同步組態：**
   + 您要同步的範本。建立範本同步組態之後，您仍然可以在 主控台或使用 手動建立新版本 AWS CLI。
   + 範本名稱。
   + 範本類型。
   + 您要從中同步的連結儲存庫。
   + 連結的儲存庫提供者。
   + 範本套件所在的分支。
   + （選用） 包含範本套件的目錄路徑。根據預設， AWS Proton 尋找符合您範本名稱的第一個目錄。

   執行下列命令。

   ```
   $ aws proton create-template-sync-config \
       --template-name "env-template" \
       --template-type "ENVIRONMENT" \
       --repository-name "myrepos/templates" \
       --repository-provider "GITHUB" \
       --branch "main" \
       --subdirectory "env-template/"
   ```

   回應如下所示。

   ```
   {
       "templateSyncConfigDetails": {
           "branch": "main",
           "repositoryName": "myrepos/templates",
           "repositoryProvider": "GITHUB",
           "subdirectory": "templates",
           "templateName": "env-template",
           "templateType": "ENVIRONMENT"
       }
   }
   ```

1. **若要發佈範本版本，請參閱 [註冊和發佈範本](template-create.md)。**

------

## 同步服務範本
<a name="create-template-sync-service-templates"></a>

上述範例示範如何同步環境範本。服務範本類似。若要同步服務範本，請將名為 的額外檔案新增至範本套件中的`.template-registration.yaml`每個主要版本目錄。此檔案包含在遞交後為您建立服務範本版本時 AWS Proton 所需的其他詳細資訊。當您使用 AWS Proton 主控台或 API 明確建立服務範本版本時，您會提供這些詳細資訊做為輸入，而此檔案會取代這些輸入以進行範本同步。

```
./templates/                                                 # subdirectory (optional)
 /templates/my-svc-template/                                 # service template name
 /templates/my-svc-template/v1/                              # service template version
 /templates/my-svc-template/v1/.template-registration.yaml   # service template version properties
 /templates/my-svc-template/v1/instance_infrastructure/      # template bundle
 /templates/my-svc-template/v1/schema/
```

`.template-registration.yaml` 檔案包含下列詳細資訊：
+ **相容的環境** 【必要】 – 以這些環境範本和主要版本為基礎的環境與以此服務範本版本為基礎的 服務相容。
+ **支援的元件來源** 【選用】 – 使用這些來源的元件與基於此服務範本版本的 服務相容。如果未指定，則無法將元件連接至這些服務。如需元件的詳細資訊，請參閱 [AWS Proton 元件](ag-components.md)。

檔案的 YAML 語法如下：

```
compatible_environments:
  - env-templ-name:major-version
  - ...
supported_component_sources:
  - DIRECTLY_DEFINED
```

指定一或多個環境範本/主要版本組合。指定 `supported_component_sources` 是選用的，唯一支援的值是 `DIRECTLY_DEFINED`。

**Example .template-registration.yaml**  
在此範例中，服務範本版本與`my-env-template`環境範本的主要版本 1 和 2 相容。它也與`another-env-template`環境範本的主要版本 1 和 3 相容。檔案未指定 `supported_component_sources`，因此無法根據此服務範本版本將元件連接至 服務。  

```
compatible_environments:
  - my-env-template:1
  - my-env-template:2
  - another-env-template:1
  - another-env-template:3
```

**注意**  
先前，為指定相容的環境 AWS Proton 定義了不同的檔案 `.compatible-envs`。 AWS Proton 支援該檔案及其格式，以實現回溯相容性。我們不建議使用它，因為它無法擴展，也無法支援較新的功能，例如元件。