註冊和發佈範本 - AWS Proton

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

註冊和發佈範本

您可以使用註冊和發行環境和服務範本AWS Proton,如下列各節所述。

您可以使用主控台或建立新版本的範本AWS CLI。

或者,您可以使用控制台或AWS CLI建立範本並為其設定範本同步。此配置允許從位於已定義的已註冊 git 存儲庫中的模板包進行AWS Proton同步。每當將提交推送到更改模板包之一的存儲庫時,如果該版本尚不存在,則會創建模板的新次要或主要版本。若要深入瞭解範本同步設定必要條件和需求,請參閱範本同步設定

註冊和發佈環境範本

您可以註冊和發佈以下類型的環境樣板。

  • 註冊並發佈AWS Proton用於部署和管理環境基礎結構的標準環境範本。

  • 註冊並發佈客戶受管環境範本,該範本AWS Proton用於連線至您管理的現有佈建基礎結構。 AWS Proton不會管理您現有的佈建基礎結構。

重要

身為系統管理員,請確定已佈建和受管理的基礎結構及所有輸出參數都與相關的客戶受管理環境範本相容。 AWS Proton無法代表您考慮變更,因為這些變更不會顯示給您AWS Proton。不一致性會造成失敗。

您可以使用主控台或註冊和發佈環境範本。AWS CLI

AWS Management Console
使用主控台註冊並發佈新的環境範本。
  1. AWS Proton主控台中,選擇 [環境範本]。

  2. 選擇建立環境範本

  3. 在「建立環境樣板」頁面的「樣板選項」段落中,選擇兩個可用的樣板選項之一。

    • 建立用於佈建新環境的範本

    • 建立範本以使用您管理的已佈建基礎結構

  4. 如果您選擇「建立用於啟動設定新環境的樣板」,請在「範本套裝軟體來源」區段中,選擇三個可用的樣板套裝軟體來源選項之一。若要進一步瞭解同步範本的需求和必要條件,請參閱範本同步設定

  5. 提供範本服務包的路徑。
    1. 如果您選擇使用我們的範例範本組合包之一:

      在「範例範本套裝軟體」區段中,選取範例範本套裝軟體。

    2. 如果您在「原始程式碼」區段中選擇「從 Git 同步範本」:

      1. 選取範本同步配置的儲存庫。

      2. 輸入要同步的來源存放庫分支的名稱。

      3. (選擇性) 輸入目錄名稱,以限制範本套裝軟體的搜尋。

    3. 否則,在 S3 服務包位置區段中,提供範本服務包的路徑。

  6. 在「範本詳細資料」區段中。

    1. 輸入「範本」名稱

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

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

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

  8. (選擇性) 在「標」區段中,選擇「新增標籤」,然後輸入金鑰和值以建立客戶管理的標籤。

  9. 選擇「建立環境範本」。

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

  10. 新環境範本狀態的狀態會以「草稿」狀態開始。您和擁有proton:CreateEnvironment權限的其他人都可以檢視和存取它。請按照下一步操作,使其他人可以使用該範本。

  11. 在「範本版本」區段中,選擇您剛建立的範本次要版本左側的圓鈕 (1.0)。作為替代方法,您可以在信息警報中選擇「發布」並跳過下一步。

  12. 在「範本版本」區段中,選擇「發佈」。

  13. 範本狀態會變更為「已發佈」。因為它是模板的最新版本,所以它是推薦版本。

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

使用主控台註冊環境範本的新主要和次要版本。

