Amazon S3 源操作 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon S3 源操作

将新对象上传到配置的存储桶和对象键时触发管道。

注意

本参考主题介绍了 Amazon S3 源操作, CodePipeline 其中源位置是为版本控制配置的 Amazon S3 存储桶。有关中 Amazon S3 部署操作的参考信息 CodePipeline,请参阅Amazon S3 部署操作

您可以创建一个 Amazon S3 桶,用作应用程序文件的源位置。

注意

在您创建源存储桶时,请确保在存储桶上启用版本控制。如果您要使用现有 Amazon S3 桶,请参阅使用版本控制,以在现有的桶上启用版本控制。

如果您使用控制台创建或编辑管道,则 CodePipeline 会创建一个 CloudWatch 事件规则,该规则在 S3 源存储桶发生更改时启动您的管道。

您必须事先创建 Amazon S3 源桶并将源文件作为单个 ZIP 文件上传,然后才能通过 Amazon S3 操作连接管道。

注意

当 Amazon S3 是您的管道的源提供程序时,您可以将一个或多个源文件压缩到单个 .zip 文件中,然后将 .zip 文件上传到源桶。您也可以上传单个解压缩的文件;但是,需要 .zip 文件的下游操作将失败。

操作类型

  • 类别:Source

  • 拥有者:AWS

  • 提供方:S3

  • 版本:1

配置参数

S3Bucket

必需:是

要在其中检测源更改的 Amazon S3 桶的名称。

S3 ObjectKey

必需:是

要在其中检测源更改的 Amazon S3 对象键的名称。

AllowOverrideForS3 ObjectKey

必需:否

AllowOverrideForS3ObjectKey控制来自的源覆盖是否StartPipelineExecution可以覆盖源操作S3ObjectKey中已配置的。有关使用 S3 对象键替换源代码的更多信息,请参阅使用源修订覆盖启动管道

重要

如果省略AllowOverrideForS3ObjectKey,则 CodePipeline 默认能够通过将此参数设置为, ObjectKey 在源操作中覆盖 S3。false

此参数的有效值:

  • true: 如果已设置,则在管道执行期间,源版本覆盖可以覆盖预配置的 S3 对象密钥。

    注意

    如果您打算允许所有 CodePipeline 用户在开始新的管道执行时覆盖预先配置的 S3 对象密钥,则必须AllowOverrideForS3ObjectKeytrue设置为。

  • false:

    如果已设置, CodePipeline 则不允许使用源修订版本覆盖覆盖 S3 对象密钥。这也是此参数的默认值。

PollForSourceChanges

必需:否

PollForSourceChanges控制是否对 Amazon S3 源存储桶进行 CodePipeline 轮询以了解源代码更改。我们建议您改用 “ CloudWatch 事件” 和 CloudTrail “检测源更改”。有关配置 CloudWatch 事件的更多信息,请参阅使用 S3 源和跟 CloudTrail 踪 (CLI) 迁移轮询管道使用 S3 源和 CloudTrail 跟踪(Amazon CloudFormation 模板)迁移轮询管道

重要

如果要配置 CloudWatch 事件,则必须将设置为PollForSourceChangesfalse以避免重复的管道执行。

此参数的有效值:

  • true: 如果已设置,则会对您的来源位置进行 CodePipeline 轮询以了解源位置是否有更改。

    注意

    如果省略PollForSourceChanges,则 CodePipeline 默认为对源位置进行轮询以查看源更改。如果包括 PollForSourceChanges 并将其设置为 true,则此行为相同。

  • false: 如果已设置,则 CodePipeline 不对源位置进行轮询以了解源位置是否有更改。如果您打算配置 CloudWatch 事件规则以检测源更改,请使用此设置。

输入构件

  • 构件数:0

  • 描述:输入构件不适用于此操作类型。

输出构件

  • 构件数:1

  • 描述:提供在源存储桶中配置为连接到管道的可用构件。从桶中生成的构件是 Amazon S3 操作的输出构件。Amazon S3 对象元数据(ETag 和版本 ID)显示为触发管道执行的源修订版。 CodePipeline

输出变量

配置后,此操作会生成变量,该变量可由管道中下游操作的操作配置引用。此操作生成的变量可视为输出变量,即使操作没有命名空间也是如此。您可以使用命名空间配置操作,以使这些变量可用于下游操作的配置。

有关中变量的更多信息 CodePipeline,请参阅Variables

BucketName

与触发管道的源代码更改相关的 Amazon S3 存储桶的名称。

ETag

与触发管道的源更改相关的对象的实体标签。ETag 是该对象的 MD5 哈希值。ETag 仅反映对象内容的更改,而不是其元数据的更改。

ObjectKey

与触发管道的源更改相关的 Amazon S3 对象密钥的名称。

VersionId

与触发管道的源更改相关的对象版本的版本 ID。

操作声明

YAML
Name: Source Actions: - RunOrder: 1 OutputArtifacts: - Name: SourceArtifact ActionTypeId: Provider: S3 Owner: AWS Version: '1' Category: Source Region: us-west-2 Name: Source Configuration: S3Bucket: my-bucket-oregon S3ObjectKey: my-application.zip PollForSourceChanges: 'false' InputArtifacts: []
JSON
{ "Name": "Source", "Actions": [ { "RunOrder": 1, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "ActionTypeId": { "Provider": "S3", "Owner": "AWS", "Version": "1", "Category": "Source" }, "Region": "us-west-2", "Name": "Source", "Configuration": { "S3Bucket": "my-bucket-oregon", "S3ObjectKey": "my-application.zip", "PollForSourceChanges": "false" }, "InputArtifacts": [] } ] },

下列相关资源在您使用此操作的过程中会有所帮助。