AWS CodeDeploy
User Guide (API Version 2014-10-06)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

为 AWS CodeDeploy 创建 Amazon EC2 实例 (AWS CloudFormation 模板)

您可使用 AWS CloudFormation 模板快速启动运行 Amazon Linux 或 Windows Server 的 Amazon EC2 实例。您可使用 AWS CLI、AWS CodeDeploy 控制台或 AWS API 通过模板启动实例。除了启动实例之外,模板还可用于:

  • 指示 AWS CloudFormation 为实例提供参与 AWS CodeDeploy 部署的权限。

  • 标记实例,以便 AWS CodeDeploy 可在部署过程中找到它。

  • 安装 AWS CodeDeploy 代理并在实例上运行它。

您无需使用 AWS CloudFormation 即可设置 Amazon EC2 实例。有关替代方法,请参阅使用实例

我们未为运行 Ubuntu Server 或 Red Hat Enterprise Linux (RHEL) 的 Amazon EC2 实例提供 AWS CloudFormation 模板。

重要

如果您使用 AWS CloudFormation 模板启动 Amazon EC2 实例,则调用的 IAM 用户必须具有对 AWS CloudFormation 以及 AWS CloudFormation 所依赖的 AWS 服务和操作的访问权限。如果您尚未执行步骤 1:预置 IAM 用户中的步骤来预置调用的 IAM 用户,则必须至少附加以下策略:

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "codedeploy:*", "ec2:*", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "*" } ] }

使用 AWS CloudFormation 模板启动 Amazon EC2 实例 (AWS CLI)

按照入门中的说明操作可安装和配置用于 AWS CodeDeploy 的 AWS CLI。

在调用 create-stack 命令之前,您必须具有 Amazon EC2 实例密钥对才能允许针对运行 Amazon Linux 的 Amazon EC2 实例的 SSH 访问或针对运行 Windows Server 的 Amazon EC2 实例的 RDP 访问。仅键入密钥对名称而不是密钥对文件扩展名。

要查找密钥对名称,请在以下位置打开 Amazon EC2 控制台:https://console.www.amazonaws.cn/ec2。在导航窗格中,在 Network & Security 下,选择 Key Pairs,然后记下列表中的密钥对名称。

要生成密钥对,请参阅使用 Amazon EC2 创建您的密钥对。请务必在 AWS General Reference区域和终端节点中列出的某个区域中创建密钥对。否则,您无法将实例密钥对与 AWS CodeDeploy 结合使用。

  1. 在调用 create-stack 命令时使用 AWS CloudFormation 模板。此堆栈将使用安装的 AWS CodeDeploy 代理启动新的 Amazon EC2 实例。

    要启动运行 Amazon Linux 的 Amazon EC2 实例,请执行以下命令:

    Copy
    aws cloudformation create-stack \ --stack-name CodeDeployDemoStack \ --template-url templateURL \ --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro \ ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Linux \ ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name \ ParameterKey=TagValue,ParameterValue=CodeDeployDemo \ --capabilities CAPABILITY_IAM

    要启动运行 Windows Server 的 Amazon EC2 实例,请执行以下命令:

    Copy
    aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url template-url --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name ParameterKey=TagValue,ParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM

    templateURL 为下列项之一:

    • http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国东部(弗吉尼亚北部) region)

    • http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国东部(俄亥俄州) region)

    • http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国西部(加利福尼亚北部) region)

    • http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国西部(俄勒冈) region)

    • http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 加拿大 (中部) region)

    • http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 欧洲(爱尔兰) region)

    • http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 欧洲 (伦敦) region)

    • http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 欧洲(法兰克福) region)

    • http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(东京) region)

    • http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(首尔) region)

    • http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(新加坡) region)

    • http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(悉尼) region)

    • http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太地区(孟买) region)

    • http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 南美洲(圣保罗) region)

    • https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 中国(北京) region)

    此命令使用 AWS CloudFormation 模板在指定的 Amazon S3 存储桶中创建一个名为 CodeDeployDemoStack 的 AWS CloudFormation 堆栈。虽然 Amazon EC2 实例基于 t1.micro 实例类型,但您可使用任何类型。虽然它是使用值 CodeDeployDemo 标记的,但您可使用任何值标记它。它已应用指定的实例密钥对。

  2. 调用 describe-stacks 命令可验证是否已成功创建名为 CodeDeployDemoStack 的 AWS CloudFormation 堆栈:

    Copy
    aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text

    在返回 CREATE_COMPLETE 值之前,不要继续。

