Function signature keywords
Function signatures - keywords with transport centric values
Function handlers, middlewares and envelopes can specify additional keyword arguments in their signatures and receive transport centric values.
The following keywords can be used across all kind of handler functions, envelopes and envelopes parsing messages. These can be used to structure apps, logging, tracing, authentication, building more advanced messaging logic, etc.
See examples of how these values could be used in the section about middleware functionality.
AWS SNS+SQS related values - function signature keyword arguments
Use the following keywords arguments in function signatures (for handlers, middlewares and envelopes used for AWS SNS+SQS messages).
message_attributes
message_attributes
Values specified as message attributes that accompanies the message body and that are among other things used for SNS queue subscription filter policies and for distributed tracing.
queue_url
and receipt_handle
queue_url
and receipt_handle
Can be used to modify visibility of messages, provide exponential backoffs, manually delete a message from the queue, etc.
approximate_receive_count
approximate_receive_count
A value that specifies approximately how many times this message has been received from consumers on SQS.ReceiveMessage calls. Handlers that received a message, but that doesn't delete it from the queue (for example in order to make it visible for other consumers or in case of errors), will add to this count for each time they received it.
topic
topic
Simply the name of the SNS topic. For messages sent directly to the queue (for example via
SQS.SendMessage
API calls), instead of via SNS topic subscriptions (SNS.Publish
), the value oftopic
will be an empty string.
sns_message_id
sns_message_id
The message identifier for the SNS message (which is usually embedded in the body of a SQS message). Ths SNS message identifier is the same that is returned in the response when publishing a message with SNS.Publish. The
sns_message_id
is read from within the"Body"
of SQS messages, if the message body contains a message that comes from an SNS topic subscription.If the SQS message doesn't originate from SNS (if the message isn't type
"Notification"
, and holds a"TopicArn"
value), thensns_message_id
will result in an empty string.
sqs_message_id
sqs_message_id
The SQS message identifier, which naturally will differ from the SNS message identifier as one SNS message can be propagated to several SQS queues. The
sqs_message_id
is read from the "MessageId" value in the top of the SQS message.
message_type
message_type
Returns the
"Type"
value from the message body. For messages consumed from a queue that was sent there from an SNS topic, themessage_type
will be"Notification"
.
raw_message_body
raw_message_body
Returns the full contents (as a string) from
"Body"
, which can be used to implement custom listeners, tailored for more advanced workflows, where more flexibility is needed.
message_timestamp
message_timestamp
A timestamp of when the original SNS message was published.
message_deduplication_id
message_deduplication_id
The deduplication id for messages in FIFO queues (or
None
on messages in non-FIFO queues).
message_group_id
message_group_id
The group id for messages in FIFO queues (or
None
on messages in non-FIFO queues).
HTTP related values - function signature keyword arguments
Use the following keywords arguments in function signatures (for handlers and middlewares used for HTTP requests).
request
request
The
aiohttp
request object which holds functionality for all things HTTP requests.
status_code
status_code
Specified when predefined error handlers are run. Using the keyword in handlers and middlewares for requests not invoking error handlers should preferably be specified with a default value to ensure it will work on both error handlers and request router handlers.
websocket
websocket
Will be added to websocket requests if used.
Updated 9 months ago