10.8. SNS FIFO
支持 SNS FIFO。在创建 SQS 队列时,您将订阅 SNS 主题,需要记住,您需要让 SNS Topic 发送消息到 SQS Queue。
示例
假设您创建一个名为 Order.fifo 的 SNS FIFO 主题,以及一个名为 QueueSub.fifo 的 SQS Queue。
在 QueueSub.fifo 的访问策略中,您应该提交如下内容:
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::780560123482:root"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:eu-west-1:780560123482:QueueSub.fifo"
},
{
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "SQS:SendMessage",
"Resource": "arn:aws:sqs:eu-west-1:780560123482:QueueSub.fifo",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:sns:eu-west-1:780410022472:Order.fifo"
}
}
}
]
}
这是使订阅正常工作的关键步骤。
向 FIFO 主题发送一些时,您需要始终设置消息组 Id 策略。
如果 SNS Fifo 主题上启用了基于内容的消息 deduplication,则不需要设置消息 deduplication id 策略,否则您必须对其进行设置。