2017-06-11 13 views
0

AWS SQSのキューから1つ以上のメッセージ/回線を受信するのに少し問題があります。AWSのSQSキューから複数のメッセージを受信するにはどうすればよいですか?

import boto3 
import boto 

AWS_ACCESS_KEY = 'AKIAJ65AZZZZRIQSQWA' 
AWS_SECRET_ACCESS_KEY = 'xd+2ZfwIRj2yUuoLQNunMaFDdEJlzNzv' 

sqs = boto3.resource('sqs', aws_access_key_id=AWS_ACCESS_KEY, 
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY, 
    region_name='us-east-2' 
) 

queue_name = 'Messages.fifo' 
queue = sqs.get_queue_by_name(QueueName=queue_name) 
messages = queue.receive_messages() 


for message in messages: 
    print('Body: {0}'.format(message.body)) 

任意のヘルプははるか理由としていただければ幸いです。

は、ここに私のコードです。 ありがとう!

+2

STACKOVERFLOWにクレデンシャルを送信しないでください!すぐにそのユーザーを削除し、アカウントが侵害されていないことを確認してください。 –

+0

私はこのシステムで遊んでいても、次回はこのことを覚えておきます:P – raxor

+0

「ただ遊んでいる」ことは問題ではありません。誰かがこれらの資格情報を取得してアカウント上に多数のサーバーを作成すると、大規模なAWS請求書を取得することができます。 –

答えて

2

receive_messages()関数は、デフォルトで1メッセージになるMaxNumberOfMessagesパラメータをとります。したがって、より多くのメッセージを要求する必要があります。しかしながら

receive_messages() documentation状態:

MaxNumberOfMessages(整数) - 返されるメッセージの最大数。 Amazon SQSはこの値よりも多くのメッセージを返すことはありません(ただし、より少ないメッセージが返される可能性があります。)。有効な値は1〜10です。デフォルトは1です。

したがって、各通話ではメッセージの量がすべて不足することがあります。

関連する問題