AWS EventBridge向SNS规则目标推送事件时能否设置MessageAttributes用于订阅过滤
答案
是可以的,你可以通过EventBridge自带的输入转换器功能,自定义配置发往SNS的MessageAttributes字段,满足订阅过滤的需求,不需要修改事件源的逻辑。
具体配置步骤
- 进入对应的EventBridge规则详情页,找到绑定的SNS目标,点击编辑
- 下拉找到「配置输入」模块,选择「输入转换器」选项
- 在「输入路径」框中定义你要提取的事件字段作为过滤属性,示例:
{ "eventSource": "$.source", "eventType": "$.detail-type", "customField": "$.detail.yourCustomField" }
- 在「模板」框中按照SNS的消息格式构造输出内容,示例:
{ "Message": <json>, "MessageAttributes": { "eventSource": { "DataType": "String", "StringValue": <eventSource> }, "eventType": { "DataType": "String", "StringValue": <eventType> }, "customField": { "DataType": "String", "StringValue": <customField> } } }
上面示例中<json>是占位符,代表传递完整的原始事件内容,你也可以根据需求自定义Message的内容结构。
注意事项
- 配置
MessageAttributes时的DataType要和你传入的属性值类型匹配,SNS订阅过滤器支持字符串、数字等常见类型的过滤 - 配置完成后可以触发一次测试事件,验证订阅过滤逻辑是否符合预期
内容的提问来源于stack exchange,提问作者user602525
相关产品推荐
相关产品推荐

