本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon S3 源操作参考
当新对象上传到配置的存储桶和对象密钥时,源操作会触发管道。
本参考主题介绍了 Amazon S3 源操作, CodePipeline 其中源位置是为版本控制配置的 Amazon S3 存储桶。有关中 Amazon S3 部署操作的参考信息 CodePipeline,请参阅Amazon S3 部署操作参考。
在连接管道之前,请创建 Amazon S3 源存储桶,启用版本控制,然后将源文件作为单个 ZIP 文件上传。
您可以在 Amazon S3 中创建新的存储桶,也可以选择现有的 Amazon S3 存储桶作为应用程序文件的源位置。有关启用版本控制的更多信息,请参阅 Amazon S3 用户指南中的使用版本控制。
当 Amazon S3 是您的管道的源提供商时,您可以将源文件或文件压缩为单个.zip,然后将.zip 上传到源存储桶。您也可以上传单个解压缩的文件;但是,期望有.zip 文件的下游操作将失败。
如果您使用控制台创建或编辑管道,则 CodePipeline 会创建一个 EventBridge 规则,在 Amazon S3 源存储桶发生更改时启动您的管道。
您也可以使用输入转换条目创建源重写,以便revisionValue在 EventBridge 管道事件中使用 in,其中派生自对象密钥、提交或图像 ID 的源事件变量。revisionValue有关更多信息,请参阅下方程序中包含的输入转换条目的可选步骤连接到启用事件源的 Amazon S3 源操作。
操作类型
-
类别:
Source -
拥有者:
AWS -
提供方:
S3 -
版本:
1
配置参数
- S3Bucket
-
是否必需:是
要在其中检测源更改的 Amazon S3 桶的名称。
- S3ObjectKey
-
是否必需:是
要在其中检测源更改的 Amazon S3 对象键的名称。
- AllowOverrideForS3ObjectKey
-
必需:否
AllowOverrideForS3ObjectKey控制StartPipelineExecution的源覆盖是否可以覆盖源操作中已配置的S3ObjectKey。有关使用 S3 对象键进行源覆盖的更多信息,请参阅使用源修订覆盖启动管道。重要
如果省略
AllowOverrideForS3ObjectKey,则 CodePipeline 默认能够通过将此参数设置为, ObjectKey 在源操作中覆盖 S3。false此参数的有效值:
-
true:如果设置了此项,则在管道执行过程中,可以通过源修订覆盖来覆盖预配置的 S3 对象键。注意
如果您打算允许所有 CodePipeline 用户在开始新的管道执行时覆盖预配置的 S3 对象密钥,则必须
AllowOverrideForS3ObjectKey将true设置为。 -
false:如果已设置, CodePipeline 则不允许使用源修订版本覆盖覆盖 S3 对象密钥。这也是此参数的默认值。
-
- PollForSourceChanges
-
必需:否
PollForSourceChanges控制是否对 Amazon S3 源存储桶进行 CodePipeline 轮询以了解源代码更改。我们建议您改用 “ CloudWatch 事件” 和 CloudTrail “检测源更改”。有关配置 CloudWatch 事件的更多信息,请参阅使用 S3 源和跟 CloudTrail 踪 (CLI) 迁移轮询管道或使用 S3 源和 CloudTrail 跟踪(CloudFormation 模板)迁移轮询管道。重要
如果要配置 CloudWatch 事件,则必须将设置为
PollForSourceChangesfalse以避免重复的管道执行。此参数的有效值:
-
true: 如果已设置,则会对您的来源位置进行 CodePipeline 轮询以了解源位置是否有更改。注意
如果省略
PollForSourceChanges,则 CodePipeline 默认为对源位置进行轮询以查看源更改。如果包括PollForSourceChanges并将其设置为true,则此行为相同。 -
false: 如果已设置,则 CodePipeline 不对源位置进行轮询以了解源位置是否有更改。如果您打算配置 CloudWatch 事件规则以检测源更改,请使用此设置。
-
输入构件
-
构件数:
0 -
描述:输入构件不适用于此操作类型。
输出构件
-
构件数:
1 -
描述:提供在源存储桶中配置为连接到管道的可用构件。从桶中生成的构件是 Amazon S3 操作的输出构件。Amazon S3 对象元数据(ETag 和版本 ID)显示为触发管道执行的源修订版。 CodePipeline
输出变量
配置后,此操作会生成变量,该变量可由管道中下游操作的操作配置引用。此操作生成的变量可视为输出变量,即使操作没有命名空间也是如此。您可以使用命名空间配置操作,以使这些变量可用于下游操作的配置。
有关中变量的更多信息 CodePipeline,请参阅变量参考。
- BucketName
-
与触发管道的源更改相关的 Amazon S3 存储桶的名称。
- ETag
-
与触发管道的源更改相关的对象的实体标签。ETag 是该对象的 MD5 哈希值。ETag 仅反映对象内容的更改,而不是其元数据的更改。
- ObjectKey
-
与触发管道的源更改相关的 Amazon S3 对象键的名称。
- VersionId
-
与触发管道的源更改相关的对象版本的版本 ID。
服务角色权限:S3 源操作
对于 S3 源操作支持,将以下内容添加到策略语句中:
操作声明
另请参阅
下列相关资源在您使用此操作的过程中会有所帮助。
-
教程:创建一个简单的管道(S3 存储桶)— 本教程提供了示例应用程序规范文件以及示例 CodeDeploy应用程序和部署组。使用本教程可创建具有 Amazon S3 源的管道,用于向 Amazon EC2 实例进行部署。