如需詳細資訊,請參閱版本化模板

  1. AWS Proton主控台中,選擇「環境範本」。

  2. 在環境樣板清單中,選擇您要為其建立主要或次要版本之環境樣板的名稱。

  3. 在環境範本詳細資料檢視中,選擇 [範版本] 區段中的 [建立新版本]。

  4. 在「建立新環境範本版本」頁面的「範本套裝軟體來源」區段中,選擇兩個可用的範本套裝軟體來源選項之一。

    • 使用我們的示例模板包之一。

    • 使用您自己的模板包

  5. 提供所選範本套裝軟體的路徑。

    • 如果您選擇「使用我們的範例範本套裝軟體」,請在「範例範本套件組合」區段中,選取範例範本套件組合。

    • 如果您選擇 [使用您自己的範本服務包],請在 S3 套件組合位置區段中選擇範本服務包的路徑。

  6. 在「範本詳細資料」區段中。

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

    2. (選用性) 輸入服務範本的描述

  7. 範本詳細資料區段中,選擇下列其中一個選項。

    • 若要建立次要版本,請將核取方塊保留勾選以建立新的主要版本為空。

    • 若要建立主要版本,請勾選核取方塊以建立新的主要版本

  8. 繼續執行主控台步驟以建立新的次要或主要版本,然後選擇 [建立新版本]。

AWS CLI
使用 CLI 來註冊和發佈新的環境範本,如下列步驟所示。
  1. 透過指定區域、名稱、顯示名稱 (選擇性) 和說明 (選用),建立標準 OR 客戶管理的環境範本。

    1. 建立標準環境範本。

      執行以下命令:

      $ aws proton create-environment-template \ --name "simple-env" \ --display-name "Fargate" \ --description "VPC with public access"

      回應:

      { "environmentTemplate": { "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env", "createdAt": "2020-11-11T23:02:45.336000+00:00", "description": "VPC with public access", "displayName": "VPC", "lastModifiedAt": "2020-11-11T23:02:45.336000+00:00", "name": "simple-env" } }
    2. 透過新增具有值的provisioning參數來建立客戶管理的環境範本CUSTOMER_MANAGED

      執行以下命令:

      $ aws proton create-environment-template \ --name "simple-env" \ --display-name "Fargate" \ --description "VPC with public access" \ --provisioning "CUSTOMER_MANAGED"

      回應:

      { "environmentTemplate": { "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env", "createdAt": "2020-11-11T23:02:45.336000+00:00", "description": "VPC with public access", "displayName": "VPC", "lastModifiedAt": "2020-11-11T23:02:45.336000+00:00", "name": "simple-env", "provisioning": "CUSTOMER_MANAGED" } }
  2. 建立環境範本主要版本 1 的次要版本 0

    對於標準客戶管理的環境範本,這和其餘步驟都是相同的。

    包含範本名稱、主要版本,以及包含環境範本組合包的儲存貯體的 S3 儲存貯體名稱和金鑰。

    執行以下命令:

    $ aws proton create-environment-template-version \ --template-name "simple-env" \ --description "Version 1" \ --source s3="{bucket=your_s3_bucket, key=your_s3_key}"

    回應:

    { "environmentTemplateVersion": { "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0", "createdAt": "2020-11-11T23:02:47.763000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:02:47.763000+00:00", "majorVersion": "1", "minorVersion": "0", "status": "REGISTRATION_IN_PROGRESS", "templateName": "simple-env" } }
  3. 使用 get 命令來檢查註冊狀態。

    執行以下命令:

    $ aws proton get-environment-template-version \ --template-name "simple-env" \ --major-version "1" \ --minor-version "0"

    回應:

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0", "createdAt": "2020-11-11T23:02:47.763000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:02:47.763000+00:00", "majorVersion": "1", "minorVersion": "0", "recommendedMinorVersion": "0", "schema": "schema:\n format:\n openapi: \"3.0.0\"\n environment_input_type: \"MyEnvironmentInputType\"\n types:\n MyEnvironmentInputType:\n type: object\n description: \"Input properties for my environment\"\n properties:\n my_sample_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_other_sample_input:\n type: string\n description: \"Another sample input\"\n required:\n - my_other_sample_input\n", "status": "DRAFT", "statusMessage": "", "templateName": "simple-env" } }
  4. 透過提供範本名稱以及主要和次要版本,發佈環境範本的主要版本 1 的次要版本 0。這個版本是Recommended版本。

    執行以下命令:

    $ aws proton update-environment-template-version \ --template-name "simple-env" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

    回應:

    { "environmentTemplateVersion": { "arn": "arn:aws:proton:region-id:123456789012:environment-template/simple-env:1.0", "createdAt": "2020-11-11T23:02:47.763000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:02:54.610000+00:00", "majorVersion": "1", "minorVersion": "0", "recommendedMinorVersion": "0", "schema": "schema:\n format:\n openapi: \"3.0.0\"\n environment_input_type: \"MyEnvironmentInputType\"\n types:\n MyEnvironmentInputType:\n type: object\n description: \"Input properties for my environment\"\n properties:\n my_sample_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_other_sample_input:\n type: string\n description: \"Another sample input\"\n required:\n - my_other_sample_input\n", "status": "PUBLISHED", "statusMessage": "", "templateName": "simple-env" } }

