Amazon Web Services (AWS): Boto3 SQS Operations
In this blog I am going to cover on how to run multiple SQS Operations using Boto3.
Note - all the response from which are printed will give HTTP Status Code 200 which signifies that the operation which you had performed had completed successfully.
Create Queue
Note - all the response from which are printed will give HTTP Status Code 200 which signifies that the operation which you had performed had completed successfully.
Create Queue
import boto3 QName = "MyNewFIfoQueue.fifo"Attr = {'FifoQueue': 'true'} sqs = boto3.resource('sqs') response = sqs.create_queue (QueueName = QName, Attributes = Attr) print (response)import boto3
QName = "MyNewFIfoQueue.fifo"Attr = {'FifoQueue': 'true'} sqs = boto3.resource('sqs') response = sqs.create_queue (QueueName = QName, Attributes = Attr) print (response)
And the response
sqs.Queue(url='https://queue.amazonaws.com/<accid>/MyNewFIfoQueue.fifo')
You can verify the same from Console or AWS CLI
$ aws sqs list-queues { "QueueUrls": [ "https://queue.amazonaws.com/<accid>/MyNewFIfoQueue.fifo" ] }
Send Messages to Queue
import boto3 import uuid QName = "MyNewFIfoQueue.fifo" sqs = boto3.client('sqs') QUEUE_URL = sqs.get_queue_url(QueueName = QName)['QueueUrl'] response = sqs.send_message( QueueUrl=QUEUE_URL, MessageBody="TestMessage", MessageGroupId="TestGroup", MessageDeduplicationId=str(uuid.uuid4())) print(response)And the response{u'MD5OfMessageBody': '08ff08d3b2981eb6c611a385ffa4f865', 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': 'b18d5e81-a666-541b-aaa4-0839850e0a6e', 'HTTPHeaders': {'x-amzn-requestid': 'b18d5e81-a666-541b-aaa4-0839850e0a6e', 'date': 'Sat, 08 Feb 2020 02:47:04 GMT', 'content-length': '431', 'content-type': 'text/xml'}}, u'SequenceNumber': '18851513359964655616', u'MessageId': '3a9b64ad-4eb3-4606-9eec-c9c5369d4304'}
Receive messages From Queueimport boto3
QName = "MyNewFIfoQueue.fifo" sqs = boto3.client('sqs') QUEUE_URL = sqs.get_queue_url(QueueName = QName)['QueueUrl'] response = sqs.receive_message( QueueUrl=QUEUE_URL, MaxNumberOfMessages=1 )['Messages'][0] print(response)And the response{u'Body': 'TestMessage', u'ReceiptHandle': 'AQEBmnx4wSlS0Qf/kramgeBUr8lMEHrWkILeK3SIoxMjfnMjRGrXtm8w8BUXiiKJQSaFYaGYnJF6kpFrYeFPoGlrVcJgn6Ci3WpM+pVm1Ih0XT4SkHQBjH2CIxKfx21t+oyej7mYi3PwNENOHJI125BNuAVnfSAys64uBFPXgEPgRy/OFBVK2CcueJy18I8sPm6dNV5CCzxfzZE3csd/TBOQsnhtAPt3sro3MfZUUUc5d3iIrhGjVa/xNXiNNHECMu5ZifCTU8U1pX2lX1EwV3CYzrlnr2mie/R6SkJqEvPjsfc=', u'MD5OfBody': '08ff08d3b2981eb6c611a385ffa4f865', u'MessageId': '3a9b64ad-4eb3-4606-9eec-c9c5369d4304'}
Purge and Delete Queue
import boto3 QName = "MyNewFIfoQueue.fifo" sqs = boto3.client('sqs') QUEUE_URL = sqs.get_queue_url(QueueName = QName)['QueueUrl'] response = sqs.purge_queue(QueueUrl=QUEUE_URL) print(response) response = sqs.delete_queue(QueueUrl=QUEUE_URL) print(response)And the response{'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '364d9e6a-9b1b-555e-b5af-c8d2bd4abe6a', 'HTTPHeaders': {'x-amzn-requestid': '364d9e6a-9b1b-555e-b5af-c8d2bd4abe6a', 'date': 'Sat, 08 Feb 2020 02:59:29 GMT', 'content-length': '209', 'content-type': 'text/xml'}}} {'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '75808c73-aac5-5dec-b3a4-dacb8c9446d8', 'HTTPHeaders': {'x-amzn-requestid': '75808c73-aac5-5dec-b3a4-dacb8c9446d8', 'date': 'Sat, 08 Feb 2020 02:59:29 GMT', 'content-length': '211', 'content-type': 'text/xml'}}}