範例 2:使用 建立 Amazon S3 管道 AWS CloudFormation - AWS CodePipeline

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

範例 2:使用 建立 Amazon S3 管道 AWS CloudFormation

此逐步解說說明如何使用 AWS CloudFormation 主控台建立基礎設施,其中包含連線至 Amazon S3 來源儲存貯體的管道。在本教學課程中,您會使用提供的範例範本檔案來建立資源堆疊,其中包含來源儲存貯體、成品存放區、管道和變更偵測資源,例如 Amazon CloudWatch Events 規則和 CloudTrail 追蹤。在 中建立資源堆疊之後 AWS CloudFormation,您可以在 AWS CodePipeline 主控台中檢視管道。管道是具有 Amazon S3 來源階段和 CodeDeploy 部署階段的兩階段管道。

先決條件:

您必須擁有下列資源,才能搭配 AWS CloudFormation 範例範本使用:

  • 您必須已建立 Amazon EC2 執行個體,並在其中安裝 CodeDeploy 代理程式。您必須已建立 CodeDeploy 應用程式和部署群組。使用您在 中建立的 Amazon EC2 和 CodeDeploy 資源教學課程:建立簡單的管道 (CodeCommit 儲存庫)

  • 選擇下列連結,下載範例 AWS CloudFormation 範本檔案,以使用 Amazon S3 來源建立管道:

    • 下載管道的範例範本:YAML | JSON

    • 下載 CloudTrail 儲存貯體和線索的範例範本:YAML | JSON

    • 解壓縮檔案並將它們放在您的本機電腦。

  • SampleApp_Linux.zip 下載範例應用程式。

    將 .zip 檔案儲存至本機電腦。在建立堆疊之後,您會上傳 .zip 檔案。

在 中建立管道 AWS CloudFormation
  1. 開啟 AWS CloudFormation 主控台,然後選擇建立堆疊。選擇 With new resources (standard) (使用新資源 (標準))。

  2. 選擇範本中,選擇上傳範本。選取選擇檔案,然後從本機電腦選擇範本檔案。選擇 Next (下一步)

  3. Stack name (堆疊名稱) 中,輸入管道的名稱。即會顯示範例範本指定的參數。輸入下列參數:

    1. ApplicationName 中,輸入 CodeDeploy 應用程式的名稱。您可以取代 DemoApplication 預設名稱。

    2. BetaFleet 中,輸入 CodeDeploy 部署群組的名稱。您可以取代 DemoFleet 預設名稱。

    3. SourceObjectKey 中,輸入 SampleApp_Linux.zip。您可以在範本建立儲存貯體和管道後,將此檔案上傳到您的儲存貯體。

  4. 選擇 Next (下一步)。接受以下頁面上的預設值,然後選擇 Next (下一步)

  5. 功能中,選取我確認 AWS CloudFormation 可能會建立 IAM 資源,然後選擇建立堆疊

  6. 在完成您的堆疊建立之後,請檢視事件清單以檢查是否有任何錯誤。

    疑難排解

    在 中建立管道的 IAM 使用者 AWS CloudFormation 可能需要額外的許可,才能為管道建立資源。政策需要下列許可 AWS CloudFormation ,才能允許 為 Amazon S3 管道建立所需的 Amazon CloudWatch Events 資源: Amazon S3

    { "Effect": "Allow", "Action": [ "events:PutRule", "events:PutEvents", "events:PutTargets", "events:DeleteRule", "events:RemoveTargets", "events:DescribeRule" ], "Resource": "resource_ARN" }
  7. 在堆疊的資源索引標籤 AWS CloudFormation中,檢視為堆疊建立的資源。

    注意

    若要檢視已建立的管道,請在堆疊的資源索引標籤下尋找邏輯 ID 欄 AWS CloudFormation。記下管道實體 ID 欄中的名稱。在 CodePipeline 中,您可以在建立堆疊的區域中檢視具有相同實體 ID (管道名稱) 的管道。

    選擇名稱中包含 sourcebucket 標籤的 S3 儲存貯體,例如 s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.。請不要選擇管道成品儲存貯體。

    來源儲存貯體是空白的,因為 AWS CloudFormation才剛建立資源。開啟 Amazon S3 主控台並找到您的儲存sourcebucket貯體。選擇 Upload (上傳) 並遵循說明,來上傳您的 SampleApp_Linux.zip .zip 檔案。

    注意

    當 Amazon S3 是管道的來源提供者時,您必須將所有原始檔案上傳到儲存貯體,並封裝為單一 .zip 檔案。否則,來源動作會失敗。

  8. 登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 https://https://console.aws.amazon.com/codepipeline/

    Pipelines (管道) 下,選擇您的管道,然後選擇 View (檢視)。本圖顯示您的管道來源和部署階段。

  9. 完成下列程序中的步驟來建立 AWS CloudTrail 資源。

在 中建立您的 AWS CloudTrail 資源 AWS CloudFormation
  1. 開啟 AWS CloudFormation 主控台,然後選擇建立堆疊

  2. Choose a template (選擇範本) 中,請選擇 Upload a template to Amazon S3 (上傳範本至 Amazon S3)。選擇瀏覽,然後從本機電腦選取 AWS CloudTrail 資源的範本檔案。選擇 Next (下一步)

  3. Stack name (堆疊名稱) 中,輸入資源堆疊的名稱。即會顯示範例範本指定的參數。輸入下列參數:

    1. SourceObjectKey (SourceObjectKey) 中,接受範例應用程式的壓縮檔預設值。

  4. 選擇 Next (下一步)。接受以下頁面上的預設值,然後選擇 Next (下一步)

  5. 功能中,選取我確認 AWS CloudFormation 可能會建立 IAM 資源,然後選擇建立

  6. 在完成您的堆疊建立之後,請檢視事件清單以檢查是否有任何錯誤。

    政策需要下列許可 AWS CloudFormation ,才能允許 為 Amazon S3 管道建立所需的 CloudTrail 資源:

    { "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:PutEventSelectors" ], "Resource": "resource_ARN" }
  7. 登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 https://https://console.aws.amazon.com/codepipeline/

    Pipelines (管道) 下,選擇您的管道,然後選擇 View (檢視)。本圖顯示您的管道來源和部署階段。

  8. 在來源儲存貯體中遞交並推送變更。您的變更偵測資源會套用該變更,然後您的管道便會啟動。