建立範本同步設定 - AWS Proton

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

建立範本同步設定

了解如何建立範本同步組態設定範本同步組態AWS Proton。

建立範本同步設定先決條件:

儲存庫連結包含下列項目:

  • 一個 AWS CodeStar 連接連接,給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為提交中包含的每個新模板包版本創建一個新的模板版本。

建立範本同步設定之後,您仍然可以在主控台中手動建立範本的新版本,或使用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同步的內容/templates/my-env-template/v1/my-env-template:1和內容/templates/my-env-template/v2/my-env-template:2。如果它們不存在,則會建立這些主要版本。

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

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

AWS Management Console

使用主控台建立範本和範本同步設定。

  1. 在 中AWS Proton安慰,選擇環境範本

  2. 選擇建立環境範本

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

  4. 在 中範本服務包來源區段中,選擇從 Git 同步範本

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

    1. 適用於儲存庫中,選取包含範本服務包的連結存放庫。

    2. 適用於分支機構,選取要同步的來源儲存庫分支。

    3. (選擇性) 對於模板包目錄」下方,輸入目錄的名稱,以涵蓋範本組合包的搜尋範圍。

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

    1. 輸入 a範本名稱

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

    3. (選用) 輸入 a範本描述用於環境範本。

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

  8. (選擇性) 在標籤區段中,選擇新增標籤並輸入索引鍵和值以建立客戶管理的標籤。

  9. 選擇建立環境範本

    您現在進入了一個新頁面,其中會顯示新環境範本的狀態和詳細資料。這些詳細信息包括列表AWS受管和客戶管理的標籤。AWS Proton自動產生AWS建立時為您提供受管理的標籤AWS Proton的費用。如需詳細資訊,請參閱 AWS Proton資源和標記

  10. 在 template details (範本詳細資訊) 頁面上,選擇Sync用於檢視範本同步組態詳細資料的索引標籤。

  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/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

範例 . 模板註冊.

在這個例子中,服務模板版本與主要版本 1 和 2 兼容my-env-template環境範本。它也與主要版本的 1 和 3 兼容another-env-template環境範本。該文件沒有指定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仍然支持該文件及其格式以實現向後兼容性。我們不建議再使用它,因為它不可擴展,也無法支持更新的功能,如組件。