選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

教學課程:將應用程式部署至 Amazon ECS

焦點模式
教學課程:將應用程式部署至 Amazon ECS - Amazon CodeCatalyst

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

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

在本教學課程中,您將了解如何使用工作流程、Amazon ECS 和其他一些 AWS 服務,將無伺服器應用程式部署至 Amazon Elastic Container Service (Amazon ECS)。部署的應用程式是建置在 Apache Web 伺服器 Docker 映像上的簡單 Hello World 網站。本教學課程會逐步引導您完成必要的準備工作,例如設定叢集,然後說明如何建立工作流程來建置和部署應用程式。

提示

您不必完成本教學課程,而是可以使用藍圖為您完成 Amazon ECS 設定。您需要搭配 使用 Node.js API AWS Fargate搭配藍圖的 Java API AWS Fargate。如需詳細資訊,請參閱使用藍圖建立專案

先決條件

開始之前:

  • 您需要具有連線 AWS 帳戶的 CodeCatalyst 空間。如需詳細資訊,請參閱建立空間

  • 在您的空間中,您需要一個名為 的空專案:

    codecatalyst-ecs-project

    使用從頭開始選項來建立此專案。

    如需詳細資訊,請參閱在 Amazon CodeCatalyst 中建立空專案

  • 在您的專案中,您需要名為 的 CodeCatalyst 環境

    codecatalyst-ecs-environment

    設定此環境,如下所示:

    • 選擇任何類型的,例如非生產

    • 將您的帳戶連接到該 AWS 帳戶。

    • 針對預設 IAM 角色,選擇任何角色。稍後您將指定不同的角色。

    如需詳細資訊,請參閱部署至 AWS 帳戶 和 VPC VPCs

步驟 1:設定 AWS 使用者和 AWS CloudShell

本教學課程的第一步是在 中建立使用者 AWS IAM Identity Center,並以此使用者身分啟動 AWS CloudShell 執行個體。在本教學課程中,CloudShell 是您的開發電腦,也是您設定 AWS 資源和服務的地方。完成教學課程後刪除此使用者。

注意

請勿將您的根使用者用於本教學課程。稍後在 AWS Command Line Interface (CLI) 中執行動作時,您必須建立個別的使用者,否則可能會遇到問題。

如需 IAM Identity Center 使用者和 CloudShell 的詳細資訊,請參閱 AWS IAM Identity Center 使用者指南AWS CloudShell 使用者指南

建立 IAM Identity Center 使用者
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/singlesignon/ 開啟 AWS IAM Identity Center 主控台。

    注意

    請務必使用連線至 CodeCatalyst 空間 AWS 帳戶 的 登入。您可以透過導覽至您的空間並選擇 AWS 帳戶索引標籤來驗證哪個帳戶已連線。如需詳細資訊,請參閱建立空間

  2. 在導覽窗格中,選擇 使用者,然後選擇 新增使用者

  3. 使用者名稱中,輸入:

    CodeCatalystECSUser
  4. 密碼下,選擇產生您可以與此使用者共用的一次性密碼

  5. 電子郵件地址確認電子郵件地址中,輸入 IAM Identity Center 中尚未存在的電子郵件地址。

  6. 名字姓氏中,輸入:

    CodeCatalystECSUser
  7. 顯示名稱中,保留自動產生的名稱:

    CodeCatalystECSUser CodeCatalystECSUser
  8. 選擇 Next (下一步)

  9. 新增使用者至群組頁面上,選擇下一步

  10. 檢閱和新增使用者頁面上,檢閱資訊,然後選擇新增使用者

    一次性密碼對話方塊隨即出現。

  11. 選擇複製,然後貼上登入資訊,包括 AWS 存取入口網站 URL 和一次性密碼。

  12. 選擇關閉

建立許可集合

您將將此許可集指派給CodeCatalystECSUser稍後的 。

  1. 在導覽窗格中,選擇許可集,然後選擇建立許可集

  2. 選擇預先定義的許可集,然後選取 AdministratorAccess。此政策為所有 提供完整許可 AWS 服務。

  3. 選擇 Next (下一步)

  4. 許可集名稱中,輸入:

    CodeCatalystECSPermissionSet
  5. 選擇 Next (下一步)

  6. 檢閱和建立頁面上,檢閱資訊,然後選擇建立

將許可集指派給 CodeCatalystECSUser
  1. 在導覽窗格中,選擇 AWS 帳戶,然後選取 AWS 帳戶 您目前登入之 旁的核取方塊。

  2. 選擇指派使用者或群組

  3. 選擇使用者索引標籤。

  4. 選取 旁的核取方塊CodeCatalystECSUser

  5. 選擇 Next (下一步)

  6. 選取 旁的核取方塊CodeCatalystECSPermissionSet

  7. 選擇 Next (下一步)

  8. 檢閱資訊,然後選擇提交

    您現在已將 CodeCatalystECSUserCodeCatalystECSPermissionSet 指派給您的 AWS 帳戶,並將它們繫結在一起。

