Queue / Action / send_messages
send_messages#
- SQS.Queue.send_messages(**kwargs)#
- You can use - SendMessageBatchto send up to 10 messages to the specified queue by assigning either identical or different values to each message (or by not assigning values at all). This is a batch version of- SendMessage.For a FIFO queue, multiple messages within a single batch are enqueued in the order they are sent.- The result of sending each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of - 200.- The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of all of the batched messages) are both 256 KiB (262,144 bytes). - Warning- A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed: - #x9|- #xA|- #xD|- #x20to- #xD7FF|- #xE000to- #xFFFD|- #x10000to- #x10FFFF- Any characters not included in this list will be rejected. For more information, see the W3C specification for characters. - If you don’t specify the - DelaySecondsparameter for an entry, Amazon SQS uses the default value for the queue.- See also: AWS API Documentation - Request Syntax- response = queue.send_messages( Entries=[ { 'Id': 'string', 'MessageBody': 'string', 'DelaySeconds': 123, 'MessageAttributes': { 'string': { 'StringValue': 'string', 'BinaryValue': b'bytes', 'StringListValues': [ 'string', ], 'BinaryListValues': [ b'bytes', ], 'DataType': 'string' } }, 'MessageSystemAttributes': { 'string': { 'StringValue': 'string', 'BinaryValue': b'bytes', 'StringListValues': [ 'string', ], 'BinaryListValues': [ b'bytes', ], 'DataType': 'string' } }, 'MessageDeduplicationId': 'string', 'MessageGroupId': 'string' }, ] ) - Parameters:
- Entries (list) – - [REQUIRED] - A list of - SendMessageBatchRequestEntryitems.- (dict) – - Contains the details of a single Amazon SQS message along with an - Id.- Id (string) – [REQUIRED] - An identifier for a message in this batch used to communicate the result. - Note- The ``Id``s of a batch request need to be unique within a request. - This identifier can have up to 80 characters. The following characters are accepted: alphanumeric characters, hyphens(-), and underscores (_). 
- MessageBody (string) – [REQUIRED] - The body of the message. 
- DelaySeconds (integer) – - The length of time, in seconds, for which a specific message is delayed. Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive - DelaySecondsvalue become available for processing after the delay period is finished. If you don’t specify a value, the default value for the queue is applied.- Note- When you set - FifoQueue, you can’t set- DelaySecondsper message. You can set this parameter only on a queue level.
- MessageAttributes (dict) – - Each message attribute consists of a - Name,- Type, and- Value. For more information, see Amazon SQS message attributes in the Amazon SQS Developer Guide.- (string) – - (dict) – - The user-specified message attribute value. For string data types, the - Valueattribute has the same restrictions on the content as the message body. For more information, see- SendMessage.- Name,- type,- valueand the message body must not be empty or null. All parts of the message attribute, including- Name,- Type, and- Value, are part of the message size restriction (256 KiB or 262,144 bytes).- StringValue (string) – - Strings are Unicode with UTF-8 binary encoding. For a list of code values, see ASCII Printable Characters. 
- BinaryValue (bytes) – - Binary type attributes can store any binary data, such as compressed data, encrypted data, or images. 
- StringListValues (list) – - Not implemented. Reserved for future use. - (string) – 
 
- BinaryListValues (list) – - Not implemented. Reserved for future use. - (bytes) – 
 
- DataType (string) – [REQUIRED] - Amazon SQS supports the following logical data types: - String,- Number, and- Binary. For the- Numberdata type, you must use- StringValue.- You can also append custom labels. For more information, see Amazon SQS Message Attributes in the Amazon SQS Developer Guide. 
 
 
 
- MessageSystemAttributes (dict) – - The message system attribute to send Each message system attribute consists of a - Name,- Type, and- Value.- Warning- Currently, the only supported message system attribute is - AWSTraceHeader. Its type must be- Stringand its value must be a correctly formatted X-Ray trace header string.
- The size of a message system attribute doesn’t count towards the total size of a message. 
 - (string) – - (dict) – - The user-specified message system attribute value. For string data types, the - Valueattribute has the same restrictions on the content as the message body. For more information, see- SendMessage.- Name,- type,- valueand the message body must not be empty or null.- StringValue (string) – - Strings are Unicode with UTF-8 binary encoding. For a list of code values, see ASCII Printable Characters. 
- BinaryValue (bytes) – - Binary type attributes can store any binary data, such as compressed data, encrypted data, or images. 
- StringListValues (list) – - Not implemented. Reserved for future use. - (string) – 
 
- BinaryListValues (list) – - Not implemented. Reserved for future use. - (bytes) – 
 
- DataType (string) – [REQUIRED] - Amazon SQS supports the following logical data types: - String,- Number, and- Binary. For the- Numberdata type, you must use- StringValue.- You can also append custom labels. For more information, see Amazon SQS Message Attributes in the Amazon SQS Developer Guide. 
 
 
 
