建立範本同步設定 - AWS Proton

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

建立範本同步設定

瞭解如何使用建立範本同步設定 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 建立範本同步設定。

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

  2. 選擇建立環境範本

  3. 在「建立環境樣板」頁面的「樣板選項」段落中,選擇建立樣板以啟動設定新環境

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

  5. 在「原始程式碼儲存庫」區段中:

    1. 對於「存放庫」,選取包含範本服務包的連結存放庫。

    2. 對於「分支」,請選取要同步的來源儲存庫分支。

    3. (選擇性) 對於 Tem plate bundle 目錄,請輸入目錄的名稱,以涵蓋範本服務包的搜尋範圍。

  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

範例 . 模板註冊.

在此範例中,服務範本版本與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 仍然支持該文件及其格式以實現向後兼容性。我們不建議再使用它,因為它不可擴展,也無法支持更新的功能,如組件。