我想在Eventbridge中部署一个AWS事件规则,该规则会被所有事件触发,不进行任何过滤。
我尝试了以下模式,但都没有成功。
{
source: ["*"]
}
根据文档,您不能将模式留空。此外,未包含在模式中的任何字段都被通配符覆盖,这意味着它们可以是任何值。
我已经阅读了一些文章,称Eventbridge可以替代SNS和SQS等服务,但如果没有这些更精细的控制,我认为这不可能发生。
谢谢
我想在Eventbridge中部署一个AWS事件规则,该规则会被所有事件触发,不进行任何过滤。
我尝试了以下模式,但都没有成功。
{
source: ["*"]
}
根据文档,您不能将模式留空。此外,未包含在模式中的任何字段都被通配符覆盖,这意味着它们可以是任何值。
我已经阅读了一些文章,称Eventbridge可以替代SNS和SQS等服务,但如果没有这些更精细的控制,我认为这不可能发生。
谢谢
{"source": [{"prefix": ""}]}
- Sunny Patelresource
是string[]
。所以这不起作用,因为{prefix: string}
不能分配给类型字符串。 - chepukhaas any[]
提供匹配模式:import * as cdk from 'aws-cdk-lib';
const catchAllRule = new cdk.aws_events.Rule(stack, 'CatchAllRule', {
targets: [...],
eventBus: ...,
eventPattern: {
source: [ { prefix: ''} ] as any[]
}
});
EventId:
Type: AWS::Events::Rule
Properties:
EventBusName:
Ref: ...
EventPattern:
source:
- prefix: ""
State: ENABLED
我最喜欢的是{"version":["0"]}
exists
筛选器:https://docs.aws.amazon.com/eventbridge/latest/userguide/content-filtering-with-event-patterns.html#filtering-exists-matching。eventBusName
接收您帐户的所有事件,其ID为accountID
: - eventBridge:
eventBus: arn:aws:events:${aws:region}:${aws:accountId}:event-bus/eventBusName
pattern:
account: ["accountID"]
event_pattern=aws_events.EventPattern(
source=aws_events.Match.prefix(""), # Do not filter anything
)
这遵循了在此回答中解释的前缀
方法(https://dev59.com/FVIG5IYBdhLWcg3w419n#62407802)。