以 CodeCatalystECSUser 身分登出並重新登入
  1. 登出之前,請確定您擁有 AWS 存取入口網站 URL 以及 的使用者名稱和一次性密碼CodeCatalystECSUser。您應該已稍早將此資訊複製到文字編輯器。

    注意

    如果您沒有此資訊,請前往 IAM Identity Center 的詳細資訊CodeCatalystECSUser頁面,選擇重設密碼產生一次性密碼 【...】 和再次重設密碼,以在畫面上顯示資訊。

  2. 登出 AWS。

  3. 將 AWS 存取入口網站 URL 貼到瀏覽器的地址列。

  4. 使用 的使用者名稱和一次性密碼登入CodeCatalystECSUser

  5. 新密碼中,輸入密碼,然後選擇設定新密碼

    畫面上會出現一個AWS 帳戶方塊。

  6. 選擇 AWS 帳戶,然後選擇 AWS 帳戶 您指派CodeCatalystECSUser使用者和許可集的 名稱。

  7. 在 旁CodeCatalystECSPermissionSet,選擇 管理主控台

    AWS Management Console 隨即出現。您現在已以 身分登入,CodeCatalystECSUser並具有適當的許可。

啟動 AWS CloudShell 執行個體
  1. 作為 CodeCatalystECSUser,在頂端導覽列中,選擇 AWS 圖示 ( AWS icon )。

    隨即 AWS Management Console 出現 的主頁面。

  2. 在頂端導覽列中,選擇 AWS CloudShell 圖示 ( CloudShell icon )。

    CloudShell 隨即開啟。等待 CloudShell 環境建立。

    注意

    如果您沒有看到 CloudShell 圖示,請確定您位於 CloudShell 支援的區域中。本教學假設您位於美國西部 (奧勒岡) 區域。

驗證 AWS CLI 是否已安裝
  1. 在 CloudShell 終端機中,輸入:

    aws --version
  2. 檢查版本是否出現。

    AWS CLI 已為目前使用者 設定 CodeCatalystECSUser,因此不需要設定 AWS CLI 金鑰和登入資料,通常也是如此。

步驟 2:將預留位置應用程式部署至 Amazon ECS

在本節中,您會手動將預留位置應用程式部署至 Amazon ECS。此預留位置應用程式將由工作流程部署的 Hello World 應用程式取代。預留位置應用程式是 Apache Web Server。

如需 Amazon ECS 的詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》。

完成下列一系列程序以部署預留位置應用程式。

建立任務執行角色

此角色會授予 Amazon ECS 和 AWS Fargate 許可,以代表您進行 API 呼叫。

  1. 建立信任政策:

    1. 在 中 AWS CloudShell,輸入下列命令:

      cat > codecatalyst-ecs-trust-policy.json

      CloudShell 終端機中會出現閃爍提示。

    2. 在提示中輸入下列程式碼:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    3. 將游標放在最後一個大括號 () 之後}

    4. Enter ,然後按 Ctrl+d 儲存檔案並退出貓。

  2. 建立任務執行角色:

    aws iam create-role \ --role-name codecatalyst-ecs-task-execution-role \ --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
  3. 將 AWS 受管AmazonECSTaskExecutionRolePolicy政策連接至角色:

    aws iam attach-role-policy \ --role-name codecatalyst-ecs-task-execution-role \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
  4. 顯示角色的詳細資訊:

    aws iam get-role \ --role-name codecatalyst-ecs-task-execution-role
  5. 請記下角色"Arn":的值,例如 arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role。稍後您將需要此 Amazon Resource Name (ARN)。

建立 Amazon ECS 叢集

此叢集將包含 Apache 預留位置應用程式,以及稍後的 Hello World 應用程式。

  1. 作為 CodeCatalystECSUser,在 中 AWS CloudShell建立空叢集:

    aws ecs create-cluster --cluster-name codecatalyst-ecs-cluster
  2. (選用) 確認叢集已成功建立:

    aws ecs list-clusters

    codecatalyst-ecs-cluster 叢集的 ARN 應該會出現在清單中,表示成功建立。

建立任務定義檔案

