ios - Amazon SQS/SNS 策略错误

标签 ios swift amazon-web-services amazon-sqs policy

我正在尝试将策略添加到 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/

相关文章:

objective-c - 为什么多线程在此实现中不起作用?

ios - 如何将 ActivityItem 添加到 UIActivityViewController 的上部事件栏?

xcode - UIImageView 中的空白区域

amazon-web-services - 如何将 CloudFormation 参数作为类型 : Number? 传递

git - 您如何处理 AWS CodePipelines 的配置文件?

iphone - FBWebDialogs presentRequestsDialogModallyWithSession 不工作?

ios - TableView 在顶部添加来自 firestore 的 newScore,即使它不是最高分

ios - 消除 UINavigationBar 和 UIVisualEffectView 之间独特的模糊边缘

javascript - 无需本地文件直接从浏览器上传字符串到s3

objective-c - 保存使用 NSCoder 编码的数据