本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用 AWS CLI
若要開始 AWS Proton 使用 AWS CLI,請遵循本教學課程。本教程演示了一個基 AWS Proton 於. AWS Fargate本教學課程也會佈建 CI/CD 管線,以部署具有顯示影像的靜態網站。
在開始之前,請確定您已正確設定。如需詳細資訊,請參閱 必要條件。
步驟 1:註冊環境範本
在此步驟中,身為管理員,您可以註冊一個範例環境範本,該範本包含 Amazon 彈性容器服務 (AmazonECS) 叢集,以及具有兩個公有/私有子網路的 Amazon 虛擬私有雲端 (AmazonVPC)。
註冊環境範本
-
將AWS Proton 樣本 CloudFormation 模板
存儲庫分支到您的 GitHub 帳戶或組織中。此儲存庫包含我們在本教學課程中使用的環境和服務範本。 然後,使 AWS Proton用註冊您的分叉存儲庫。如需詳細資訊,請參閱建立存放庫的連結。
-
建立環境範本。
環境範本資源會追蹤環境範本版本。
$
aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
-
建立範本同步設定。
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" -
等待環境範本版本成功註冊。
當此命令返回時退出狀態為
0
,表示版本註冊完成。這在腳本中非常有用,以確保您可以在下一個步驟中成功運行命令。$
aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
-
發佈環境範本版本,使其可用於建立環境。
$
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
若要註冊服務範本
-
建立服務範本。
服務範本資源會追蹤服務範本版本。
$
aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
-
建立範本同步設定。
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" -
等待服務範本版本成功註冊。
當此命令返回時退出狀態為
0
,表示版本註冊完成。這在腳本中非常有用,以確保您可以在下一個步驟中成功運行命令。$
aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
-
發佈服務範本版本,使其可用於建立服務。
$
aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"
步驟 3:部署環境
在此步驟中,身為管理員,您可以從 AWS Proton 環境範本實例化環境。
若要部署環境
-
取得您註冊之環境範本的範例規格檔案。
您可以
environment-templates/fargate-env/spec/spec.yaml
從範本範例存放庫下載檔案。或者,您可以在本地獲取整個存儲庫並從environment-templates/fargate-env
目錄中運行create-environment命令。 -
建立環境。
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" -
等待環境成功部署。
$
aws proton wait environment-deployed --name "fargate-env-prod"
第 4 步:部署服務 [應用程序開發人員]
在先前的步驟中,系統管理員已註冊並發佈服務範本,並部署環境。身為應用程式開發人員,您現在可以建立 AWS Proton 服務並將其部署到 AWS Proton 環境
若要部署服務
-
取得管理員註冊之服務範本的範例規格檔案。
您可以
service-templates/load-balanced-fargate-svc/spec/spec.yaml
從範本範例存放庫下載檔案。或者,您可以在本地獲取整個存儲庫並從service-templates/load-balanced-fargate-svc
目錄中運行create-service命令。 -
將AWS Proton 範例服務
儲存庫分配到您的 GitHub 帳戶或組織中。該存儲庫包括我們在本教程中使用的應用程序源代碼。 -
建立服務。
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" -
等待服務成功部署。
$
aws proton wait service-created --name "static-website"
-
檢索輸出並查看您的新網站。
執行以下命令:
$
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
執行個體輸出的值是新服務網站的端點。使用您的瀏覽器導航到它。您應該會在靜態頁面上看到下列圖形:
步驟 5:清理(可選)
在此步驟中,當您完成探索作為本教學課程一部分所建立的 AWS 資源,並節省與這些資源相關的成本時,您將其刪除。
刪除教學課程資源
-
若要刪除服務,請執行下列命令:
$
aws proton delete-service --name "static-website"
-
若要刪除環境,請執行下列命令:
$
aws proton delete-environment --name "fargate-env-prod"
-
若要刪除服務範本,請執行下列命令:
$
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"
-
若要刪除環境範本,請執行下列指令:
$
aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT"
$
aws proton delete-environment-template --name "fargate-env"