任務定義檔案指出 要執行從 DockerHub 提取的 Apache 2.4 Web 伺服器 Docker 映像 (httpd:2.4)。 DockerHub

  1. 作為 CodeCatalystECSUser,在 中 AWS CloudShell建立任務定義檔案:

    cat > taskdef.json
  2. 在提示中貼上下列程式碼:

    { "executionRoleArn": "arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role", "containerDefinitions": [ { "name": "codecatalyst-ecs-container", "image": "httpd:2.4", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "family": "codecatalyst-ecs-task-def", "memory": "512", "networkMode": "awsvpc" }

    在上述程式碼中,取代 arn:aws:iam::111122223333:role/codecatalyst-ecs-task-execution-role

    與您在 中記下之任務執行角色的 ARN建立任務執行角色

  3. 將游標放在最後一個大括號 () 之後}

  4. Enter ,然後按 Ctrl+d 儲存檔案並退出貓。

向 Amazon ECS 註冊任務定義檔案
  1. 作為 CodeCatalystECSUser,在 中 AWS CloudShell註冊任務定義:

    aws ecs register-task-definition \ --cli-input-json file://taskdef.json
  2. (選用) 確認任務定義已註冊:

    aws ecs list-task-definitions

    codecatalyst-ecs-task-def 任務定義應該會出現在清單中。

建立 Amazon ECS 服務

Amazon ECS 服務會執行 Apache 預留位置應用程式的任務 (和相關聯的 Docker 容器),以及稍後的 Hello World 應用程式。

  1. 身為 CodeCatalystECSUser,如果您尚未切換到 Amazon Elastic Container Service 主控台,請切換到該主控台。

  2. 選擇您先前建立的叢集 codecatalyst-ecs-cluster

  3. 服務索引標籤中,選擇建立

  4. 建立頁面中,執行下列動作:

    1. 保留所有預設設定,除了接下來列出的設定。

    2. 針對 Launch type (啟動類型),選擇 FARGATE

    3. 任務定義下,在系列下拉式清單中,選擇:

      codecatalyst-ecs-task-def

    4. 針對服務名稱,輸入:

      codecatalyst-ecs-service
    5. 針對所需的任務,輸入:

      3

      在本教學課程中,每個任務都會啟動單一 Docker 容器。

    6. 展開聯網區段。

    7. 對於 VPC,請選擇任何 VPC。

    8. 針對子網路,選擇任何子網路。

      注意

      僅指定一個子網路。這就是本教學課程所需的一切。

      注意

      如果您沒有 VPC 和子網路,請建立它們。請參閱《Amazon VPC 使用者指南》中的建立 VPC 和在您的 VPC 中建立子網路

    9. 針對安全群組,選擇建立新的安全群組,然後執行下列動作:

      1. 針對安全群組名稱,輸入:

        codecatalyst-ecs-security-group
      2. 針對安全群組描述,輸入:

        CodeCatalyst ECS security group
      3. 選擇新增規則。在類型中,選擇 HTTP,在來源中,選擇任何地方

    10. 在底部,選擇建立

    11. 等待服務建立。這可能需要幾分鐘的時間。

  5. 選擇任務索引標籤,然後選擇重新整理按鈕。確認這三個任務的上次狀態欄都設定為執行中。

(選用) 驗證您的 Apache 預留位置應用程式是否正在執行
  1. 任務索引標籤中,選擇三個任務中的任何一個。

  2. 公有 IP 欄位中,選擇開啟的地址

    It Works! 頁面隨即出現。這表示 Amazon ECS 服務已成功啟動使用 Apache 映像啟動 Docker 容器的任務。

    在本教學課程中,您已手動部署 Amazon ECS 叢集、服務和任務定義,以及 Apache 預留位置應用程式。所有這些項目都就緒後,您現在可以建立工作流程,以教學課程的 Hello World 應用程式取代 Apache 預留位置應用程式。

步驟 3:建立 Amazon ECR 映像儲存庫

在本節中,您會在 Amazon Elastic Container Registry (Amazon ECR) 中建立私有映像儲存庫。此儲存庫會存放教學課程的 Docker 映像,以取代您先前部署的 Apache 預留位置映像。

如需 Amazon ECR 的詳細資訊,請參閱《Amazon Elastic Container Registry 使用者指南》。

在 Amazon ECR 中建立映像儲存庫
  1. 作為 CodeCatalystECSUser,在 中 AWS CloudShell,在 Amazon ECR 中建立空儲存庫:

    aws ecr create-repository --repository-name codecatalyst-ecs-image-repo
  2. 顯示 Amazon ECR 儲存庫的詳細資訊:

    aws ecr describe-repositories \ --repository-names codecatalyst-ecs-image-repo
  3. 請記下 “repositoryUri”:值,例如 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

    稍後將儲存庫新增至工作流程時需要它。

步驟 4:建立 AWS 角色

在本節中,您會建立 CodeCatalyst AWS 工作流程運作所需的 IAM 角色。這些角色包括:

  • 組建角色 – 授予 CodeCatalyst 組建動作 (在工作流程中) 存取 AWS 您的帳戶和寫入 Amazon ECR 和 Amazon EC2 的許可。

  • 部署角色 – 授予 CodeCatalyst 部署到 ECS 動作 (在工作流程中) 存取 AWS 您的帳戶、Amazon ECS 和其他一些 AWS 服務的許可。

如需 IAM 角色的詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的 IAM 角色

注意

若要節省時間,您可以建立稱為角色的單一CodeCatalystWorkflowDevelopmentRole-spaceName角色,而不是先前列出的兩個角色。如需詳細資訊,請參閱為您的帳戶和空間建立 CodeCatalystWorkflowDevelopmentRole-spaceName角色。了解該CodeCatalystWorkflowDevelopmentRole-spaceName角色具有非常廣泛的許可,這可能會構成安全風險。我們建議您只在不太擔心安全性的教學課程和案例中使用此角色。本教學假設您正在建立先前列出的兩個角色。

若要建立建置和部署角色,您可以使用 AWS Management Console 或 AWS CLI。

AWS Management Console

若要建立建置和部署角色,請完成下列一系列程序。

建立建置角色
  1. 建立角色的政策,如下所示:

    1. 登入 AWS。

    2. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

    3. 在導覽窗格中,選擇政策

    4. 選擇 Create policy (建立政策)。

    5. 請選擇 JSON 標籤。

    6. 刪除現有的程式碼。

    7. 貼上以下程式碼:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ec2:*" ], "Resource": "*" } ] }
      注意

      第一次使用角色執行工作流程動作時,請在資源政策陳述式中使用萬用字元,然後在資源名稱可用後縮小政策的範圍。

      "Resource": "*"
    8. 選擇下一步:標籤

    9. 選擇下一步:檢閱

    10. 名稱中,輸入:

      codecatalyst-ecs-build-policy
    11. 選擇 建立政策

      您現在已建立許可政策。

  2. 建立建置角色,如下所示:

    1. 在導覽窗格中,選擇角色,然後選擇建立角色

    2. 選擇自訂信任政策

    3. 刪除現有的自訂信任政策。

    4. 新增下列自訂信任政策:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. 選擇 Next (下一步)

    6. 許可政策中,搜尋 codecatalyst-ecs-build-policy,選取其核取方塊。

    7. 選擇 Next (下一步)

    8. 針對角色名稱,輸入:

      codecatalyst-ecs-build-role
    9. 針對角色描述,輸入:

      CodeCatalyst ECS build role
    10. 選擇建立角色

    您現在已建立具有許可政策和信任政策的建置角色。

  3. 取得建置角色 ARN,如下所示:

    1. 在導覽窗格中,選擇角色

    2. 在搜尋方塊中,輸入您剛建立的角色名稱 (codecatalyst-ecs-build-role)。

    3. 從清單中選擇角色。

      角色的摘要頁面隨即出現。

    4. 在頂端複製 ARN 值。供稍後使用。

建立部署角色
  1. 建立角色的政策,如下所示:

    1. 登入 AWS。

    2. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

    3. 在導覽窗格中,選擇政策

    4. 選擇 Create Policy (建立政策)。

    5. 請選擇 JSON 標籤。

    6. 刪除現有的程式碼。

    7. 貼上以下程式碼:

      { "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
      注意

      第一次使用角色執行工作流程動作時,請在資源政策陳述式中使用萬用字元。然後,您可以使用資源名稱縮小政策的範圍。

      "Resource": "*"
    8. 選擇下一步:標籤

    9. 選擇下一步:檢閱

    10. 名稱中,輸入:

      codecatalyst-ecs-deploy-policy
    11. 選擇 建立政策

      您現在已建立許可政策。

  2. 建立部署角色,如下所示:

    1. 在導覽窗格中,選擇角色,然後選擇建立角色

    2. 選擇自訂信任政策

    3. 刪除現有的自訂信任政策。

    4. 新增下列自訂信任政策:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. 選擇 Next (下一步)

    6. 許可政策中,搜尋 codecatalyst-ecs-deploy-policy,選取其核取方塊。

    7. 選擇 Next (下一步)

    8. 針對角色名稱,輸入:

      codecatalyst-ecs-deploy-role
    9. 針對角色描述,輸入:

      CodeCatalyst ECS deploy role
    10. 選擇建立角色

    您現在已使用信任政策建立部署角色。

  3. 取得部署角色 ARN,如下所示:

    1. 在導覽窗格中,選擇角色

    2. 在搜尋方塊中,輸入您剛建立的角色名稱 (codecatalyst-ecs-deploy-role)。

    3. 從清單中選擇角色。

      角色的摘要頁面隨即出現。

    4. 在頂端複製 ARN 值。供稍後使用。

AWS CLI

若要建立建置和部署角色,請完成下列一系列程序。

為兩個角色建立信任政策

作為 CodeCatalystECSUser,在 中 AWS CloudShell建立信任政策檔案:

  1. 建立 檔案:

    cat > codecatalyst-ecs-trust-policy.json
  2. 在終端機提示中,貼上下列程式碼:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. 將游標放在最後一個大括號 () 之後}

  4. Enter ,然後按 Ctrl+d 儲存檔案並退出貓。

建立建置政策和建置角色
  1. 建立建置政策:

    1. 作為 CodeCatalystECSUser,在 中 AWS CloudShell建立建置政策檔案:

      cat > codecatalyst-ecs-build-policy.json
    2. 在提示中,輸入下列程式碼:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ec2:*" ], "Resource": "*" } ] }
    3. 將游標放在最後一個大括號 () 之後}

    4. Enter ,然後按 Ctrl+d 儲存檔案並退出貓。

  2. 將建置政策新增至 AWS:

    aws iam create-policy \ --policy-name codecatalyst-ecs-build-policy \ --policy-document file://codecatalyst-ecs-build-policy.json
  3. 在命令輸出中,記下 "arn":值,例如 arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy。您稍後需要此 ARN。

  4. 建立建置角色,並將信任政策連接至該角色:

    aws iam create-role \ --role-name codecatalyst-ecs-build-role \ --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
  5. 將建置政策連接至建置角色:

    aws iam attach-role-policy \ --role-name codecatalyst-ecs-build-role \ --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy

    其中 arn:aws:iam::111122223333:policy/codecatalyst-ecs-build-policy 會取代為您先前記下的建置政策 ARN。

  6. 顯示建置角色的詳細資訊:

    aws iam get-role \ --role-name codecatalyst-ecs-build-role
  7. 請記下角色"Arn":的值,例如 arn:aws:iam::111122223333:role/codecatalyst-ecs-build-role。您稍後需要此 ARN。

