SNS主题不发布到SQS

我正在尝试使用SNS和SQS来构建分布式应用程序的原型。我有这个主题:

arn:aws:sns:us-east-1:574008783416:us-east-1-live-auction

和这个队列:

arn:aws:sqs:us-east-1:574008783416:queue4

我使用JS Scratchpad创建了队列。 我使用控制台添加了订阅。 我使用暂存器将AddPermission添加到队列中。 队列策略现在是:

{  
   "Version":"2008-10-17",
   "Id":"arn:aws:sqs:us-east-1:574008783416:queue4/SQSDefaultPolicy",
   "Statement":[  
      {  
         "Sid":"RootPerms",
         "Effect":"Allow",
         "Principal":{  
            "AWS":"574008783416"
         },
         "Action":"SQS:*",
         "Resource":"arn:aws:sqs:us-east-1:574008783416:queue4"
      }
   ]
}

我在同一主题上订阅了电子邮件,电子邮件到达正常,但邮件从未到达队列中。 我已经尝试过SendMessage直接到队列 - 而不是通过SNS - 使用Scratchpad,它工作正常。 任何想法为什么它不会发送到队列?


这是在AWS论坛上发布的:https://forums.aws.amazon.com/thread.jspa?messageID=202798

然后我给了SNS主题发送消息到SQS队列的权限。 这里的诀窍是允许所有的校长。 SNS不会从您的账户ID发送 - 它有自己的账户ID。


以下是Skyler答案的完整CloudFormation示例

"MyQueue": {
  "Type": "AWS::SQS::Queue"
},
"QueuePolicy": {
  "Type": "AWS::SQS::QueuePolicy",
  "Properties": {
    "Queues": [
      {
        "Ref": "MyQueue"
      }
    ],
    "PolicyDocument": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "allow-sns-messages",
          "Effect": "Allow",
          "Principal": "*",
          "Action": "sqs:SendMessage",
          "Condition": {
            "ArnEquals": {
              "aws:SourceArn": {
                "Ref": "MyTopic"
              }
            }
          }
        }
      ]
    }
  }
}

Amazon在将Amazon SNS消息发送到Amazon SQS队列文档方面拥有更多选项。

链接地址: http://www.djcxy.com/p/32135.html

上一篇: SNS topic not publishing to SQS

下一篇: Value Error in tensorflow