2015-08-25 25 views
9

AWS SQS hizmetini kullanıyorum ve SQS kuyruğumda izinleri tanımlamakta zorlanıyorum. Benim kurulumda bir nesne bir S3 kovası üzerine itildiğinde tetiklenen AWS Lambda servisini kullanıyorum.AWS SQS izinleri Lambda

Ancak bu ı elde etmek istediğim şey, kısaca sorumu tutmak için:

  1. Nesne
  2. S3 kova AWS Lambda'ya tetikleyen bir S3 kova itilir
  3. Lambda bazı hesaplamalar ve push yapar benim SQS kuyruğuna bir olay yapabilirsiniz gibi
  4. Uygulama SQS'in

okur (İzin tanımlanması gerekir) Önceki kullanım durumundan okuduğumda, AWS Lambda yöntemimin SQS sırasına mesaj gönderebilen tek uygulama olmasını istiyorum. Bir müdür ve "sourceArn" koşulu ayarlamaya çalıştım. Ama bunların hiçbiri işe ..

enter image description here

Herkes yardımcı olabilir?

cevap

6

SourceArn alanın Lambda tarafından doldurulduğunu düşünmüyorum. SourceArn'ın SNS için çalıştığını biliyorum, ama Lambda gerçekten de keyfi kod çalıştırıyor, SNS gibi bir AWS özelliği değil.

Alternatif olarak, Lambda işlevinizin olduğu gibi IAM Rolüne bir ilke ekleyebilirsiniz.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1440529349000", 
      "Effect": "Allow", 
      "Action": [ 
       "sqs:SendMessage" 
      ], 
      "Resource": [ 
       "arn:aws:sqs:us-west-2:123456789012:test-queue" 
      ] 
     } 
    ] 
} 

Bu yöntem, sıraya doğrudan bağlı bir ilke gerektirmez.