gpt4 book ai didi

json - 如何创建过滤多个源的 EventPattern(在 EventBridge 规则内)?

转载 作者:行者123 更新时间:2023-12-03 07:22:50 27 4
gpt4 key购买 nike

我目前正在使用 EventRuleEventPattern,允许多个源 - 例如 CloudFormation 片段:

EventRule:
Type: AWS::Events::Rule
Properties:
EventBusName: MyEventBus
Name: MyRuleName1
EventPattern:
source:
- eventSource1
- eventSource2
- eventSource3

但我现在需要过滤这 3 个事件源中的不同内容 - eventSource1eventSource2eventSource3 具有不同的架构。

我知道我可以使用detail来过滤是否只有一个source(或者它们都共享被过滤的架构的相同部分):

    EventPattern:
source:
- eventSource1
detail:
fieldToFilter1:
- 'yes'
fieldToFilter2:
- 'no'

但是如何对三个事件源中的每个不同字段执行上述操作呢?我知道我可以创建多个规则,但这似乎不是一个理想的解决方案(例如,需要注意使它们相互排斥)。

最佳答案

一条规则可以设置一种模式。有些资源确实允许其中一项或一系列内容,但在这种情况下,文档会说明这一点。现在您需要提供 json 而不是列表,因此您必须创建多个规则。

in your sample code you provided yaml instead json and it works cause yaml will be rendered to json but you were able to use json too, which in this case is often easier while you can copy json from aws console or some sample online.

enter image description here

添加模式为 json 的规则示例:

 GitCommitTrigger:
Type: AWS::Events::Rule
Properties:
Description: !Sub "Trigger build project '${BuildProjectName}' after git commit"
EventPattern: !Sub
- |
{
"source": ["aws.codecommit"],
"detail-type": ["CodeCommit Repository State Change"],
"resources": ["${CodeCommitRepoArn}"],
"detail": {
"event": ["referenceCreated", "referenceUpdated"],
"referenceType": ["branch"],
"referenceName": ["${GitBranchName}"]
}
}
- CodeCommitRepoArn: !Ref CodeCommitRepoArn
GitBranchName: !Ref GitBranchName
Name: !Sub "codebuild_${BuildProjectName}"
RoleArn: !GetAtt GitCommitTriggerRole.Arn
State: ENABLED
Targets:
- Arn: !GetAtt CodeBuild.Arn
Id: CodeBuild-1
RoleArn: !GetAtt GitCommitTriggerRole.Arn

关于json - 如何创建过滤多个源的 EventPattern(在 EventBridge 规则内)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70877721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com