本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立範本同步設定
瞭解如何使用建立範本同步設定 AWS Proton。
存放庫連結由下列項目組成:
-
授與存取存放庫及訂閱其通知之 AWS Proton 權限的 CodeConnections 連線。
-
服務連結的角色。當您連結存放庫時,會為您建立服務連結角色。
在您建立第一個範本同步組態之前,請將範本組合包推送至您的儲存庫,如下列目錄配置所示。
/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 為提交中包含的每個新模板包版本創建一個新的模板版本。
建立範本同步組態之後,您仍然可以在主控台中手動建立範本的新版本,或透 AWS CLI 過從 S3 儲存貯體上傳範本組合。範本同步只能在一個方向上運作:從儲存庫到 AWS Proton. 手動建立的範本版本不會同步。
設定範本同步組態後, AWS Proton 會偵聽儲存庫的變更。每當推送變更時,都會尋找與範本名稱相同的任何目錄。然後,它會在該目錄中查找看起來像主要版本的任何目錄。 AWS Proton 將範本套裝軟體註冊到對應的範本主要版本。新版本始終處於狀DRAFT
態。您可以使用控制台或發布新版本 AWS CLI。
例如,假設您有一個名為my-env-template
配置為使用以下佈局my-repo/templates
的分支main
同步的模板。
/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 將的內容my-env-template:1
與/templates/my-env-template/v1/
的內容同步/templates/my-env-template/v2/
到my-env-template:2
。如果它們不存在,它會創建這些主要版本。
AWS Proton 找到符合範本名稱的第一個目錄。您可以在建立或編輯範本同步配置subdirectoryPath
時指定一個來限制目錄 AWS Proton 搜尋。例如,您可以指定/production-templates/
為subdirectoryPath
。
您可以使用主控台或 CLI 建立範本同步設定。
同步服務範本
上述範例顯示如何同步環境範本。服務範本類似。若要同步服務範本,請在範本包中的每個主要版本目錄中新增一個名為.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 元件。
該文件的 YAML 語法如下所示:
compatible_environments: -
env-templ-name
:major-version
- ... supported_component_sources: - DIRECTLY_DEFINED
指定一或多個環境範本/主要版本組合。指定supported_component_sources
是選擇性的,唯一支援的值為DIRECTLY_DEFINED
。
範例 . 模板註冊.
在此範例中,服務範本版本與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 仍然支持該文件及其格式以實現向後兼容性。我們不建議再使用它,因為它不可擴展,也無法支持更新的功能,如組件。