- 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
コメント