为 CodeCommit 源创建 EventBridge 规则(CloudFormation 模板)
要使用 CloudFormation 创建规则,请按此处所示更新您的模板。
更新您的管道 CloudFormation 模板并创建 EventBridge 规则
-
在模板中,在
Resources下,使用AWS::IAM::RoleCloudFormation 资源配置将允许您的事件启动管道的 IAM 角色。此条目将创建一个使用两个策略的角色:-
第一个策略允许代入角色。
-
第二个策略提供启动管道所需的权限。
我为何做出此更改? 添加
AWS::IAM::Role资源将使 CloudFormation 能够为 EventBridge 创建权限。此资源将添加到您的 CloudFormation 堆栈。 -
-
在模板中,在
Resources下,使用AWS::Events::RuleCloudFormation 资源添加 EventBridge 规则。此事件模式会创建一个事件,以监控向存储库推送更改的操作。当 EventBridge 检测到存储库状态更改时,该规则会调用目标管道上的StartPipelineExecution。我为何做出此更改? 添加
AWS::Events::Rule资源将使 CloudFormation 能够创建事件。此资源将添加到您的 CloudFormation 堆栈。 -
(可选)要为特定映像 ID 配置具有源覆盖的输入转换器,请使用以下 YAML 片段:以下示例配置了覆盖,其中:
-
actionName,本示例中的Source,是在创建管道时定义的动态值,不是从源事件派生的。 -
revisionType,本示例中的COMMIT_ID,是在创建管道时定义的动态值,不是从源事件派生的。 -
revisionValue,本示例中的 <revisionValue>,是从源事件变量派生的。 -
BranchName和Value的输出变量已指定。
Rule: my-rule Targets: - Id: MyTargetId Arn: pipeline-ARN InputTransformer: sourceRevisions: actionName:SourcerevisionType:COMMIT_IDrevisionValue: <revisionValue> variables: - name:BranchNamevalue:value -
-
将更新后的模板保存到本地计算机,然后打开 CloudFormation 控制台。
-
选择堆栈,然后选择为当前堆栈创建更改集。
-
上传模板,然后查看 CloudFormation 中列出的更改。这些是要对堆栈进行的更改。您应在列表中看到新资源。
-
选择执行。
编辑您的管道的 PollForSourceChanges 参数
重要
许多情况下,当您创建管道时,PollForSourceChanges 参数默认为 true。添加基于事件的更改检测时,必须将参数添加到输出并将其设置为 false 以禁用轮询。否则,您的管道将针对单个源更改启动两次。有关更多信息,请参阅 PollForSourceChanges 参数的有效设置。
-
在模板中,将
PollForSourceChanges更改为false。如果您未在管道定义中包含PollForSourceChanges,请添加它并将它设置为false。我为何做出此更改? 将此参数更改为
false将关闭定期检查,因此您只能使用基于事件的更改检测。