【SQS】【Python】メッセージを複数送信

IT
  • Entriesを使用して、一度に複数メッセージを送るコード
  • メッセージのリスト作成部分は、処理効率の点から本当は内包表記を使用した方が良い
    • (自分が勉強不足のため)まだfor文の方が読みやすいので、for文で書いた

コードmemo

import boto3

loop_num = 10

# SQSのキューURL
queue_url = '【キューのURL】'

# AWSの認証情報を指定してSQSクライアントを作成
sqs = boto3.client('sqs')

# 送信するメッセージのリスト
messages = []
for num in range(loop_num):
    messages.append("Hello, SQS " + str(num+1))

# メッセージエントリーのリストを作成
entries = []
for i, msg in enumerate(messages):
    entry = {'Id': str(i), 'MessageBody': msg}
    entries.append(entry)

# メッセージを送信
response = sqs.send_message_batch(
    QueueUrl=queue_url,
    Entries=entries
)

# レスポンスを表示
print("Successful:", response['Successful'])

確認

  • Amazon SQS > キュー → 対象キュー名をクリック
  • 「メッセージを送受信」をクリック→「メッセージをポーリング」をクリック
  • 受信したメッセージにHello, SQS 【番号】と表示されればOK

コメント

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