[aws] sqs メッセージの送受信
概要
業務でSQSを使用する機会があったため、その際に行った動作確認方法をまとめます。
SQSとは
SQS(Amazon Simple Queue Service)はメッセージキューであり、データの送受信を仲介する役割を持つサービスです。
メッセージブローカとして有名なRabbitMQ
とほぼ同じ機能を持っています。
SQSを使用する利点は以下の通りです。
https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html
- セキュリティ
- AWS KMS で管理されたキーを使用してキューのメッセージのコンテンツを保護するため、重要なデータを送信することが可能
- 耐久性
- メッセージの安全性を確保するため、 Amazon SQS 複数のサーバーに保存
- 可用性
- 冗長なインフラストラクチャを使用して同時実行性が高いメッセージへのアクセスと、メッセージの作成と消費のための高い可用性
- スケーラビリティ
- プロビジョニング指示を必要とせずに負荷の増大やスパイクに対応
- 信頼性
- 複数のプロデューサーがメッセージを送信するのと同時に、複数のコンシューマーがメッセージを受信
- カスタマイズ
- ユーザ側である程度カスタマイズすることが可能
キューの作成
データの送受信を行う前に、キューを作成する必要があります。
AWS コンソール サービス → sqs → キューの作成
の手順で作成します。
キューには標準
とFIFO
がありますが、動作確認を行うだけなので今回は標準とします。
データの送信
データの送信方法は以下の通りです。
事前にaws configure
を設定しておく必要があります。
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()
データの受信
sqsのurlを指定してsqsとの通信を行うことも可能です。
urlは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()
Author And Source
この問題について([aws] sqs メッセージの送受信), 我々は、より多くの情報をここで見つけました https://qiita.com/hrtkjm/items/00542a8339e45414c0e1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .