2016-02-15 4 views
0

Я пытаюсь добавить политику в очередь SQS Amazon. Эта политика позволяет теме SNS отправлять сообщения в очередь SQS. Когда я применяю политику до консоли SQS, она работает отлично. Но когда я пытаюсь добавить ту же политику через SDK iOS, SDK возвращает ошибку, говорящую о «Указанная очередь не существует для этой версии wsdl. Код = AWS.SimpleQueueService.NonExistentQueue« Любая помощь будет оценена. Ниже приведены код и политика, которые я пытаюсь применить.Ошибка политики Amazon SQS/SNS

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" 
     } 
     } 
     } 
     } 

ответ

0

Моя ошибка, я не указав URL очереди в запросе. Код должен выглядеть следующим образом.

let request = AWSSQSSetQueueAttributesRequest(); 
request.queueUrl = "your queue url" 
request.attributes = ["Policy":self.Policy(User.queue_arn, topicARN:User.topic_arn)] 
Смежные вопросы