blob: 4cf88ebe32f346b93ffe174401bbda95ea0d1bb8 [file] [log] [blame]
:py:mod:`airflow.providers.amazon.aws.sensors.sqs`
==================================================
.. py:module:: airflow.providers.amazon.aws.sensors.sqs
.. autoapi-nested-parse::
Reads and then deletes the message from SQS queue
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
airflow.providers.amazon.aws.sensors.sqs.SqsSensor
airflow.providers.amazon.aws.sensors.sqs.SQSSensor
.. py:class:: SqsSensor(*, sqs_queue, aws_conn_id = 'aws_default', max_messages = 5, wait_time_seconds = 1, visibility_timeout = None, message_filtering = None, message_filtering_match_values = None, message_filtering_config = None, delete_message_on_reception = True, **kwargs)
Bases: :py:obj:`airflow.sensors.base.BaseSensorOperator`
Get messages from an Amazon SQS queue and then delete the messages from the queue.
If deletion of messages fails an AirflowException is thrown. Otherwise, the messages
are pushed through XCom with the key ``messages``.
.. seealso::
For more information on how to use this sensor, take a look at the guide:
:ref:`howto/sensor:SqsSensor`
:param aws_conn_id: AWS connection id
:param sqs_queue: The SQS queue url (templated)
:param max_messages: The maximum number of messages to retrieve for each poke (templated)
:param wait_time_seconds: The time in seconds to wait for receiving messages (default: 1 second)
:param visibility_timeout: Visibility timeout, a period of time during which
Amazon SQS prevents other consumers from receiving and processing the message.
:param message_filtering: Specified how received messages should be filtered. Supported options are:
`None` (no filtering, default), `'literal'` (message Body literal match) or `'jsonpath'`
(message Body filtered using a JSONPath expression).
You may add further methods by overriding the relevant class methods.
:param message_filtering_match_values: Optional value/s for the message filter to match on.
For example, with literal matching, if a message body matches any of the specified values
then it is included. For JSONPath matching, the result of the JSONPath expression is used
and may match any of the specified values.
:param message_filtering_config: Additional configuration to pass to the message filter.
For example with JSONPath filtering you can pass a JSONPath expression string here,
such as `'foo[*].baz'`. Messages with a Body which does not match are ignored.
:param delete_message_on_reception: Default to `True`, the messages are deleted from the queue
as soon as being consumed. Otherwise, the messages remain in the queue after consumption and
should be deleted manually.
.. py:attribute:: template_fields
:annotation: :Sequence[str] = ['sqs_queue', 'max_messages', 'message_filtering_config']
.. py:method:: poke(self, context)
Check for message on subscribed queue and write to xcom the message with key ``messages``
:param context: the context object
:return: ``True`` if message is available or ``False``
.. py:method:: get_hook(self)
Create and return an SqsHook
.. py:method:: filter_messages(self, messages)
.. py:method:: filter_messages_literal(self, messages)
.. py:method:: filter_messages_jsonpath(self, messages)
.. py:class:: SQSSensor(*args, **kwargs)
Bases: :py:obj:`SqsSensor`
This sensor is deprecated.
Please use :class:`airflow.providers.amazon.aws.sensors.sqs.SqsSensor`.