建立範本同步組態 - AWS Proton

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立範本同步組態

了解如何使用 建立範本同步組態 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 建立範本同步組態。

AWS Management Console
使用 主控台建立範本和範本同步組態。
  1. AWS Proton 主控台中,選擇環境範本

  2. 選擇建立環境範本

  3. 建立環境範本頁面的範本選項區段中,選擇建立範本以佈建新的環境

  4. 範本套件來源區段中,從 Git 選擇同步範本

  5. 來源碼儲存庫區段中:

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

    2. 針對分支,選取要從中同步的儲存庫分支。

    3. (選用) 對於範本套件目錄,輸入要縮小範本套件搜尋範圍的目錄名稱。

  6. 範本詳細資訊區段中。

    1. 輸入範本名稱

    2. (選用) 輸入範本顯示名稱

    3. (選用) 輸入環境範本的範本描述

  7. (選用) 勾選加密設定區段中自訂加密設定 (進階) 的核取方塊,以提供您自己的加密金鑰。

  8. (選用) 在標籤區段中,選擇新增標籤,然後輸入索引鍵和值以建立客戶受管標籤。

  9. 選擇建立環境範本

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

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

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

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

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

  14. 範本版本區段中,選擇發佈

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

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

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

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" } }
  2. 透過提供下列項目 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" } }
  3. 若要發佈範本版本,請參閱 註冊和發佈範本

同步服務範本

上述範例示範如何同步環境範本。服務範本類似。若要同步服務範本,請將名為 的額外檔案新增至範本套件中的.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 仍然支援該檔案及其格式,以實現回溯相容性。我們不建議使用它,因為它無法擴展,也無法支援較新的功能,例如元件。