使用建立新範本後AWS CLI,您可以檢視AWS和客戶管理的標籤清單。 AWS Proton自動為您產生AWS受管理的標籤。您也可以使用修改和建立客戶管理的標籤AWS CLI。如需詳細資訊,請參閱AWS Proton資源和標記

執行以下命令:

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:123456789012:environment-template/simple-env"

註冊和發佈服務範本

當您建立服務範本版本時,您可以指定相容的環境範本清單。這樣,當開發人員選擇服務模板時,他們可以選擇將其服務部署到哪個環境。

從服務範本建立服務之前,或在發佈服務範本之前,請確認已從列出的相容環境範本部署環境。

如果服務部署到從已移除的相容環境範本建置的環境中,則法將服務更新為新的主要版本。

若要新增或移除服務範本版本的相容環境範本,請建立新的主要版本。

您可以使用主控台或註冊和發行服務範本。AWS CLI

AWS Management Console
使用主控台註冊並發佈新的服務範本。
  1. AWS Proton主控台中,選擇 [服務範本]。

  2. 選擇 [建立服務範本]。

  3. 在「建立服務範本」頁面的「範本套裝軟體來源」區段中,選擇其中一個可用的範本選項。

    • 使用您自己的模板包

    • 從 Git 同步範本

  4. 提供範本服務包的路徑。
    1. 如果您選擇從 Git 同步模板,請在源代碼存儲庫部分中:

      1. 選取範本同步配置的儲存庫。

      2. 輸入要同步的來源存放庫分支的名稱。

      3. (選擇性) 輸入目錄名稱,以限制範本套裝軟體的搜尋。

    2. 否則,在 S3 服務包位置區段中,提供範本服務包的路徑。

  5. 在「範本詳細資料」區段中。

    1. 輸入「範本」名稱

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

    3. (選用性) 輸入服務範本的描述

  6. 在「相容的環境範本」區段中,從相容的環境範本清單中選擇。

  7. (選擇性) 在「加密設定」區段中,選擇「自訂加密設定 (進階)」以提供您自己的加密金鑰。

  8. (選用) 在「管線」區段中:

    如果您未在服務範本中包含服務管線定義,請取消勾選頁面底部的 Pipeline-選用核取方塊。您無法在建立服務範本之後變更此設定。如需詳細資訊,請參閱模板捆綁

  9. (選擇性) 在「支援的元件來源」段落中,對於「元件來源」,請選擇直接定義,將直接定義的元件附加至服務執行處理。

  10. (選擇性) 在「標」區段中,選擇「新增標籤」,然後輸入金鑰和值以建立客戶管理的標籤。

  11. 選擇 [建立服務範本]。

    您現在進入了一個新頁面,其中顯示新服務模板的狀態和詳細信息。這些詳細資料包括清單AWS和客戶管理的標籤。 AWS Proton當您建立AWS Proton資源時,會自動為您產生AWS受管理的標籤。如需詳細資訊,請參閱AWS Proton資源和標記

  12. 新服務範本狀況的狀態會以「草稿」狀態開始。您和擁有proton:CreateService權限的其他人都可以檢視和存取它。請按照下一步操作,使其他人可以使用該範本。

  13. 在「範本版本」區段中,選擇您剛建立的範本次要版本左側的圓鈕 (1.0)。作為替代方法,您可以在信息警報中選擇「發布」並跳過下一步。

  14. 在「範本版本」區段中,選擇「發佈」。

  15. 範本狀態會變更為「已發佈」。因為它是模板的最新版本,所以它是推薦版本。

  16. 在瀏覽窗格中,選取 [服務範本] 以檢視服務範本和詳細資料的清單。