建立部署政策和部署角色
  1. 建立部署政策:

    1. 在 中 AWS CloudShell,建立部署政策檔案:

      cat > codecatalyst-ecs-deploy-policy.json
    2. 在提示中,輸入下列程式碼:

      { "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
      注意

      第一次使用該角色執行工作流程動作時,請在資源政策陳述式中使用萬用字元,然後在資源名稱可用後縮小政策範圍。

      "Resource": "*"
    3. 將游標放在最後一個大括號 () 之後}

    4. Enter ,然後按 Ctrl+d 儲存檔案並退出貓。

  2. 將部署政策新增至 AWS:

    aws iam create-policy \ --policy-name codecatalyst-ecs-deploy-policy \ --policy-document file://codecatalyst-ecs-deploy-policy.json
  3. 在命令輸出中,記下部署政策"arn":的值,例如 arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy。您稍後需要此 ARN。

  4. 建立部署角色,並將信任政策連接至該角色:

    aws iam create-role \ --role-name codecatalyst-ecs-deploy-role \ --assume-role-policy-document file://codecatalyst-ecs-trust-policy.json
  5. 將部署政策連接至部署角色,其中 arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy 會取代為您先前記下的部署政策 ARN。

    aws iam attach-role-policy \ --role-name codecatalyst-ecs-deploy-role \ --policy-arn arn:aws:iam::111122223333:policy/codecatalyst-ecs-deploy-policy
  6. 顯示部署角色的詳細資訊:

    aws iam get-role \ --role-name codecatalyst-ecs-deploy-role
  7. 請記下角色"Arn":的值,例如 arn:aws:iam::111122223333:role/codecatalyst-ecs-deploy-role。您稍後需要此 ARN。

