python-boto3/docs/source/guide/sqs-example-sending-receiving-msgs.rst

139 lines
4.4 KiB
ReStructuredText
Raw Normal View History

2018-07-11 07:39:36 +02:00
.. Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0
International License (the "License"). You may not use this file except in compliance with the
License. A copy of the License is located at http://creativecommons.org/licenses/by-nc-sa/4.0/.
This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions and
limitations under the License.
.. _aws-boto3-sqs-messages:
############################################
2021-09-22 18:34:33 +02:00
Sending and receiving messages in Amazon SQS
2018-07-11 07:39:36 +02:00
############################################
This Python example shows you how to send, receive, and delete messages in a queue.
2021-09-22 18:34:33 +02:00
The scenario
2018-07-11 07:39:36 +02:00
============
In this example, Python code is used to send and receive messages. The code uses the AWS SDK for Python
to send and receive messages by using these methods of the AWS.SQS client class:
2019-01-28 22:47:44 +01:00
* `send_message <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.send_message>`_.
2018-07-11 07:39:36 +02:00
2019-01-28 22:47:44 +01:00
* `receive_message <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.receive_message>`_.
2018-07-11 07:39:36 +02:00
2019-01-28 22:47:44 +01:00
* `delete_message <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.delete_message>`_.
2018-07-11 07:39:36 +02:00
For more information about Amazon SQS messages, see
`Sending a Message to an Amazon SQS Queue <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message.html>`_
and `Receiving and Deleting a Message from an Amazon SQS Queue <http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-receive-delete-message.html>`_
in the *Amazon Simple Queue Service Developer Guide*.
2021-09-22 18:34:33 +02:00
Prerequisite tasks
2018-07-11 07:39:36 +02:00
==================
To set up and run this example, you must first complete these tasks:
2019-10-20 18:51:09 +02:00
* Create an Amazon SQS queue. For an example of creating an Amazon SQS
queue, see :ref:`aws-boto3-sqs-create-queue`.
2019-01-28 22:47:44 +01:00
2019-10-20 18:51:09 +02:00
.. _aws-boto3-sqs-send-message:
2018-07-11 07:39:36 +02:00
2021-09-22 18:34:33 +02:00
Send a message to a queue
2018-07-11 07:39:36 +02:00
=========================
The example below shows how to:
* Send a message to a queue using
2019-01-28 22:47:44 +01:00
`send_message <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.send_message>`_.
2018-07-11 07:39:36 +02:00
Example
-------
.. code-block:: python
import boto3
# Create SQS client
sqs = boto3.client('sqs')
queue_url = 'SQS_QUEUE_URL'
# Send message to SQS queue
response = sqs.send_message(
QueueUrl=queue_url,
DelaySeconds=10,
MessageAttributes={
'Title': {
'DataType': 'String',
'StringValue': 'The Whistler'
},
'Author': {
'DataType': 'String',
'StringValue': 'John Grisham'
},
'WeeksOn': {
'DataType': 'Number',
'StringValue': '6'
}
},
MessageBody=(
'Information about current NY Times fiction bestseller for '
'week of 12/11/2016.'
)
)
print(response['MessageId'])
2021-09-22 18:34:33 +02:00
Receive and delete messages from a queue
2018-07-11 07:39:36 +02:00
========================================
The example below shows how to:
* Receive a message from a queue using
2019-01-28 22:47:44 +01:00
`receive_message <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.receive_message>`_.
2018-07-11 07:39:36 +02:00
* Delete a message from a queue using
2019-01-28 22:47:44 +01:00
`delete_message <https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sqs.html#SQS.Client.delete_message>`_.
2018-07-11 07:39:36 +02:00
Example
-------
.. code-block:: python
import boto3
# Create SQS client
sqs = boto3.client('sqs')
queue_url = 'SQS_QUEUE_URL'
# Receive message from SQS queue
response = sqs.receive_message(
QueueUrl=queue_url,
AttributeNames=[
'SentTimestamp'
],
MaxNumberOfMessages=1,
MessageAttributeNames=[
'All'
],
VisibilityTimeout=0,
WaitTimeSeconds=0
)
message = response['Messages'][0]
receipt_handle = message['ReceiptHandle']
# Delete received message from queue
sqs.delete_message(
QueueUrl=queue_url,
ReceiptHandle=receipt_handle
)
print('Received and deleted message: %s' % message)