PythonでBoto3を用いてAmazon SQSを使用しメッセージを送信し受信する

PythonでBoto3を用いてAmazon SQSを使用しメッセージを送信し、送信したメッセージを受信してみます。なお、この記事は、PythonでBoto3を用いてAmazon SQSを使用しキューを作成するという記事の続きとなります。

今回は、Boto3を用います。このライブラリ・モジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■Boto3を用いてAmazon SQSを使用しメッセージを送信し受信する

では、早速、Boto3を用いてAmazon SQSを使用しメッセージを送信し、送信したメッセージを受信。受信したメッセージを出力させるスクリプトを書いていきます。

■コード

import boto3

sqs = boto3.resource('sqs')

queue = sqs.get_queue_by_name(QueueName='test')

response = queue.send_message(MessageBody='世界。未来は明るい')

for message in queue.receive_messages():

    print('こんにちは, {0}'.format(message.body))

    message.delete()

importでboto3モジュールを呼び出します。その後、sqsという変数を定義し、その中でboto3.resource()を用いて、括弧内に引数,パラメータとして、リソースであるsqsを渡します。これで、リソースであるsqsを取得します。

取得後、queueという変数を定義し、その中でget_queue_by_name()を用いて、括弧内に引数,パラメータとして、キューの名前(QueueName)を渡します。これでキューを取得します。

その後、responseという変数を定義し、その中でqueue.send_message()を用いて、括弧内に引数,パラメータとして、取得したキューに配信するメッセージ(MessageBody)を渡します。今回は、日本語の文字列で「世界。未来は明るい」としています。

キューにメッセージを配信した後は、for文を用い、さらにqueue.receive_messages()を用いて、キューに配信されたメッセージを受信し、messageに格納します。

格納後、format()を用いて、キューに配信されたメッセージを文字列フォーマットします。フォーマット後、波括弧”{ }”を用い、”0”としフォーマットされたメッセージの0番目の値を置換します。

置換後、print()でメッセージを出力します。出力後、message.delete()を用いて、格納したメッセージを削除します。

■実行・検証

このスクリプトを「q_test_2.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、キューを取得し、指定したキューにメッセージを配信し、配信されたメッセージを出力させることができました。

コメント

タイトルとURLをコピーしました