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が実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、キューを取得し、指定したキューにメッセージを配信し、配信されたメッセージを出力させることができました。
コメント