本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon S3 来源创建 EventBridge 规则(Amazon CloudFormation 模板)
Amazon CloudFormation 要使用创建规则,请更新您的模板,如下所示。
创建以 Amazon S3 作为事件源和 CodePipeline 目标的 EventBridge 规则并应用权限策略
-
在模板下的模板中
Resources
,使用AWS::IAM::Role
Amazon CloudFormation 资源配置允许您的活动启动管道的IAM角色。此条目将创建一个使用两个策略的角色:-
第一个策略允许代入角色。
-
第二个策略提供启动管道所需的权限。
我为何做出此更改? 添加
AWS::IAM::Role
资源可以 Amazon CloudFormation 为创建权限 EventBridge。此资源已添加到您的 Amazon CloudFormation 堆栈中。 -
-
使用
AWS::Events::Rule
Amazon CloudFormation 资源添加 EventBridge 规则。此事件模式会创建一个事件,以监控 Amazon S3 源桶上的CopyObject
、PutObject
和CompleteMultipartUpload
。此外,还包括您管道的目标。当发生CopyObject
、PutObject
或CompleteMultipartUpload
时,此规则将对目标管道调用StartPipelineExecution
。我为何做出此更改? 添加
AWS::Events::Rule
资源 Amazon CloudFormation 即可创建事件。此资源已添加到您的 Amazon CloudFormation 堆栈中。 -
将此代码段添加到第一个模板,以允许跨堆栈功能:
-
将更新后的模板保存到本地计算机上,然后打开 Amazon CloudFormation 控制台。
选择堆栈,然后选择为当前堆栈创建更改集。
上传更新的模板,然后查看 Amazon CloudFormation中所列的更改。以下是将对堆栈进行的更改。您应在列表中看到新资源。
选择执行。
编辑管道的 PollForSourceChanges参数
重要
使用此方法创建管道时,如果 PollForSourceChanges
参数未明确设置为 false,则默认为 true。添加基于事件的更改检测时,必须将参数添加到输出并将其设置为 false 以禁用轮询。否则,您的管道将针对单个源更改启动两次。有关详细信息,请参阅PollForSourceChanges参数的有效设置。
-
在模板中,将
PollForSourceChanges
更改为false
。如果您未在管道定义中包含PollForSourceChanges
,请添加它并将它设置为false
。我为何做出此更改? 将
PollForSourceChanges
更改为false
将关闭定期检查,因此您只能使用基于事件的更改检测。
为您的 Amazon S3 管道的 CloudTrail 资源创建第二个模板
-
在单独的模板中
Resources
,使用AWS::S3::Bucket
AWS::S3::BucketPolicy
、和AWS::CloudTrail::Trail
Amazon CloudFormation 资源为其提供简单的存储桶定义和跟踪 CloudTrail。我为何做出此更改? 鉴于当前每个账户只能有五条 CloudTrail 跟踪,因此必须单独创建和管理跟踪。(参见中的限制 Amazon CloudTrail。) 但是,您可以在单个跟踪上包括许多 Amazon S3 桶,因此您可以创建跟踪一次,然后根据需要为其他管道添加 Amazon S3 桶。将以下内容粘贴到第二个示例模板文件中。