我正在尝试将策略添加到 Amazon SQS 队列。该策略允许 SNS 主题将消息发送到 SQS 队列。当我将策略应用到 SQS 控制台时,它运行得很好。但是,当我尝试通过 iOS SDK 添加相同的策略时,SDK 返回一个错误,指出“此 wsdl 版本不存在指定的队列。Code=AWS.SimpleQueueService.NonExistentQueue” 任何帮助将不胜感激。 以下是我尝试应用的代码和策略。
let request = AWSSQSSetQueueAttributesRequest();
request.attributes = ["Policy":self.Policy(User.queue_arn, topicARN:User.topic_arn)]
AWSSQS.defaultSQS().setQueueAttributes(request, completionHandler: { (error:NSError?) -> Void in
if error == nil
{
RegisterationManager.DefaultManager().SetStatus(RegisterationStatus.DYNAMODB_PENDINIG)
self.FinalizeDynamoDB()
}
else
{
print(error)
self.ShowLoggerView("Unknown Error !", error:error)
}
})
//策略
{
"Version": "2012-10-17",
"Id": "SNStoSQS",
"Statement":
{
"Sid":"rule1",
"Effect": "Allow",
"Principal": "*",
"Action": "sqs:*",
"Resource": "queue-arn-here",
"Condition" : {
"ArnEquals" : {
"aws:SourceArn":"topic-arn-here"
}
}
}
}
最佳答案
我的错误,我没有在请求中指定队列 URL。 代码应如下所示。
let request = AWSSQSSetQueueAttributesRequest();
request.queueUrl = "your queue url"
request.attributes = ["Policy":self.Policy(User.queue_arn, topicARN:User.topic_arn)]
关于ios - Amazon SQS/SNS 策略错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35403057/