本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立範本同步組態
了解如何使用 建立範本同步組態 AWS Proton。
儲存庫連結包含下列項目:
-
CodeConnections 連線提供存取儲存庫和訂閱其通知的 AWS Proton 許可。
-
服務連結角色。當您連結儲存庫時,系統會為您建立服務連結角色。
建立第一個範本同步組態之前,請將範本套件推送至您的儲存庫,如下列目錄配置所示。
/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
狀態。您可以使用 主控台或 發佈新版本 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 建立範本同步組態。
同步服務範本
上述範例示範如何同步環境範本。服務範本類似。若要同步服務範本,請將名為 的額外檔案新增至範本套件中的.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
。
範例 .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 仍然支援該檔案及其格式,以實現回溯相容性。我們不建議使用它,因為它無法擴展,也無法支援較新的功能,例如元件。