2016-02-15 2 views
0

J'essaie d'ajouter une stratégie à la file d'attente Amazon SQS. La stratégie permet à la rubrique SNS d'envoyer des messages à la file d'attente SQS. Lorsque j'applique la stratégie à la console SQS, cela fonctionne parfaitement. Mais lorsque j'essaie d'ajouter la même stratégie via iOS SDK, le SDK renvoie une erreur en disant "La file d'attente spécifiée n'existe pas pour cette version de wsdl." Code = AWS.SimpleQueueService.NonExistentQueue " Toute aide sera appréciée. Voici le code et la politique que j'essaie d'appliquer.Erreur de stratégie 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) 
        } 
       }) 

// Politique

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

Répondre

0

Mon erreur, je ne spécifiant l'URL de file d'attente dans la demande. Le code devrait ressembler à ceci.

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