- MessageDeduplicationId (string) – - This parameter applies only to FIFO (first-in-first-out) queues. - The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular - MessageDeduplicationIdis sent successfully, subsequent messages with the same- MessageDeduplicationIdare accepted successfully but aren’t delivered. For more information, see Exactly-once processing in the Amazon SQS Developer Guide.- Every message must have a unique - MessageDeduplicationId,- You may provide a - MessageDeduplicationIdexplicitly.
- If you aren’t able to provide a - MessageDeduplicationIdand you enable- ContentBasedDeduplicationfor your queue, Amazon SQS uses a SHA-256 hash to generate the- MessageDeduplicationIdusing the body of the message (but not the attributes of the message).
- If you don’t provide a - MessageDeduplicationIdand the queue doesn’t have- ContentBasedDeduplicationset, the action fails with an error.
- If the queue has - ContentBasedDeduplicationset, your- MessageDeduplicationIdoverrides the generated one.
 
- When - ContentBasedDeduplicationis in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered.
- If you send one message with - ContentBasedDeduplicationenabled and then another message with a- MessageDeduplicationIdthat is the same as the one generated for the first- MessageDeduplicationId, the two messages are treated as duplicates and only one copy of the message is delivered.
 - Note- The - MessageDeduplicationIdis available to the consumer of the message (this can be useful for troubleshooting delivery issues).- If a message is sent successfully but the acknowledgement is lost and the message is resent with the same - MessageDeduplicationIdafter the deduplication interval, Amazon SQS can’t detect duplicate messages.- Amazon SQS continues to keep track of the message deduplication ID even after the message is received and deleted. - The length of - MessageDeduplicationIdis 128 characters.- MessageDeduplicationIdcan contain alphanumeric characters (- a-z,- A-Z,- 0-9) and punctuation (- !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).- For best practices of using - MessageDeduplicationId, see Using the MessageDeduplicationId Property in the Amazon SQS Developer Guide.
- MessageGroupId (string) – - This parameter applies only to FIFO (first-in-first-out) queues. - The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use - MessageGroupIdvalues (for example, session data for multiple users). In this scenario, multiple consumers can process the queue, but the session data of each user is processed in a FIFO fashion.- You must associate a non-empty - MessageGroupIdwith a message. If you don’t provide a- MessageGroupId, the action fails.
- ReceiveMessagemight return messages with multiple- MessageGroupIdvalues. For each- MessageGroupId, the messages are sorted by time sent. The caller can’t specify a- MessageGroupId.
 - The length of - MessageGroupIdis 128 characters. Valid values: alphanumeric characters and punctuation- (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).- For best practices of using - MessageGroupId, see Using the MessageGroupId Property in the Amazon SQS Developer Guide.- Warning- MessageGroupIdis required for FIFO queues. You can’t use it for Standard queues.
 
 
- Return type:
- dict 
- Returns:
- Response Syntax- { 'Successful': [ { 'Id': 'string', 'MessageId': 'string', 'MD5OfMessageBody': 'string', 'MD5OfMessageAttributes': 'string', 'MD5OfMessageSystemAttributes': 'string', 'SequenceNumber': 'string' }, ], 'Failed': [ { 'Id': 'string', 'SenderFault': True|False, 'Code': 'string', 'Message': 'string' }, ] } - Response Structure- (dict) – - For each message in the batch, the response contains a - SendMessageBatchResultEntrytag if the message succeeds or a- BatchResultErrorEntrytag if the message fails.- Successful (list) – - A list of - SendMessageBatchResultEntryitems.- (dict) – - Encloses a - MessageIdfor a successfully-enqueued message in a- SendMessageBatch.- Id (string) – - An identifier for the message in this batch. 
- MessageId (string) – - An identifier for the message. 
- MD5OfMessageBody (string) – - An MD5 digest of the non-URL-encoded message body string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321. 
- MD5OfMessageAttributes (string) – - An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321. 
- MD5OfMessageSystemAttributes (string) – - An MD5 digest of the non-URL-encoded message system attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321. 
- SequenceNumber (string) – - This parameter applies only to FIFO (first-in-first-out) queues. - The large, non-consecutive number that Amazon SQS assigns to each message. - The length of - SequenceNumberis 128 bits. As- SequenceNumbercontinues to increase for a particular- MessageGroupId.
 
 
- Failed (list) – - A list of - BatchResultErrorEntryitems with error details about each message that can’t be enqueued.- (dict) – - Gives a detailed description of the result of an action on each entry in the request. - Id (string) – - The - Idof an entry in a batch request.
- SenderFault (boolean) – - Specifies whether the error happened due to the caller of the batch API action. 
- Code (string) – - An error code representing why the action failed on this entry. 
- Message (string) – - A message explaining why the action failed on this entry.