使用主控台註冊服務範本的新主要和次要版本。

如需詳細資訊,請參閱版本化模板

  1. AWS Proton主控台中,選擇 [服務範本]。

  2. 在服務範本清單中,選擇您要為其建立主要或次要版本的服務範本名稱。

  3. 在服務範本詳細資料檢視中,選擇 [範版本] 區段中的 [建立新版本]。

  4. 在 [建立新服務範本版本] 頁面的 [套裝軟體來源] 區段中,選取 [使用您自己的範本套裝軟體]。

  5. S3 服務包位置區段中,選擇範本服務包的路徑。

  6. 在「範本詳細資料」區段中。

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

    2. (選用性) 輸入服務範本的描述

  7. 範本詳細資料區段中,選擇下列其中一個選項。

    • 若要建立次要版本,請將核取方塊保留勾選以建立新的主要版本為空。

    • 若要建立主要版本,請勾選核取方塊以建立新的主要版本

  8. 繼續執行主控台步驟以建立新的次要或主要版本,然後選擇 [建立新版本]。

AWS CLI

若要建立在沒有服務管線的情況下部署服務的服務範本,請將參數和值新增--pipeline-provisioning "CUSTOMER_MANAGED"create-service-template命令。依照建立和中所述設定範本套裝軟模板捆綁服務範本組合的結構描述需求

注意

