Boto 3の勉強 その6 (SQS)
今日は最後にSQSキューのメッセージを削除する。
まず、キューの中にメッセージが入っているか確認する。
スタンダードキューのため、数は不正確につき、メッセージの有無だけでもってことで。
import boto3 sqs = boto3.resource("sqs") client = boto3.client("sqs") queue = sqs.get_queue_by_name(QueueName="test-queue-20220301") sqs_url = "https://ap-northeast-1.queue.amazonaws.com/{AWSアカウントID}/test-queue-20220301" response = client.get_queue_attributes( QueueUrl=sqs_url, AttributeNames=["ApproximateNumberOfMessages"] ) print(response["Attributes"])
実行結果
% python sample-sqs.py {'ApproximateNumberOfMessages': '3'}
メッセージの有無を確認したので、キューのメッセージを削除してみる。
ドキュメントを眺める限り、purge_queue
がよさそう。
最終的には、以下コードで
import boto3 sqs = boto3.resource("sqs") client = boto3.client("sqs") queue = sqs.get_queue_by_name(QueueName="test-queue-20220301") sqs_url = "https://ap-northeast-1.queue.amazonaws.com/{AWSアカウントID}/test-queue-20220301" client.purge_queue(QueueUrl=sqs_url) response = client.get_queue_attributes( QueueUrl=sqs_url, AttributeNames=["ApproximateNumberOfMessages"] ) print(response["Attributes"])
実行結果もバッチリ
% python sample-sqs.py {'ApproximateNumberOfMessages': '0'}