将对于 CodeDeploy 的修订推送到 Amazon S3(仅限 EC2/ 本地部署) - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

将对于 CodeDeploy 的修订推送到 Amazon S3(仅限 EC2/ 本地部署)

规划修订后,如规划 CodeDeploy 的修订版并将 AppSpec 文件添加到修订版中,如将应用程序规范文件添加到 CodeDeploy 的修订版,您已准备好捆绑组件文件并将修订推送到 Amazon S3。对于向 Amazon EC2 实例中进行的部署,在您推送修订后,可以使用 CodeDeploy 将修订从 Amazon S3 部署到实例。

注意

CodeDeploy 还可用于将已推送的修订部署到 GitHub。有关更多信息,请参阅 GitHub 文档。

我们假定您已遵循 开始使用 CodeDeploy中的说明来设置 Amazon CLI。这对于调用稍后描述的 push 命令来说特别重要。

请确保您拥有 Amazon S3 存储桶。按照中的说明进行操作创建存储桶

如果要部署到 Amazon EC2 实例,则必须创建目标 Amazon S3 存储桶或者它必须存在于目标实例所在的区域中。例如,如果您要将修订部署到美国东部(弗吉尼亚北部)区域中的某些实例,并将其他实例部署到美国西部(俄勒冈)区域中,则必须有一个带修订的一个副本的存储桶,并且其他存储桶位于美国西部(俄勒冈)区域和另一个带另一个带另一个带另一个带另一个带另一个带另一个带另一个带另一个存储桶。同一修订版的副本。在此方案中,您随后需要分别在美国东部(弗吉尼亚北部)区域和美国西部(俄勒冈)区域各创建一个单独的部署,即使两个区域和存储桶中的修订相同也是如此。

您必须具有上传到 Amazon S3 存储桶的权限。您可以通过 Amazon S3 存储桶策略指定这些权限。例如,在以下 Amazon S3 存储桶策略中,使用通配符 (*) 允许Amazon账户111122223333将文件上传到 Amazon S3 存储桶中名为的任何目录codedeploydemobucket

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ] }

查看您的Amazon账户 ID,请参阅查找Amazon账户 ID

要了解如何生成和附加 Amazon S3 存储桶策略,请参阅存储桶策略示例

调用push命令必须至少具有将修订上传到每个目标 Amazon S3 存储桶的权限。例如,以下策略允许 IAM 用户将修订上传到名为的 Amazon S3 存储桶中的任意位置。codedeploydemobucket

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::codedeploydemobucket/*" } ] }

要了解如何创建和附加 IAM 策略,请参阅使用策略

推送修订版本使用Amazon CLI

注意

这些区域有:push命令会将应用程序项目和 AppSpec 文件绑定到修订中。此修订的文件格式是压缩的 ZIP 文件。该命令不能与AmazonLambda 或 Amazon ECS 部署,因为这两种部署需要作为 JSON 格式或 YAML 格式的 AppSpec 文件的修订。

调用 push 命令以便为部署绑定和推送修订。它的参数包括:

  • --application-name:(字符串)必需。要应用程序修订关联的 CodeDeploy 应用程序的名称。

  • --s3-location:(字符串)必需。要上传到 Amazon S3 的应用程序修订的位置的相关信息。您必须指定一个 Amazon S3 存储桶和一个键。该键是修订的名称。CodeDeploy 会在上传内容之前压缩内容。采用格式 s3://your-S3-bucket-name/your-key.zip

  • --ignore-hidden-files--no-ignore-hidden-files:(布尔值)可选。使用--no-ignore-hidden-files标志(默认值)会将隐藏文件绑定和上传到 Amazon S3。使用--ignore-hidden-files标志不会将隐藏文件绑定和上传到 Amazon S3。

  • --source(字符串)可选。要部署的内容的位置,以及要压缩并上传到 Amazon S3 的开发计算机上的 AppSpec 文件。该位置被指定为相对于当前目录的路径。如果未指定相对路径或者对路径使用了单个句点 (“.”),则使用当前目录。

  • --description(字符串)可选。用于概述应用程序修订的注释。如果未指定,默认字符串 “上传由Amazon CLI 'time' time 'UTC”,其中,“time (时间)” 是采用协调世界时 (UTC) 的当前系统时间。

您可以将Amazon CLI推送 Amazon EC2 部署的修订。示例推送命令如下所示:

在 Linux、macOS 或 Unix 中:

aws deploy push \ --application-name WordPress_App \ --description "This is a revision for the application WordPress_App" \ --ignore-hidden-files \ --s3-location s3://codedeploydemobucket/WordPressApp.zip \ --source .

在 Windows 中:

aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://codedeploydemobucket/WordPressApp.zip --source .

此命令执行以下操作:

  • 将已绑定的文件与名为 WordPress_App 的应用程序关联。

  • 将描述附加到修订。

  • 忽略隐藏文件。

  • 为修订 WordPressApp.zip 命名并将其推送到名为 codedeploydemobucket 的存储桶。

  • 将根目录中的所有文件绑定到修订。

在推送成功后,可以使用Amazon CLI或 CodeDeploy 控制台来部署 Amazon S3 中的修订版本。使用 Amazon CLI 部署此修订:

在 Linux、macOS 或 Unix 中:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name your-deployment-config-name \ --deployment-group-name your-deployment-group-name \ --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

在 Windows 中:

aws deploy create-deployment --application-name WordPress_App --deployment-config-name your-deployment-config-name --deployment-group-name your-deployment-group-name --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

有关更多信息,请参阅使用 CodeDeploy 创建部署