若要建立建置和部署角色,請完成下列一系列程序。

建立建置角色
  1. 建立角色的政策,如下所示:

    1. 登入 AWS。

    2. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

    3. 在導覽窗格中,選擇政策

    4. 選擇 Create policy (建立政策)。

    5. 請選擇 JSON 標籤。

    6. 刪除現有的程式碼。

    7. 貼上以下程式碼:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:*", "ec2:*" ], "Resource": "*" } ] }
      注意

      第一次使用角色執行工作流程動作時,請在資源政策陳述式中使用萬用字元,然後在資源名稱可用後縮小政策的範圍。

      "Resource": "*"
    8. 選擇下一步:標籤

    9. 選擇下一步:檢閱

    10. 名稱中,輸入:

      codecatalyst-ecs-build-policy
    11. 選擇 建立政策

      您現在已建立許可政策。

  2. 建立建置角色,如下所示:

    1. 在導覽窗格中,選擇角色,然後選擇建立角色

    2. 選擇自訂信任政策

    3. 刪除現有的自訂信任政策。

    4. 新增下列自訂信任政策:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. 選擇 Next (下一步)

    6. 許可政策中,搜尋 codecatalyst-ecs-build-policy,選取其核取方塊。

    7. 選擇 Next (下一步)

    8. 針對角色名稱,輸入:

      codecatalyst-ecs-build-role
    9. 針對角色描述,輸入:

      CodeCatalyst ECS build role
    10. 選擇建立角色

    您現在已建立具有許可政策和信任政策的建置角色。

  3. 取得建置角色 ARN,如下所示:

    1. 在導覽窗格中,選擇角色

    2. 在搜尋方塊中,輸入您剛建立的角色名稱 (codecatalyst-ecs-build-role)。

    3. 從清單中選擇角色。

      角色的摘要頁面隨即出現。

    4. 在頂端複製 ARN 值。供稍後使用。

