如何在AWS Step Functions中配置带过滤策略的SNS消息推送?
在AWS Step Functions的ASL中配置SNS消息属性以匹配过滤策略
你已经在SQS订阅SNS Topic时配置了基于transaction_no的过滤策略,Step Functions这边只需要在发布SNS消息时携带对应的消息属性,SNS就会自动根据过滤策略把消息推送给符合条件的SQS队列。
以下是正确的ASL配置代码:
{ "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "TopicArn": "arn:aws:sns:us-west-2:111122223333:MySNSTopic", "Message": "{\"transaction_no\": \"12345\", \"message_body\": \"This is a test message.\"}", "Subject": "Test Message", "MessageAttributes": { "transaction_no": { "DataType": "String", "StringValue": "12345" } } }, "Next": "NextState" }
关键配置说明
MessageAttributes是核心字段,用来定义SNS消息的属性,这是过滤策略生效的依据DataType必须和你在SQS过滤策略中定义的类型一致(示例中为字符串类型)StringValue设置为需要匹配的transaction_no具体值,比如示例中的"12345"
额外注意
- 过滤策略本身是在SQS订阅SNS Topic时配置的,不需要在ASL中重复定义
- 只有当消息携带的
transaction_no属性值符合SQS订阅的过滤规则时,消息才会被推送到该SQS队列
内容的提问来源于stack exchange,提问作者Ananya Shukla
相关产品推荐
相关产品推荐

