Har*_*els 5 amazon-web-services serverless-architecture serverless amazon-cloudwatch-events
我想在 Eventbridge 中部署一个由所有事件触发的 AWS 事件规则,没有任何过滤。
我尝试了以下模式但没有运气。
{
source: ["*"]
}
Run Code Online (Sandbox Code Playgroud)
根据文档,您不能将模式留空。此外,模式中未包含的任何字段都是通配符,这意味着它们可以是任何值。
我读过一些文章说 Eventbridge 可以取代 SNS 和 SQS 等服务,但没有这些更精细的控制,我看不到这种情况发生。
谢谢
Mar*_*cin 11
根据评论。
该解决方案是使用空前缀匹配的所有事件:
{
"source": [{"prefix": "" }]
}
Run Code Online (Sandbox Code Playgroud)
小智 6
对于 TypeScript 中的 CDK,您可以使用以下命令提供匹配模式as any[]
:
import * as cdk from 'aws-cdk-lib';
const catchAllRule = new cdk.aws_events.Rule(stack, 'CatchAllRule', {
targets: [...],
eventBus: ...,
eventPattern: {
source: [ { prefix: ''} ] as any[]
}
});
Run Code Online (Sandbox Code Playgroud)
生成此 CloudFormation:
EventId:
Type: AWS::Events::Rule
Properties:
EventBusName:
Ref: ...
EventPattern:
source:
- prefix: ""
State: ENABLED
Run Code Online (Sandbox Code Playgroud)
这适用于 TypeScript。在其他语言中,您可能必须使用逃生舱口并覆盖该属性。
参考:
相关问题:
归档时间: |
|
查看次数: |
2585 次 |
最近记录: |