| :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`. |
| |
| |