AWS CLI入門 - AWS Proton

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

AWS CLI入門

若要開始AWS Proton使用AWS CLI,請遵循本教學課程。本教程演示了一個基AWS Proton於. AWS Fargate 本教學課程也會佈建 CI/CD 管線,以部署具有顯示影像的靜態網站。

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

步驟 1:註冊環境範本

在此步驟中,身為管理員,您可以註冊一個範例環境範本,該範本包含 Amazon Elastic Container Service (Amazon ECS) 叢集,以及具有兩個公有/私有子網路的 Amazon 虛擬私有雲端 (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/AWSProtonServiceRole" \ --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範例服務儲存庫分配到您的 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執行個體輸出的值是新服務網站的端點。使用您的瀏覽器導航到它。您應該會在靜態頁面上看到下列圖形:

    顯示從入門 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"