要验证 AWS CodeDeploy 代理是否正在 Amazon EC2 实例上运行,请参阅管理 AWS CodeDeploy 代理操作,然后继续创建应用程序

使用 AWS CloudFormation 模板启动 Amazon EC2 实例(控制台)

在开始之前,您必须具有实例密钥对才能允许针对运行 Amazon Linux 的 Amazon EC2 实例的 SSH 访问或针对运行 Windows Server 的实例的 RDP 访问。仅键入密钥对名称而不是密钥对文件扩展名。

要查找密钥对名称,请在以下位置打开 Amazon EC2 控制台:https://console.www.amazonaws.cn/ec2。在导航窗格中,在 Network & Security 下,选择 Key Pairs,然后记下列表中的密钥对名称。

要生成新的密钥对,请参阅使用 Amazon EC2 创建您的密钥对。请确保在 AWS General Reference区域和终端节点中列出的某个区域中创建密钥对。否则,您无法将实例密钥对与 AWS CodeDeploy 结合使用。

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

    重要

    使用您在入门中使用的同一账户登录 AWS 管理控制台。在导航栏上的区域选择器中,选择 AWS General Reference区域和终端节点中列出的某个区域。AWS CodeDeploy 仅支持这些区域。

  2. 选择 Create Stack

  3. Choose a template 中,选择 Specify an Amazon S3 template URL。在此框中,键入以下任一项,然后选择 Next

    • http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国东部(弗吉尼亚北部) region)

    • http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国东部(俄亥俄州) region)

    • http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国西部(加利福尼亚北部) region)

    • http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 美国西部(俄勒冈) region)

    • http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 加拿大 (中部) region)

    • http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 欧洲(爱尔兰) region)

    • http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 欧洲 (伦敦) region)

    • http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 欧洲(法兰克福) region)

    • http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(东京) region)

    • http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(首尔) region)

    • http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(新加坡) region)

    • http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太区域(悉尼) region)

    • http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 亚太地区(孟买) region)

    • http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 南美洲(圣保罗) region)

    • https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/templates/latest/CodeDeploy_SampleCF_Template.json (for the 中国(北京) region)

  4. Stack name 框中,键入堆栈的名称 (例如,CodeDeployDemoStack)。

  5. Parameters 中,键入以下内容,然后选择 Next

    • 对于 InstanceCount,键入要启动的实例的数量。(建议您保留默认值 1。)

    • 对于 InstanceType,键入要启动的实例类型(或保留默认值 t1.micro)。

    • 对于 KeyPairName,键入实例密钥名称。

    • 对于 OperatingSystem 框,键入 Windows 以启动运行 Windows Server 的实例(或保留默认值 Linux)。

    • 对于 SSHLocation,键入要用于使用 SSH 或 RDP 连接到实例的 IP 地址范围(或保留默认值 0.0.0.0/0)。

      重要

      提供默认值 0.0.0.0/0 仅为演示之用。AWS CodeDeploy 不需要 Amazon EC2 实例具有对端口的无限制访问权限。作为最佳实践,建议您限制对 SSH(和 HTTP)端口的访问。

    • 对于 TagKey,键入 AWS CodeDeploy 将用于在部署过程中标识实例的实例标签密钥(或保留默认值 Name)。

    • 对于 TagValue,键入 AWS CodeDeploy 将用于在部署过程中标识实例的实例标签值(或保留默认值 CodeDeployDemo)。

  6. Options 页上,将选项框留空,然后选择 Next

    重要

    AWS CloudFormation 标签不同于 AWS CodeDeploy 标签。AWS CloudFormation 使用标签来简化对基础设施的管理。AWS CodeDeploy 使用标签来标识 Amazon EC2 实例。您已在 Specify Parameters 页上指定 AWS CodeDeploy 标签。

  7. Review 页上的 Capabilities 中,选中 I acknowledge that AWS CloudFormation might create IAM resources 框,然后选择 Create

    在 AWS CloudFormation 创建堆栈并启动 Amazon EC2 实例之后,在 AWS CloudFormation 控制台中,CREATE_COMPLETE 将显示在 Status 列中。此过程可能耗时数分钟。

要验证 AWS CodeDeploy 代理是否正在 Amazon EC2 实例上运行,请参阅管理 AWS CodeDeploy 代理操作,然后继续创建应用程序