建立服務 - AWS Proton

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

建立服務

使用部署應用程式AWS Proton,身為開發人員,您可以建立服務並提供下列輸入。

  1. 一個名字AWS Proton由平台團隊發佈的服務範本。

  2. 服務的名稱。

  3. 您要部署的服務執行個體的數量。

  4. 您希望使用的環境選取。

  5. 如果您使用的服務模板包含服務管道(可選),則與代碼存儲庫的連接。

什麼是在一個服務?

建立時AWS Proton服務,您可以從兩種不同類型的服務模板中進行選擇:

  • 包含服務管線 (預設) 的服務範本。

  • 一個服務模板包括服務管道。

建立服務時,您必須至少建立一個服務執行個體。

服務執行個體和選用管線與服務相關聯。您只能在服務內容進行建立或刪除管道創建刪除動作。如需了解如何新增和移除服務的執行個體,請參閱編輯服務

注意

您的環境已設定AWS-或自我管理佈建。AWS Proton使用與環境使用相同的佈建方法,在環境中佈建服務。創建或更新服務實例的開發人員看不到差異,他們的體驗在兩種情況下都是相同的。

如需的詳細資訊,請參閱操作說明AWS Proton規定基礎設施

服務範本

主要和次要版本的服務模板都可用。使用主控台時,請選取最新的Recommended服務模板的主要和次要版本。當您使用AWS CLI並且您只指定服務模板的主要版本,您可以隱式指定其最新版本Recommended次要版本。

以下說明主要和次要範本版本及其使用方式之間的差異。

  • 模板的新版本成為Recommended一旦獲得平台團隊成員的批准。這表示新服務是使用該版本建立的,而且系統會提示您將現有服務更新為新版本。

  • 透過AWS Proton,平台團隊可以自動將服務實例更新為服務模板的新次要版本。次要版本必須向後相容。

  • 由於主要版本需要您提供新的輸入作為更新過程的一部分,因此您需要將服務更新為其服務模板的主要版本。主要版本不是向後兼容。

建立服務

下列程序會顯示作法:AWS Proton主控台或AWS CLI以建立具有或不含服務管線的服務。

AWS Management Console

建立服務,如下列主控台步驟所示:

  1. 在 中AWS Proton安慰,選擇服務

  2. 選擇 Create service (建立服務)

  3. 在 中選擇服務範本頁面上,選擇一個模板,然後選擇設定

    當您不要想要使用已啟用的管道,請選擇標有的範本排除配管為您服務。

  4. 在 中配置服務頁面,在服務設定區段中,輸入Service name (服務名稱)

  5. (選擇性) 輸入服務的描述。

  6. 在 中服務儲存庫的設定區段:

    1. 適用於CodeStar Connection (連線)下,從清單選擇您的連線。

    2. 適用於儲存庫 ID下,從清單中選擇來源程式碼儲存庫的名稱。

    3. 適用於分支名稱下,從清單中選擇來源程式碼儲存庫分支的名稱。

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

  8. 選擇 Next (下一步)。

  9. 在 中設定自訂設定頁面,在服務執行個體位於章節新執行個體區段。您必須為required參數。您可以為optional參數或在給定時使用默認值。

  10. 在 中管道輸入區段中,您必須輸入required參數。您可以輸入optional參數或在給定時使用默認值。

  11. 選擇下一頁並檢查您的輸入。

  12. 選擇 Create (建立)。

    檢視服務詳細資訊和狀態,以及AWS適用於您服務的受管理標籤和客戶管理標籤。

  13. 在導覽窗格中,選擇服務

    新頁面會顯示您的服務清單,以及狀態和其他服務詳細資料。

AWS CLI

當您使用AWS CLI時,您可以使用 YAML 格式指定服務輸入spec文件,.aws-proton/service.yaml,位於您的來源程式碼目錄中。

您可以使用 CLIget-service-template-minor-version命令來檢視您在規格檔案中提供值的結構描述必要參數和選用參數。

如果您想要使用的服務範本pipelineProvisioning: "CUSTOMER_MANAGED"不要包括pipeline:您的規格中的部分和不要包括-repository-connection-arn-repository-id,以及-branch-name在您的參數create-service指令。

使用服務管線建立服務,如下列 CLI 步驟所示。

  1. 設定服務角色針對下列 CLI 範例命令所示的管道。

    命令:

    $ aws proton update-account-settings \ -pipeline-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole"
  2. 下列清單顯示以服務範本結構描述為基礎的範例規格,其中包括服務管線和執行個體輸入。

    規格格:

    proton: ServiceSpec pipeline: my_sample_pipeline_required_input: "hello" my_sample_pipeline_optional_input: "bye" instances: - name: "acme-network-dev" environment: "ENV_NAME" spec: my_sample_service_instance_required_input: "hi" my_sample_service_instance_optional_input: "ho"

    使用管線建立服務,如下列 CLI 範例命令和回應所示。

    命令:

    $ aws proton create-service \ -name "MySimpleService" \ -branch-name "mainline" \ -template-major-version "1" \ -template-name "fargate-service" \ -repository-connection-arn "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \ -repository-id "myorg/myapp" \ -spec "file://spec.yaml"

    回應:

    { "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "createdAt": "2020-11-18T19:50:27.460000+00:00", "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "myorg/myapp", "status": "CREATE_IN_PROGRESS", "templateName": "fargate-service" } }

建立沒有服務管線的服務,如下列 CLI 範例命令和回應所示。

下列範例會顯示規格範例會顯示包括服務管線輸入。

規格格:

proton: ServiceSpec instances: - name: "acme-network-dev" environment: "ENV_NAME" spec: my_sample_service_instance_required_input: "hi" my_sample_service_instance_optional_input: "ho"

建立服務佈建的服務管線,您可以提供spec.yaml和您不要包含儲存庫參數,如下列 CLI 範例命令和回應所示。

命令:

$ aws proton create-service \ -name "MySimpleServiceNoPipeline" \ -template-major-version "1" \ -template-name "fargate-service" \ -spec "file://spec-no-pipeline.yaml"

回應:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleServiceNoPipeline", "createdAt": "2020-11-18T19:50:27.460000+00:00", "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", "name": "MySimpleServiceNoPipeline", "status": "CREATE_IN_PROGRESS", "templateName": "fargate-service-no-pipeline" } }