[PYTHON] [aws] Envoyer et recevoir des messages sqs

Aperçu

Puisque j'ai eu l'opportunité d'utiliser SQS dans mon entreprise, je vais résumer la méthode de contrôle de fonctionnement que j'ai pratiquée à ce moment-là.

Qu'est-ce que SQS

SQS (Amazon Simple Queue Service) est une file d'attente de messages et est un service qui intervient dans la transmission et la réception des données. Il a presque la même fonction que le fameux Rabbit MQ en tant que courtier de messages.

Les avantages de l'utilisation de SQS sont: https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html

Créer une file d'attente

Avant de pouvoir envoyer ou recevoir des données, vous devez créer une file d'attente. Créez-le en suivant les étapes de la console AWS Services → sqs → Create Queue.

スクリーンショット 2020-10-31 11.11.50.png

Il y a «standard» et «FIFO» dans la file d'attente, mais cette fois, nous allons l'utiliser en standard car nous ne vérifions que l'opération.

Envoyer des données

La méthode de transmission de données est la suivante. Il est nécessaire de définir ʻaws configure` à l'avance.

import boto3
import json

que_name = 'test_que'
sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName=que_name)

def sqs_send_msg():

    msg = [{'Id': '1', 'MessageBody': json.dumps([{'result': "msg_1"}])}]
    response = queue.send_messages(Entries=msg)

    print(response)
    return response

sqs_send_msg()

Réception de données

Il est également possible de communiquer avec sqs en spécifiant l'url de sqs. Vous pouvez vérifier l'URL depuis l'écran de la console AWS.

import boto3
import json

sqs = boto3.client('sqs')
queue_url = "https://sqs.ap-northeast-1.amazonaws.com/xxxxxxxxxxxx/test_que"

def sqs_receive_msg():
    msg = sqs.receive_message(QueueUrl=queue_url, MaxNumberOfMessages=10)
    print(msg)

sqs_receive_msg()

Recommended Posts

[aws] Envoyer et recevoir des messages sqs
Envoi et réception d'images Flask
[AWS] Exploitez SQS à partir du SDK (envoi / réception) [Python] [Node.js]
Envoyer des messages et des images à l'aide de LineNotify
Envoyer un message à Skype et Chatwork en Python
Commencez la communication avec UDP et envoyez et recevez avec TCP
[blackbird-sqs] Surveillance d'AWS SQS
Envoyez et recevez Gmail via l'API Gmail en utilisant Python
Envoyez et recevez des données avec MQTT via Watson IoT Platform
AWS SNS délivre des messages en double