2017-06-11 1 views
0

J'ai un petit problème à recevoir plus de 1 message/ligne de ma file d'attente au AWS SQS.Comment recevoir plus d'un message d'une file d'attente SQS dans AWS?

Voici mon code:

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)) 

Toute aide serait très apprécié pourquoi. Merci!

+2

NE PAS POSTULER DE POUVOIRS SUR STACKOVERFLOW! Veuillez immédiatement supprimer cet utilisateur et vérifier que votre compte n'a pas été compromis. –

+0

Ok Je vais garder ça à l'esprit pour la prochaine fois même si je ne fais que jouer avec ce système: P – raxor

+0

Peu importe que vous jouiez simplement. Quelqu'un pourrait prendre ces informations d'identification et créer beaucoup de serveurs sur votre compte et vous obtiendriez une facture AWS massive. –

Répondre

2

La fonction receive_messages() prend un paramètre MaxNumberOfMessages dont la valeur par défaut est 1 message. Par conséquent, vous devrez demander plus de messages.

Cependant, les receive_messages() documentation états:

MaxNumberOfMessages (entier) - Le nombre maximum de messages à revenir. Amazon SQS ne renvoie jamais plus de messages que cette valeur (cependant, moins de messages peuvent être retournés). Les valeurs valides sont comprises entre 1 et 10. La valeur par défaut est 1.

Par conséquent, il se peut que vous ne receviez pas la quantité totale de messages pour chaque appel.