Boto 3の勉強 その5 (SQS)

引き続き、これの続きをやっていく。

今日は、SQSキューに複数(2つ)のメッセージを送信するところから

response = queue.send_messages(
    Entries=[
        {"Id": "1", "MessageBody": "world"},
        {
            "Id": "2",
            "MessageBody": "boto3",
            "MessageAttributes": {
                "Author": {"StringValue": "Daniel", "DataType": "String"}
            },
        },
    ]
)

送信した2つのメッセージを取得してみる。
メッセージは2つなので、MaxNumberOfMessagesパラメータも2に設定する。

get_message = queue.receive_messages(MaxNumberOfMessages=2)
for message in get_message:
    print(message.body)

実行結果が下記
送信した2つのメッセージが取得できている。もちろん、MaxNumberOfMessagesパラメータが1の場合、メッセージは1つずつしか取得できない。

% python sample-sqs.py
world
boto3

最後に全体のコードを残しておわり

import boto3

sqs = boto3.resource("sqs")

queue = sqs.get_queue_by_name(QueueName="test-queue-20220301")
response = queue.send_messages(
    Entries=[
        {"Id": "1", "MessageBody": "world"},
        {
            "Id": "2",
            "MessageBody": "boto3",
            "MessageAttributes": {
                "Author": {"StringValue": "Daniel", "DataType": "String"}
            },
        },
    ]
)

get_message = queue.receive_messages(MaxNumberOfMessages=2)
for message in get_message:
    print(message.body)