Amazon SQS/SNS 策略错误

Posted

技术标签:

【中文标题】Amazon SQS/SNS 策略错误【英文标题】:Amazon SQS/SNS policy error 【发布时间】:2016-02-15 06:46:03 【问题描述】:

我正在尝试向 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"
        
        
        
        

【问题讨论】:

【参考方案1】:

我的错误,我没有在请求中指定队列 url。 代码应如下所示。

let request = AWSSQSSetQueueAttributesRequest();
request.queueUrl = "your queue url"
request.attributes = ["Policy":self.Policy(User.queue_arn, topicARN:User.topic_arn)]

【讨论】:

以上是关于Amazon SQS/SNS 策略错误的主要内容,如果未能解决你的问题,请参考以下文章

在Python中使用aws的sns和sqs

通过 Cloud Formation 创建 Amazon Elasticsearch Service 时出现 CloudWatch 资源访问策略错误

Amazon S3 存储桶策略引用

Amazon S3 - 尽管有 GetObject 限制,但返回 403 错误而不是 404

运行 Amazon S3 示例时出现 Amazon AWS 403 InvalidAccesskey 错误

Redshift 中的 DAU WAU MAU 错误:[Amazon](500310) 无效操作:由于内部错误,不支持此类关联子查询模式;