示例 2:使用 Amazon CloudFormation创建 Amazon S3 管道 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例 2:使用 Amazon CloudFormation创建 Amazon S3 管道

本演练向您展示如何使用 Amazon CloudFormation 控制台创建基础设施,其中包括连接到 Amazon S3 源存储桶的管道。在本教程中,您将使用提供的示例模板文件创建资源堆栈,其中包括您的源存储桶、项目存储、管道和更改检测资源,例如您的 Amazon Ev CloudWatch ents 规则和 CloudTrail跟踪。在中创建资源堆栈后 Amazon CloudFormation,您可以在 Amazon CodePipeline 控制台中查看您的管道。该管道是一个分为两个阶段的管道,包括一个 Amazon S3 源阶段和一个 CodeDeploy部署阶段。

先决条件:

您必须拥有以下资源才能与 Amazon CloudFormation 示例模板一起使用:

  • 您必须已创建 Amazon EC2 实例,并在实例上安装了 CodeDeploy 代理。您必须已创建 CodeDeploy 应用程序和部署组。使用您在中创建的 Amazon EC2 和 CodeDeploy 资源教程:创建简单的管道(CodeCommit存储库)

  • 选择以下链接下载用于使用 Amazon S3 源创建管道的示例 Amazon CloudFormation 模板文件:

    • 下载管道的示例模板:YAML| JSON

    • 下载 CloudTrail 存储桶和跟踪的示例模板:YAML| JSON

    • 解压缩文件并将其放在您的本地计算机上。

  • SampleApp_Linux.zip 下载示例应用程序。

    将 .zip 文件保存在本地计算机上。创建堆栈后,您将上传 .zip 文件。

在中创建您的管道 Amazon CloudFormation
  1. 打开 Amazon CloudFormation 控制台,然后选择创建堆栈。选择使用新资源(标准)

  2. 选择一个模板中,选择上传模板。选中选择文件,然后从您的本地计算机选择模板文件。选择下一步

  3. 堆栈名称中,输入管道的名称。将显示由示例模板指定的参数。输入以下参数:

    1. 在中 ApplicationName,输入您的 CodeDeploy 应用程序的名称。您可以替换 DemoApplication 默认名称。

    2. 在中 BetaFleet,输入您的 CodeDeploy 部署组的名称。您可以替换 DemoFleet 默认名称。

    3. 在中 SourceObjectKey,输入SampleApp_Linux.zip。在模板创建存储桶和管道后,将此文件上传到存储桶。

  4. 选择下一步。在接下来的页面上接受默认值,然后选择下一步

  5. 在 “权能” 中,选择 “我确认 Amazon CloudFormation 可能会创建IAM资源”,然后选择 “创建堆栈”。

  6. 在堆栈创建完成后,查看事件列表以检查是否存在任何错误。

    故障排除

    在中创建管道IAM的用户 Amazon CloudFormation 可能需要额外的权限才能为管道创建资源。策略中需要以下权限 Amazon CloudFormation 才能允许为 Amazon S3 管道创建所需的 Amazon Ev CloudWatch ents 资源:

    { "Effect": "Allow", "Action": [ "events:PutRule", "events:PutEvents", "events:PutTargets", "events:DeleteRule", "events:RemoveTargets", "events:DescribeRule" ], "Resource": "resource_ARN" }
  7. 在 Amazon CloudFormation堆栈的 “资源” 选项卡中,查看为您的堆栈创建的资源。

    注意

    要查看已创建的管道,请在 Amazon CloudFormation中找到堆栈的资源选项卡下的逻辑 ID 列。记下管道的物理 ID 列中的名称。在中 CodePipeline,您可以在创建堆栈的区域中查看具有相同物理 ID(管道名称)的管道。

    选择名称中包含 sourcebucket 标签的 S3 存储桶,例如 s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.。不要选择管道构件存储桶。

    源存储桶为空,因为资源是由 Amazon CloudFormation新创建的。打开 Amazon S3 控制台,并找到您的 sourcebucket 桶。选择 Upload (上传),然后按照说明上传 SampleApp_Linux.zip .zip 文件。

    注意

    当 Amazon S3 是管道的源提供程序时,您必须将所有源文件打包为单个 .zip 文件上传到桶。否则,源操作将失败。

  8. 登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/

    管道下,选择您的管道,然后选择查看。该图显示了您的管道源和部署阶段。

  9. 完成以下过程中的步骤来创建您的 Amazon CloudTrail 资源。

在中创建您的 Amazon CloudTrail 资源 Amazon CloudFormation
  1. 打开 Amazon CloudFormation 控制台,然后选择创建堆栈

  2. 选择一个模板中,选择将模板上传到 Amazon S3。选择 “浏览”,然后从本地计算机上为 Amazon CloudTrail 资源选择模板文件。选择下一步

  3. 堆栈名称中,输入资源堆栈的名称。将显示由示例模板指定的参数。输入以下参数:

    1. 在中 SourceObjectKey,接受示例应用程序的 zip 文件的默认值。

  4. 选择下一步。在接下来的页面上接受默认值,然后选择下一步

  5. 在 “权能” 中,选择 “我确认 Amazon CloudFormation 可能会创建IAM资源”,然后选择 “创建”。

  6. 在堆栈创建完成后,查看事件列表以检查是否存在任何错误。

    策略中需要以下权限 Amazon CloudFormation 才能创建 Amazon S3 管道所需的 CloudTrail 资源:

    { "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:PutEventSelectors" ], "Resource": "resource_ARN" }
  7. 登录 Amazon Web Services Management Console 并打开 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/

    管道下,选择您的管道,然后选择查看。该图显示了您的管道源和部署阶段。

  8. 在您的源存储桶中,提交并推送更改。您的更改检测资源会拾取更改,并且您的管道启动。