:py:mod:`airflow.providers.amazon.aws.operators.ecs`
====================================================

.. py:module:: airflow.providers.amazon.aws.operators.ecs


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.operators.ecs.EcsProtocol
   airflow.providers.amazon.aws.operators.ecs.EcsTaskLogFetcher
   airflow.providers.amazon.aws.operators.ecs.EcsOperator
   airflow.providers.amazon.aws.operators.ecs.ECSOperator
   airflow.providers.amazon.aws.operators.ecs.ECSTaskLogFetcher
   airflow.providers.amazon.aws.operators.ecs.ECSProtocol



Functions
~~~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.operators.ecs.should_retry
   airflow.providers.amazon.aws.operators.ecs.should_retry_eni



.. py:function:: should_retry(exception)

   Check if exception is related to ECS resource quota (CPU, MEM).


.. py:function:: should_retry_eni(exception)

   Check if exception is related to ENI (Elastic Network Interfaces).


.. py:class:: EcsProtocol

   Bases: :py:obj:`airflow.typing_compat.Protocol`

   A structured Protocol for ``boto3.client('ecs')``. This is used for type hints on
   :py:meth:`.EcsOperator.client`.

   .. seealso::

       - https://mypy.readthedocs.io/en/latest/protocols.html
       - https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

   .. py:method:: run_task(self, **kwargs)

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.run_task


   .. py:method:: get_waiter(self, x)

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.get_waiter


   .. py:method:: describe_tasks(self, cluster, tasks)

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.describe_tasks


   .. py:method:: stop_task(self, cluster, task, reason)

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.stop_task


   .. py:method:: describe_task_definition(self, taskDefinition)

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.describe_task_definition


   .. py:method:: list_tasks(self, cluster, launchType, desiredStatus, family)

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.list_tasks



.. py:class:: EcsTaskLogFetcher(*, aws_conn_id = 'aws_default', region_name = None, log_group, log_stream_name, fetch_interval, logger)

   Bases: :py:obj:`threading.Thread`

   Fetches Cloudwatch log events with specific interval as a thread
   and sends the log events to the info channel of the provided logger.

   .. py:method:: run(self)

      Method representing the thread's activity.

      You may override this method in a subclass. The standard run() method
      invokes the callable object passed to the object's constructor as the
      target argument, if any, with sequential and keyword arguments taken
      from the args and kwargs arguments, respectively.



   .. py:method:: get_last_log_messages(self, number_messages)


   .. py:method:: get_last_log_message(self)


   .. py:method:: is_stopped(self)


   .. py:method:: stop(self)



.. py:class:: EcsOperator(*, task_definition, cluster, overrides, aws_conn_id = None, region_name = None, launch_type = 'EC2', capacity_provider_strategy = None, group = None, placement_constraints = None, placement_strategy = None, platform_version = None, network_configuration = None, tags = None, awslogs_group = None, awslogs_region = None, awslogs_stream_prefix = None, awslogs_fetch_interval = timedelta(seconds=30), propagate_tags = None, quota_retry = None, reattach = False, number_logs_exception = 10, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Execute a task on AWS ECS (Elastic Container Service)

   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:EcsOperator`

   :param task_definition: the task definition name on Elastic Container Service
   :param cluster: the cluster name on Elastic Container Service
   :param overrides: the same parameter that boto3 will receive (templated):
       https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.run_task
   :param aws_conn_id: connection id of AWS credentials / region name. If None,
       credential boto3 strategy will be used
       (http://boto3.readthedocs.io/en/latest/guide/configuration.html).
   :param region_name: region name to use in AWS Hook.
       Override the region_name in connection (if provided)
   :param launch_type: the launch type on which to run your task ('EC2', 'EXTERNAL', or 'FARGATE')
   :param capacity_provider_strategy: the capacity provider strategy to use for the task.
       When capacity_provider_strategy is specified, the launch_type parameter is omitted.
       If no capacity_provider_strategy or launch_type is specified,
       the default capacity provider strategy for the cluster is used.
   :param group: the name of the task group associated with the task
   :param placement_constraints: an array of placement constraint objects to use for
       the task
   :param placement_strategy: an array of placement strategy objects to use for
       the task
   :param platform_version: the platform version on which your task is running
   :param network_configuration: the network configuration for the task
   :param tags: a dictionary of tags in the form of {'tagKey': 'tagValue'}.
   :param awslogs_group: the CloudWatch group where your ECS container logs are stored.
       Only required if you want logs to be shown in the Airflow UI after your job has
       finished.
   :param awslogs_region: the region in which your CloudWatch logs are stored.
       If None, this is the same as the `region_name` parameter. If that is also None,
       this is the default AWS region based on your connection settings.
   :param awslogs_stream_prefix: the stream prefix that is used for the CloudWatch logs.
       This is usually based on some custom name combined with the name of the container.
       Only required if you want logs to be shown in the Airflow UI after your job has
       finished.
   :param awslogs_fetch_interval: the interval that the ECS task log fetcher should wait
       in between each Cloudwatch logs fetches.
   :param quota_retry: Config if and how to retry the launch of a new ECS task, to handle
       transient errors.
   :param reattach: If set to True, will check if the task previously launched by the task_instance
       is already running. If so, the operator will attach to it instead of starting a new task.
       This is to avoid relaunching a new task when the connection drops between Airflow and ECS while
       the task is running (when the Airflow worker is restarted for example).
   :param number_logs_exception: Number of lines from the last Cloudwatch logs to return in the
       AirflowException if an ECS task is stopped (to receive Airflow alerts with the logs of what
       failed in the code running in ECS).

   .. py:attribute:: ui_color
      :annotation: = #f0ede4

      

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['overrides']

      

   .. py:attribute:: template_fields_renderers
      

      

   .. py:attribute:: REATTACH_XCOM_KEY
      :annotation: = ecs_task_arn

      

   .. py:attribute:: REATTACH_XCOM_TASK_ID_TEMPLATE
      :annotation: = {task_id}_task_arn

      

   .. py:method:: execute(self, context, session=None)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.


   .. py:method:: get_hook(self)

      Create and return an AwsHook.


   .. py:method:: on_kill(self)

      Override this method to cleanup subprocesses when a task instance
      gets killed. Any use of the threading, subprocess or multiprocessing
      module within an operator needs to be cleaned up or it will leave
      ghost processes behind.



.. py:class:: ECSOperator(*args, **kwargs)

   Bases: :py:obj:`EcsOperator`

   This operator is deprecated.
   Please use :class:`airflow.providers.amazon.aws.operators.ecs.EcsOperator`.


.. py:class:: ECSTaskLogFetcher(*args, **kwargs)

   Bases: :py:obj:`EcsTaskLogFetcher`

   This class is deprecated.
   Please use :class:`airflow.providers.amazon.aws.operators.ecs.EcsTaskLogFetcher`.


.. py:class:: ECSProtocol

   Bases: :py:obj:`EcsProtocol`

   This class is deprecated.
   Please use :class:`airflow.providers.amazon.aws.operators.ecs.EcsProtocol`.