您無法在建立服務範本pipelineProvisioning之後進行修改。

  1. 使用 CLI 來註冊和發佈新的服務範本 (含或不含服務管線),如下列步驟所示。
    1. 使用 CLI 建立具有服務管線的服務範本。

      指定名稱、顯示名稱 (選擇性) 和說明 (選擇性)。

      執行以下命令:

      $ aws proton create-service-template \ --name "fargate-service" \ --display-name "Fargate" \ --description "Fargate-based Service"

      回應:

      { "serviceTemplate": { "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service", "createdAt": "2020-11-11T23:02:55.551000+00:00", "description": "Fargate-based Service", "displayName": "Fargate", "lastModifiedAt": "2020-11-11T23:02:55.551000+00:00", "name": "fargate-service" } }
    2. 建立不含服務管線的服務範本。

      新增 --pipeline-provisioning

      執行以下命令:

      $ aws proton create-service-template \ --name "fargate-service" \ --display-name "Fargate" \ --description "Fargate-based Service" \ --pipeline-provisioning "CUSTOMER_MANAGED"

      回應:

      { "serviceTemplate": { "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service", "createdAt": "2020-11-11T23:02:55.551000+00:00", "description": "Fargate-based Service", "displayName": "Fargate", "lastModifiedAt": "2020-11-11T23:02:55.551000+00:00", "name": "fargate-service", "pipelineProvisioning": "CUSTOMER_MANAGED" } }
  2. 建立服務範本主要版本 1 的次要版本 0。

    包含範本名稱、相容環境範本、主要版本,以及包含服務範本組合包之儲存貯體的 S3 儲存貯體名稱和金鑰。

    執行以下命令:

    $ aws proton create-service-template-version \ --template-name "fargate-service" \ --description "Version 1" \ --source s3="{bucket=your_s3_bucket, key=your_s3_key}" \ --compatible-environment-templates '[{"templateName":"simple-env","majorVersion":"1"}]'

    回應:

    { "serviceTemplateMinorVersion": { "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0", "compatibleEnvironmentTemplates": [ { "majorVersion": "1", "templateName": "simple-env" } ], "createdAt": "2020-11-11T23:02:57.912000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00", "majorVersion": "1", "minorVersion": "0", "status": "REGISTRATION_IN_PROGRESS", "templateName": "fargate-service" } }

  3. 使用 get 命令檢查註冊狀態。

    執行以下命令:

    $ aws proton get-service-template-version \ --template-name "fargate-service" \ --major-version "1" \ --minor-version "0"

    回應:

    { "serviceTemplateMinorVersion": { "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0", "compatibleEnvironmentTemplates": [ { "majorVersion": "1", "templateName": "simple-env" } ], "createdAt": "2020-11-11T23:02:57.912000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00", "majorVersion": "1", "minorVersion": "0", "schema": "schema:\n format:\n openapi: \"3.0.0\"\n pipeline_input_type: \"MyPipelineInputType\"\n service_input_type: \"MyServiceInstanceInputType\"\n\n types:\n MyPipelineInputType:\n type: object\n description: \"Pipeline input properties\"\n required:\n - my_sample_pipeline_required_input\n properties:\n my_sample_pipeline_optional_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_sample_pipeline_required_input:\n type: string\n description: \"Another sample input\"\n\n MyServiceInstanceInputType:\n type: object\n description: \"Service instance input properties\"\n required:\n - my_sample_service_instance_required_input\n properties:\n my_sample_service_instance_optional_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_sample_service_instance_required_input:\n type: string\n description: \"Another sample input\"", "status": "DRAFT", "statusMessage": "", "templateName": "fargate-service" } }
  4. 使用 update 指令將狀態變更為來發佈服務範本"PUBLISHED"

    執行以下命令:

    $ aws proton update-service-template-version \ --template-name "fargate-service" \ --description "Version 1" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

    回應:

    { "serviceTemplateVersion": { "arn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service:1.0", "compatibleEnvironmentTemplates": [ { "majorVersion": "1", "templateName": "simple-env" } ], "createdAt": "2020-11-11T23:02:57.912000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:02:57.912000+00:00", "majorVersion": "1", "minorVersion": "0", "recommendedMinorVersion": "0", "schema": "schema:\n format:\n openapi: \"3.0.0\"\n pipeline_input_type: \"MyPipelineInputType\"\n service_input_type: \"MyServiceInstanceInputType\"\n\n types:\n MyPipelineInputType:\n type: object\n description: \"Pipeline input properties\"\n required:\n - my_sample_pipeline_required_input\n properties:\n my_sample_pipeline_optional_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello pipeline\"\n my_sample_pipeline_required_input:\n type: string\n description: \"Another sample input\"\n\n MyServiceInstanceInputType:\n type: object\n description: \"Service instance input properties\"\n required:\n - my_sample_service_instance_required_input\n properties:\n my_sample_service_instance_optional_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_sample_service_instance_required_input:\n type: string\n description: \"Another sample input\"\n", "status": "PUBLISHED", "statusMessage": "", "templateName": "fargate-service" } }
  5. 使用 get 命令擷取服務範本詳細資料,檢查是否AWS Proton已發佈 1.0 版。

    執行以下命令:

    $ aws proton get-service-template-version \ --template-name "fargate-service" \ --major-version "1" \ --minor-version "0"

    回應:

    { "serviceTemplateMinorVersion": { "arn": "arn:aws:proton:us-east-1:123456789012:service-template/fargate-service:1.0", "compatibleEnvironmentTemplates": [ { "majorVersion": "1", "templateName": "simple-env" } ], "createdAt": "2020-11-11T23:02:57.912000+00:00", "description": "Version 1", "lastModifiedAt": "2020-11-11T23:03:04.767000+00:00", "majorVersion": "1", "minorVersion": "0", "schema": "schema:\n format:\n openapi: \"3.0.0\"\n pipeline_input_type: \"MyPipelineInputType\"\n service_input_type: \"MyServiceInstanceInputType\"\n\n types:\n MyPipelineInputType:\n type: object\n description: \"Pipeline input properties\"\n required:\n - my_sample_pipeline_required_input\n properties:\n my_sample_pipeline_optional_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_sample_pipeline_required_input:\n type: string\n description: \"Another sample input\"\n\n MyServiceInstanceInputType:\n type: object\n description: \"Service instance input properties\"\n required:\n - my_sample_service_instance_required_input\n properties:\n my_sample_service_instance_optional_input:\n type: string\n description: \"This is a sample input\"\n default: \"hello world\"\n my_sample_service_instance_required_input:\n type: string\n description: \"Another sample input\"", "status": "PUBLISHED", "statusMessage": "", "templateName": "fargate-service" } }