AWS CodeDeploy
User Guide (API Version 2014-10-06)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

配置用于 AWS CodeDeploy 的 Amazon EC2 实例

下面的说明显示如何配置运行 Amazon Linux、Ubuntu Server、Red Hat Enterprise Linux (RHEL) 或 Windows Server 的 Amazon EC2 实例供在 AWS CodeDeploy 部署中使用。

注意

如果您没有 Amazon EC2 实例,可以使用 AWS CloudFormation 模板启动一个运行 Amazon Linux 或 Windows Server 的实例。我们不提供适用于 Ubuntu Server 或 RHEL 的模板。

执行本主题中的步骤:

步骤 1:验证 IAM 实例配置文件是否已附加到 Amazon EC2 实例

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 Instances 下,选择 Instances

  3. 浏览并在列表中选择您的 Amazon EC2 实例。

  4. 在详细信息窗格中的 Description 选项卡上,记下 IAM role 字段中的值,然后继续下一部分。

    如果该字段为空,您可以向实例附加 IAM 实例配置文件。有关信息,请参阅将 IAM 角色附加到实例

步骤 2:验证附加的 IAM 实例配置文件是否具有正确的访问权限

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles

  3. 浏览并选择您在前一部分的步骤 4 中记下的 IAM 角色名称。

    注意

    如果您希望使用由 AWS CloudFormation 模板生成的服务角色,而不使用您通过按照步骤 3:为 AWS CodeDeploy 创建服务角色中的说明创建的服务角色,则请注意以下事项:

    在一些版本的 AWS CloudFormation 模板中,生成并附加到 Amazon EC2 实例的 IAM 实例配置文件的显示名称与 IAM 控制台中的显示名称不相同。例如,IAM 实例配置文件的显示名称可能为 CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX,而 IAM 控制台中的 IAM 实例配置文件的显示名称可能为 CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX

    为帮助您标识 IAM 控制台中的实例配置文件,您会看到二者的前缀 CodeDeploySampleStack-expnyi6-InstanceRole 是相同的。有关这些显示名称可能不同的原因的信息,请参阅实例配置文件

  4. 选择 Trust Relationships 选项卡。如果可信任的实体中没有显示 The identity provider(s) ec2.amazonaws.com 的条目,则您无法使用此 Amazon EC2 实例。使用使用适用于 AWS CodeDeploy 的实例中的信息停止并创建 Amazon EC2 实例。

    如果有显示 The identity provider(s) ec2.amazonaws.com 的条目,并且您只需要将应用程序存储在 GitHub 存储库中,请向前跳到 步骤 3:标记 Amazon EC2 实例

    如果有显示 The identity provider(s) ec2.amazonaws.com 的条目,并且您会将应用程序存储在 Amazon S3 存储桶中,请选择权限选项卡。

  5. 如果 Managed Policies 区域中有一个策略,则选择该策略的名称,然后选择 Edit。如果 Inline Policies 中有一个策略,则在 Actions 下选择 Edit Policy

  6. 如果您将应用程序存储在 Amazon S3 存储桶中,请在 Policy Document 框中,确保 "s3:Get*""s3:List*" 位于指定操作列表中。

    它可能如下所示:

    {"Statement":[{"Resource":"*","Action":[ ... Some actions may already be listed here ... "s3:Get*","s3:List*" ... Some more actions may already be listed here ... ],"Effect":"Allow"}]}

    也可能如下所示:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ ... Some actions may already be listed here ... "s3:Get*", "s3:List*" ... Some more actions may already be listed here ... ], ... } ] }

    如果 "s3:Get*""s3:List*" 不在指定操作列表中,请选择 Edit 添加它们,然后选择 Save。(如果 "s3:Get*""s3:List*" 都不是列表中的最后一个操作,请确保在操作后添加逗号,以便策略文档将进行验证。)

    注意

    We recommend that you restrict this policy to only those Amazon S3 buckets your Amazon EC2 instances must access. Make sure to give access to the Amazon S3 buckets that contain the AWS CodeDeploy agent. Otherwise, an error may occur when the AWS CodeDeploy agent is installed or updated on the instances. For example:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws-cn:-cn:s3:::codedeploydemobucket/*", "arn:aws-cn:-cn:s3:::aws-codedeploy-cn-north-1/*", "arn:aws-cn:-cn:s3:::aws-codedeploy-cn-northwest-1/* ] } ] }

步骤 3:标记 Amazon EC2 实例

有关如何标记 Amazon EC2 实例以便 AWS CodeDeploy 可以在部署期间找到它的说明,请参阅在控制台中使用标签,然后返回到此页。

注意

您可以使用任何所需的密钥和值标记 Amazon EC2 实例。只需确保在部署到此实例时指定此密钥和值即可。

步骤 4:在 Amazon EC2 实例上安装 AWS CodeDeploy 代理

有关如何在 Amazon EC2 实例上安装 AWS CodeDeploy 代理并验证其是否运行的说明,请参阅管理 AWS CodeDeploy 代理操作,然后继续使用 AWS CodeDeploy 创建应用程序