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設定儲存庫與環境範本之間的同步關係。然後,它會在 1.0 版DRAFT狀態。

    $ 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,版本註冊完成。這在 Script 中非常有用,以確保您可以在下一個步驟成功執行命令。

    $ 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設定儲存庫與服務範本之間的同步關係。然後,它會在 1.0 版DRAFT狀態。

    $ 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,版本註冊完成。這在 Script 中非常有用,以確保您可以在下一個步驟成功執行命令。

    $ 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從模板示例存儲庫。或者,您可以在本地獲取整個存儲庫並運行create-environment的命令environment-templates/fargate-env目錄。

  2. 建立環境。

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

    $ 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從模板示例存儲庫。或者,您可以在本地獲取整個存儲庫並運行create-service的命令service-templates/load-balanced-fargate-svc目錄。

  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"