2017-07-05 2 views
0

J'essaie de faire (ce qui devrait être) une tâche simple.Configuration de S3 pour publier des notifications sur SQS lorsqu'un nouvel élément est créé

  • Créer un seau S3
  • Créer une file d'attente SQS
  • Demandez le seau S3 mis un message dans la file d'attente SQS chaque fois qu'un nouvel élément est ajouté.

Je suis coincé sur la fixation des deux. J'ai créé la file d'attente et cela fonctionne bien. J'ai créé le seau, et cela fonctionne bien.

Maintenant j'essaye d'ajouter une politique à la file d'attente qui laissera le compartiment envoyer des notifications.

Suivre ce guide:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html

Je suis en train d'appeler cette méthode:

public SetQueueAttributesResponse SetQueueAttributes(Dictionary<string, string> attributes) 
    { 
     var setQueueAttributesRequest = new SetQueueAttributesRequest() 
     { 
      QueueUrl = QueueUri.ToString(), 
      Attributes = attributes 
     }; 

     return SqsClient.SetQueueAttributes(setQueueAttributesRequest); 
    } 

Et la propriété des attributs a une seule paire clé/valeur:

Policy 

{ 
"Version" : "7/5/2017", 
"Id"  : "S3-Post", 
"Statement" : [ 
    { 
     "Sid" : "S3-Post", 
     "Effect" : "Allow", 
     "Principal" : { 
      "AWS" : "*" 
     }, 
     "Action" : [ 
      "sqs:SendMessage", 
      "sqs:GetQueueUrl" 
     ], 
     "Resource" : "arn:aws:sqs:us-west-2:[REDACTED]:testqueue2", 
     "Condition" : { 
      "ArnLike" : { 
       "aws:SourceArn" : "arn:aws:s3:*:*:*" 
      } 
     } 
    } 
] 

}

(Oui, j'élargi l'état du filtre un peu, mais nous avons eu ce même échec avec un nom de seau établi.)

Je reçois cette exception:

Amazon.SQS.AmazonSQSException était non gérée

ErrorCode = InvalidAttributeValue

HResult = -2146233088

message = valeur non valide pour le paramètre politique.

RequestId = 0ac6201a-17f5-5b63-a5ac-71cd42b10481

Source = AWSSDK.Core

Quelqu'un peut-il voir mon erreur, ou quelqu'un peut me montrer un exemple plus fonctionnel?

Répondre

1

Version fait référence à la version du langage de stratégie IAM utilisée, et non à une révision de votre stratégie. Il n'y a qu'une valeur à utiliser: "2012-10-17".

http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Version

+1

Gad, j'ai raté ça. Je l'ai tourné avec autre chose. Le changement a fait fonctionner le premier essai. Merci beaucoup! Mon pot de café peut prendre la nuit, maintenant! –