開始使用 AWS CLI - AWS Proton

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

開始使用 AWS CLI

若要開始使用 AWS Proton AWS CLI,請遵循本教學課程。本教學課程示範以 為基礎的公有負載平衡 AWS Proton 服務 AWS Fargate。本教學課程也會佈建 CI/CD 管道,以部署具有顯示影像的靜態網站。

開始之前,請確定您已正確設定。如需詳細資訊,請參閱先決條件

步驟 1:註冊環境範本

在此步驟中,身為管理員,您會註冊範例環境範本,其中包含 Amazon Elastic Container Service (Amazon ECS) 叢集和具有兩個公有/私有子網路的 Amazon Virtual Private Cloud (Amazon VPC)。

註冊環境範本
  1. AWS Proton 範例 CloudFormation 範本儲存庫撥入您的 GitHub 帳戶或組織。此儲存庫包含我們在本教學課程中使用的環境和服務範本。

    然後,向 註冊您的分叉儲存庫 AWS Proton。如需詳細資訊,請參閱建立儲存庫的連結

  2. 建立環境範本。

    環境範本資源會追蹤環境範本版本。

    $ aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
  3. 建立範本同步組態。

    AWS Proton 設定儲存庫與環境範本之間的同步關係。然後,它會建立處於 DRAFT 狀態的範本版本 1.0。

    $ aws proton create-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" \ --repository-name "your-forked-repo" \ --repository-provider "GITHUB" \ --branch "your-branch" \ --subdirectory "environment-templates/fargate-env"
  4. 等待環境範本版本成功註冊。

    當此命令傳回 且結束狀態為 時0,版本註冊即完成。這在指令碼中很有用,以確保您可以在下一個步驟成功執行命令。

    $ aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
  5. 發佈環境範本版本,使其可用於建立環境。

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

步驟 2:註冊服務範本

在此步驟中,身為管理員,您會註冊範例服務範本,其中包含在負載平衡器和 使用的 CI/CD 管道後方佈建 Amazon ECS Fargate 服務所需的所有資源 AWS CodePipeline。

註冊服務範本
  1. 建立服務範本。

    服務範本資源會追蹤服務範本版本。

    $ aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
  2. 建立範本同步組態。

    AWS Proton 設定儲存庫與服務範本之間的同步關係。然後,它會建立處於 DRAFT 狀態的範本版本 1.0。

    $ aws proton create-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" \ --repository-name "your-forked-repo" \ --repository-provider "GITHUB" \ --branch "your-branch" \ --subdirectory "service-templates/load-balanced-fargate-svc"
  3. 等待服務範本版本成功註冊。

    當此命令傳回 且結束狀態為 時0,版本註冊即完成。這在指令碼中很有用,以確保您可以在下一個步驟成功執行命令。

    $ aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
  4. 發佈服務範本版本,使其可用於建立服務。

    $ aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

步驟 3:部署環境

在此步驟中,身為管理員,您可以從 AWS Proton 環境範本執行個體化環境。

部署環境
  1. 取得您所註冊環境範本的範例規格檔案。

    您可以從environment-templates/fargate-env/spec/spec.yaml範本範例儲存庫下載 檔案。或者,您可以在本機擷取整個儲存庫,並從 environment-templates/fargate-env目錄執行 create-environment命令。

  2. 建立環境。

    AWS Proton 會讀取您環境規格的輸入值,將它們與您的環境範本合併,並使用服務 AWS Proton 角色在 AWS 帳戶中佈建環境資源。

    $ aws proton create-environment \ --name "fargate-env-prod" \ --template-name "fargate-env" \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWS ProtonServiceRole" \ --spec "file://spec/spec.yaml"
  3. 等待環境成功部署。

    $ aws proton wait environment-deployed --name "fargate-env-prod"

步驟 4:部署服務 【應用程式開發人員】

在先前的步驟中,管理員已註冊並發佈服務範本,並已部署環境。身為應用程式開發人員,您現在可以建立 AWS Proton 服務並將其部署到 AWS Proton 環境中

部署服務
  1. 取得管理員註冊之服務範本的範例規格檔案。

    您可以從service-templates/load-balanced-fargate-svc/spec/spec.yaml範本範例儲存庫下載 檔案。或者,您可以在本機擷取整個儲存庫,並從 service-templates/load-balanced-fargate-svc目錄執行 create-service命令。

  2. AWS Proton Sample Services 儲存庫撥入 GitHub 帳戶或組織。此儲存庫包含我們在本教學課程中使用的應用程式原始碼。

  3. 建立服務。

    AWS Proton 會從服務規格讀取輸入值,將它們與您的服務範本合併,並在規格中指定的環境中佈建您 AWS 帳戶中的服務資源。 AWS CodePipeline 管道會從您在 命令中指定的儲存庫部署您的應用程式程式碼。

    $ aws proton create-service \ --name "static-website" \ --repository-connection-arn \ "arn:aws:codestar-connections:us-east-1:123456789012:connection/your-codestar-connection-id" \ --repository-id "your-GitHub-account/aws-proton-sample-services" \ --branch-name "main" \ --template-major-version 1 \ --template-name "load-balanced-fargate-svc" \ --spec "file://spec/spec.yaml"
  4. 等待服務成功部署。

    $ aws proton wait service-created --name "static-website"
  5. 擷取輸出並檢視您的新網站。

    執行以下命令:

    $ aws proton list-service-instance-outputs \ --service-name "static-website" \ --service-instance-name load-balanced-fargate-svc-prod

    命令的輸出應類似於以下內容:

    { "outputs": [ { "key": "ServiceURL", "valueString": "http://your-service-endpoint.us-east-1.elb.amazonaws.com" } ] }

    ServiceURL 執行個體輸出的值是新服務網站的端點。使用您的瀏覽器導覽至瀏覽器。您應該會在靜態頁面上看到下圖:

    Web 瀏覽器顯示入門 CLI 程序所產生的靜態映像網站

步驟 5:清除 (選用)

在此步驟中,當您完成探索作為本教學課程一部分所建立 AWS 的資源,並為了節省與這些資源相關的成本時,您會將其刪除。

刪除教學課程資源
  1. 若要刪除服務,請執行下列命令:

    $ aws proton delete-service --name "static-website"
  2. 若要刪除環境,請執行下列命令:

    $ aws proton delete-environment --name "fargate-env-prod"
  3. 若要刪除服務範本,請執行下列命令:

    $ aws proton delete-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" $ aws proton delete-service-template --name "load-balanced-fargate-svc"
  4. 若要刪除環境範本,請執行下列命令:

    $ aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" $ aws proton delete-environment-template --name "fargate-env"