建立部署角色
  1. 建立角色的政策,如下所示:

    1. 登入 AWS。

    2. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

    3. 在導覽窗格中,選擇政策

    4. 選擇 Create Policy (建立政策)。

    5. 請選擇 JSON 標籤。

    6. 刪除現有的程式碼。

    7. 貼上以下程式碼:

      { "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
      注意

      第一次使用角色執行工作流程動作時,請在資源政策陳述式中使用萬用字元。然後,您可以使用資源名稱縮小政策的範圍。

      "Resource": "*"
    8. 選擇下一步:標籤

    9. 選擇下一步:檢閱

    10. 名稱中,輸入:

      codecatalyst-ecs-deploy-policy
    11. 選擇 建立政策

      您現在已建立許可政策。

  2. 建立部署角色,如下所示:

    1. 在導覽窗格中,選擇角色,然後選擇建立角色

    2. 選擇自訂信任政策

    3. 刪除現有的自訂信任政策。

    4. 新增下列自訂信任政策:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. 選擇 Next (下一步)

    6. 許可政策中,搜尋 codecatalyst-ecs-deploy-policy,選取其核取方塊。

    7. 選擇 Next (下一步)

    8. 針對角色名稱,輸入:

      codecatalyst-ecs-deploy-role
    9. 針對角色描述,輸入:

      CodeCatalyst ECS deploy role
    10. 選擇建立角色

    您現在已使用信任政策建立部署角色。

  3. 取得部署角色 ARN,如下所示:

    1. 在導覽窗格中,選擇角色

    2. 在搜尋方塊中,輸入您剛建立的角色名稱 (codecatalyst-ecs-deploy-role)。

    3. 從清單中選擇角色。

      角色的摘要頁面隨即出現。

    4. 在頂端複製 ARN 值。供稍後使用。

步驟 5:將 AWS 角色新增至 CodeCatalyst

在此步驟中,您會將建置角色 (codecatalyst-ecs-build-role) 和部署角色 (codecatalyst-ecs-deploy-role) 新增至您空間中的 CodeCatalyst 帳戶連線。

將建置和部署角色新增至您的帳戶連線
  1. 在 CodeCatalyst 中,導覽至您的空間。

  2. 選擇AWS 帳戶。帳戶連線清單隨即出現。

  3. 選擇代表您建立建置和部署角色 AWS 的帳戶的帳戶連線。

  4. 從管理主控台選擇 AWS 管理角色

    將 IAM 角色新增至 Amazon CodeCatalyst 空間頁面隨即出現。您可能需要登入才能存取頁面。

  5. 選取新增您在 IAM 中建立的現有角色

    下拉式清單隨即出現。清單會顯示具有信任政策的所有 IAM 角色,其中包含 codecatalyst-runner.amazonaws.comcodecatalyst.amazonaws.com和服務主體。

  6. 在下拉式清單中,選擇 codecatalyst-ecs-build-role,然後選擇新增角色

    注意

    如果您看到 The security token included in the request is invalid,可能是因為您沒有正確的許可。若要修正此問題,請以您建立 CodeCatalyst 空間時使用 AWS 的帳戶登入 AWS 身分登出 。

  7. 選擇新增 IAM 角色,選擇新增您在 IAM 中建立的現有角色,然後在下拉式清單中選擇 codecatalyst-ecs-deploy-role。選擇 Add role (新增角色)

    您現在已新增建置並將角色部署到您的空間。

  8. 複製 Amazon CodeCatalyst 顯示名稱的值。您稍後在建立工作流程時需要此值。

步驟 6:建立來源儲存庫

在此步驟中,您會在 CodeCatalyst 中建立來源儲存庫。此儲存庫會存放教學課程的來源檔案,例如任務定義檔案。

如需來源儲存庫的詳細資訊,請參閱 建立來源儲存庫

建立來源儲存庫
  1. 開啟 CodeCatalyst 主控台,網址為 https://https://codecatalyst.aws/

  2. 導覽至您的專案 codecatalyst-ecs-project

  3. 在導覽窗格中,選擇程式碼,然後選擇來源儲存庫

  4. 選擇新增儲存庫,然後選擇建立儲存庫

  5. 儲存庫名稱中,輸入:

    codecatalyst-ecs-source-repository
  6. 選擇 Create (建立)。

步驟 7:新增來源檔案

在本節中,您將 Hello World 來源檔案新增至 CodeCatalyst 儲存庫 codecatalyst-ecs-source-repository。它們包含:

  • index.html 檔案 – 在瀏覽器中顯示 Hello World 訊息。

  • Dockerfile - 描述要用於 Docker 映像的基本映像,以及要套用的 Docker 命令。

  • taskdef.json 檔案 – 定義在叢集中啟動任務時要使用的 Docker 映像。

資料夾結構如下:

. |— public-html | |— index.html |— Dockerfile |— taskdef.json
注意

下列指示說明如何使用 CodeCatalyst 主控台新增檔案,但您可以視需要使用 Git。如需詳細資訊,請參閱 複製來源儲存庫

index.html

index.html 檔案會在瀏覽器中顯示 Hello World 訊息。

新增 index.html 檔案
  1. 在 CodeCatalyst 主控台中,前往您的來源儲存庫 codecatalyst-ecs-source-repository

  2. 檔案中,選擇建立檔案

  3. 針對檔案名稱,輸入:

    public-html/index.html
    重要

    請務必包含 public-html/字首,以建立相同名稱的資料夾。index.html 預期位於此資料夾中。

  4. 在文字方塊中,輸入下列程式碼:

    <html> <head> <title>Hello World</title> <style> body { background-color: black; text-align: center; color: white; font-family: Arial, Helvetica, sans-serif; } </style> </head> <body> <h1>Hello World</h1> </body> </html>
  5. 選擇遞交,然後再次選擇遞交

    index.html 會新增至public-html資料夾中的儲存庫。

Dockerfile

Dockerfile 說明要使用的基本 Docker 映像,以及要套用的 Docker 命令。如需 Dockerfile 的詳細資訊,請參閱 Dockerfile 參考

此處指定的 Dockerfile 表示使用 Apache 2.4 基礎映像 (httpd)。它還包含將名為 的來源檔案複製到提供網頁之 Apache 伺服器上index.html資料夾的說明。Dockerfile 中的 EXPOSE指示會告知 Docker 容器正在接聽連接埠 80。

新增 Dockerfile
  1. 在來源儲存庫中,選擇建立檔案

  2. 針對檔案名稱,輸入:

    Dockerfile

    請勿包含副檔名。

    重要

    Dockerfile 必須位於儲存庫的根資料夾中。工作流程的 Docker build 命令預期會存在。

  3. 在文字方塊中,輸入下列程式碼:

    FROM httpd:2.4 COPY ./public-html/index.html /usr/local/apache2/htdocs/index.html EXPOSE 80
  4. 選擇遞交,然後再次選擇遞交

    Dockerfile 會新增至您的儲存庫。

taskdef.json

您在此步驟中新增的檔案與您已在 中指定的taskdef.json檔案相同,步驟 2:將預留位置應用程式部署至 Amazon ECS但有以下差異:

這裡的任務定義會使用幾個變數來表示影像: $REPOSITORY_URI和 ,而不是在 image: 欄位 (httpd:2.4) 中指定硬式編碼的 Docker 影像名稱$IMAGE_TAG。當您在後續步驟中執行工作流程時,這些變數將取代為工作流程建置動作所產生的實際值。

如需任務定義參數的詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的任務定義參數

新增 taskdef.json 檔案
  1. 在來源儲存庫中,選擇建立檔案

  2. 針對檔案名稱,輸入:

    taskdef.json
  3. 在文字方塊中,輸入下列程式碼:

    { "executionRoleArn": "arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role", "containerDefinitions": [ { "name": "codecatalyst-ecs-container", # The $REPOSITORY_URI and $IMAGE_TAG variables will be replaced # by the workflow at build time (see the build action in the # workflow) "image": $REPOSITORY_URI:$IMAGE_TAG, "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ] } ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "cpu": "256", "memory": "512", "family": "codecatalyst-ecs-task-def" }

    在上述程式碼中,取代

    arn:aws:iam::account_ID:role/codecatalyst-ecs-task-execution-role

    與您在 中記下之任務執行角色的 ARN建立任務執行角色

  4. 選擇遞交,然後再次選擇遞交

    taskdef.json 檔案會新增至您的儲存庫。

步驟 8:建立和執行工作流程

在此步驟中,您會建立工作流程來取得來源檔案、將其建置到 Docker 映像中,然後將映像部署到您的 Amazon ECS 叢集。此部署會取代現有的 Apache 預留位置應用程式。

工作流程包含下列依順序執行的建置區塊:

  • 觸發條件 – 當您將變更推送至來源儲存庫時,此觸發條件會自動啟動工作流程執行。關於觸發條件的詳細資訊,請參閱 使用觸發程序自動啟動工作流程執行

  • 建置動作 (BuildBackend) – 在觸發時,動作會使用 Dockerfile 建置 Docker 映像,並將映像推送至 Amazon ECR。建置動作也會taskdef.json使用正確的image欄位值更新 ,然後建立此檔案的輸出成品。此成品會用作部署動作的輸入,接下來是 。

    如需建置動作的詳細資訊,請參閱 使用工作流程建置

  • 部署動作 (DeployToECS) – 完成建置動作後,部署動作會尋找建置動作 (TaskDefArtifact) 產生的輸出成品,尋找其中的 taskdef.json ,並將其註冊至 Amazon ECS 服務。然後,服務會遵循 taskdef.json 檔案中的指示,在您的 Amazon ECS 叢集內執行三個 Amazon ECS 任務,以及相關聯的 Hello World Docker 容器。

若要建立工作流程
  1. 在 CodeCatalyst 主控台的導覽窗格中,選擇 CI/CD,然後選擇工作流程

  2. 選擇建立工作流程

  3. 針對來源儲存庫,選擇 codecatalyst-ecs-source-repository

  4. 針對分支,選擇 main

  5. 選擇 Create (建立)。

  6. 刪除 YAML 範例程式碼。

  7. 新增下列 YAML 程式碼:

    注意

    在後續的 YAML 程式碼中,您可以視需要省略這些Connections:區段。如果您省略這些區段,您必須確保環境中預設 IAM 角色欄位中指定的角色包含 中所述兩個角色的許可和信任政策步驟 5:將 AWS 角色新增至 CodeCatalyst。如需使用預設 IAM 角色設定環境的詳細資訊,請參閱 建立環境

    Name: codecatalyst-ecs-workflow SchemaVersion: 1.0 Triggers: - Type: PUSH Branches: - main Actions: BuildBackend: Identifier: aws/build@v1 Environment: Name: codecatalyst-ecs-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-ecs-build-role Inputs: Sources: - WorkflowSource Variables: - Name: REPOSITORY_URI Value: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo - Name: IMAGE_TAG Value: ${WorkflowSource.CommitId} Configuration: Steps: #pre_build: - Run: echo Logging in to Amazon ECR... - Run: aws --version - Run: aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com #build: - Run: echo Build started on `date` - Run: echo Building the Docker image... - Run: docker build -t $REPOSITORY_URI:latest . - Run: docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG #post_build: - Run: echo Build completed on `date` - Run: echo Pushing the Docker images... - Run: docker push $REPOSITORY_URI:latest - Run: docker push $REPOSITORY_URI:$IMAGE_TAG # Replace the variables in taskdef.json - Run: find taskdef.json -type f | xargs sed -i "s|\$REPOSITORY_URI|$REPOSITORY_URI|g" - Run: find taskdef.json -type f | xargs sed -i "s|\$IMAGE_TAG|$IMAGE_TAG|g" - Run: cat taskdef.json # The output artifact will be a zip file that contains a task definition file. Outputs: Artifacts: - Name: TaskDefArtifact Files: - taskdef.json DeployToECS: DependsOn: - BuildBackend Identifier: aws/ecs-deploy@v1 Environment: Name: codecatalyst-ecs-environment Connections: - Name: codecatalyst-account-connection Role: codecatalyst-ecs-deploy-role Inputs: Sources: [] Artifacts: - TaskDefArtifact Configuration: region: us-west-2 cluster: codecatalyst-ecs-cluster service: codecatalyst-ecs-service task-definition: taskdef.json

    在上述程式碼中,取代:

    • 兩個 codecatalyst-ecs-environment 執行個體,其名稱為您在 中建立的環境先決條件

    • 這兩個 codecatalyst-account-connection 執行個體都具有您帳戶連線的顯示名稱。顯示名稱可能是數字。如需詳細資訊,請參閱步驟 5:將 AWS 角色新增至 CodeCatalyst

    • codecatalyst-ecs-build-role,內含您在 中建立的建置角色名稱步驟 4:建立 AWS 角色

    • 使用您在 中建立之 Amazon ECR 儲存庫的 URI 的 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo (在 Value: 屬性中)步驟 3:建立 Amazon ECR 映像儲存庫

    • 具有 Amazon ECR 儲存庫 URI 且不含映像尾碼 () 的 111122223333.dkr.ecr.us-west-2.amazonaws.com ECR 儲存庫的 (在 Run: aws ecr命令中)/codecatalyst-ecs-image-repo

    • codecatalyst-ecs-deploy-role,內含您在 中建立的部署角色名稱步驟 4:建立 AWS 角色

    • 使用 AWS 區域碼的 us-west-2 執行個體。如需區域代碼的清單,請參閱《》中的區域端點AWS 一般參考

    注意

    如果您決定不建立建置和部署角色,請將 codecatalyst-ecs-build-rolecodecatalyst-ecs-deploy-role 取代為CodeCatalystWorkflowDevelopmentRole-spaceName角色的名稱。如需有關此角色的詳細資訊,請參閱 步驟 4:建立 AWS 角色

    提示

    您可以為此目的使用轉譯 Amazon ECS 任務定義動作,而不是使用先前工作流程程式碼中顯示的 和 findsed命令來更新儲存庫和映像名稱。如需詳細資訊,請參閱修改 Amazon ECS 任務定義

  8. (選用) 選擇驗證,以確保 YAML 程式碼在遞交之前有效。

  9. 選擇 Commit (遞交)。

  10. 遞交工作流程對話方塊中,輸入下列內容:

    1. 針對遞交訊息,移除文字並輸入:

      Add first workflow
    2. 針對儲存庫,選擇 codecatalyst-ecs-source-repository

    3. 針對分支名稱,選擇主要。

    4. 選擇 Commit (遞交)。

    您現在已建立工作流程。由於工作流程頂端定義的觸發條件,工作流程執行會自動啟動。具體而言,當您將workflow.yaml檔案遞交 (並推送) 至來源儲存庫時,觸發會啟動工作流程執行。

檢視工作流程執行進度
  1. 在 CodeCatalyst 主控台的導覽窗格中,選擇 CI/CD,然後選擇工作流程

  2. 選擇您剛建立的工作流程 codecatalyst-ecs-workflow

  3. 選擇 BuildBackend 以查看建置進度。

  4. 選擇 DeployToECS 以查看部署進度。

    如需檢視執行詳細資訊的詳細資訊,請參閱 檢視工作流程執行狀態和詳細資訊

驗證部署
  1. 開啟 Amazon ECS 傳統主控台,網址為 https://console.aws.amazon.com/ecs/

  2. 選擇您的叢集 codecatalyst-ecs-cluster

  3. 選擇 Tasks (任務) 索引標籤。

  4. 選擇這三個任務中的任何一個。

  5. 公有 IP 欄位中,選擇開啟的地址

    瀏覽器中會出現「Hello World」頁面,指出 Amazon ECS 服務已成功部署您的應用程式。

步驟 9:變更來源檔案

在本節中,您會變更來源儲存庫中的 index.html 檔案。此變更會導致工作流程建立新的 Docker 映像、使用遞交 ID 標記它、將其推送至 Amazon ECR,並將其部署至 Amazon ECS。

變更 index.html
  1. 在 CodeCatalyst 主控台的導覽窗格中,選擇程式碼,然後選擇來源儲存庫,然後選擇您的儲存庫 codecatalyst-ecs-source-repository

  2. 選擇 public-html (下一步),然後選擇 index.html (完成)。

    內容index.html隨即出現。

  3. 選擇編輯

  4. 在第 14 行,將Hello World文字變更為 Tutorial complete!

  5. 選擇遞交,然後再次選擇遞交

    遞交會導致新的工作流程執行開始。

  6. (選用) 前往來源儲存庫的主頁面,選擇檢視遞交,然後記下index.html變更的遞交 ID。

  7. 觀看部署進度:

    1. 在導覽窗格中,選擇 CI/CD,然後選擇工作流程

    2. 選擇 codecatalyst-ecs-workflow以檢視最新執行。

    3. 選擇 BuildBackendDeployToECS 以查看工作流程執行進度。

  8. 確認您的應用程式已更新,如下所示:

    1. 開啟 Amazon ECS 傳統主控台,網址為 https://console.aws.amazon.com/ecs/

    2. 選擇您的叢集 codecatalyst-ecs-cluster

    3. 選擇 Tasks (任務) 索引標籤。

    4. 選擇這三個任務中的任何一個。

    5. 公有 IP 欄位中,選擇開啟的地址

      Tutorial complete! 頁面隨即出現。

  9. (選用) 在 中 AWS,切換到 Amazon ECR 主控台,並確認新的 Docker 映像已使用步驟 6 的遞交 ID 標記。

清除

清除本教學課程中使用的檔案和服務,以避免產生費用。

在 中 AWS Management Console,依此順序清除:

  1. 在 Amazon ECS 中,執行下列動作:

    1. 刪除 codecatalyst-ecs-service

    2. 刪除 codecatalyst-ecs-cluster

    3. 取消註冊 codecatalyst-ecs-task-definition

  2. 在 Amazon ECR 中,刪除 codecatalyst-ecs-image-repo

  3. 在 Amazon EC2 中,刪除 codecatalyst-ecs-security-group

  4. 在 IAM Identity Center 中,刪除:

    1. CodeCatalystECSUser

    2. CodeCatalystECSPermissionSet

在 CodeCatalyst 主控台中,清除,如下所示:

  1. 刪除 codecatalyst-ecs-workflow

  2. 刪除 codecatalyst-ecs-environment

  3. 刪除 codecatalyst-ecs-source-repository

  4. 刪除 codecatalyst-ecs-project

在本教學課程中,您已了解如何使用 CodeCatalyst 工作流程和部署至 Amazon ECS 動作,將應用程式部署至 Amazon ECS 服務。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。