airflow.providers.amazon.aws.operators.ecs

模块内容

EcsBaseOperator

这是所有弹性容器服务操作符的基本操作符。

EcsCreateClusterOperator

创建 AWS ECS 集群。

EcsDeleteClusterOperator

删除 AWS ECS 集群。

EcsDeregisterTaskDefinitionOperator

在 AWS ECS 上取消注册任务定义。

EcsRegisterTaskDefinitionOperator

在 AWS ECS 上注册任务定义。

EcsRunTaskOperator

在 AWS ECS(弹性容器服务)上执行任务。

class airflow.providers.amazon.aws.operators.ecs.EcsBaseOperator(*, aws_conn_id='aws_default', region_name=None, verify=None, botocore_config=None, region=NOTSET, **kwargs)[源代码]

基类:airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.ecs.EcsHook]

这是所有弹性容器服务操作符的基本操作符。

aws_hook_class[源代码]
client()[源代码]

创建并返回 EcsHook 的客户端。

abstract execute(context)[源代码]

必须在子类中覆盖。

class airflow.providers.amazon.aws.operators.ecs.EcsCreateClusterOperator(*, cluster_name, create_cluster_kwargs=None, wait_for_completion=True, waiter_delay=15, waiter_max_attempts=60, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[源代码]

基类:EcsBaseOperator

创建 AWS ECS 集群。

参见

有关如何使用此操作符的更多信息,请查看指南:创建 AWS ECS 集群

参数
  • cluster_name (str) – 您的集群的名称。如果未指定集群的名称,则会创建一个名为 default 的集群。

  • create_cluster_kwargs (dict | None) – 用于集群创建的额外参数。

  • wait_for_completion (bool) – 如果为 True,则等待集群创建完成。(默认值:True)

  • waiter_delay (int) – 如果未设置,则默认使用等待器值,即尝试之间等待的秒数。

  • waiter_max_attempts (int) – 如果未设置,则默认使用等待器值,即尝试的最大次数。

  • deferrable (bool) – 如果为 True,则操作符将异步等待作业完成。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值:False)

template_fields: collections.abc.Sequence[str][源代码]
execute(context)[源代码]

必须在子类中覆盖。

class airflow.providers.amazon.aws.operators.ecs.EcsDeleteClusterOperator(*, cluster_name, wait_for_completion=True, waiter_delay=15, waiter_max_attempts=60, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[源代码]

基类:EcsBaseOperator

删除 AWS ECS 集群。

参见

有关如何使用此操作符的更多信息,请查看指南:删除 AWS ECS 集群

参数
  • cluster_name (str) – 要删除的集群的短名称或完整的 Amazon 资源名称 (ARN)。

  • wait_for_completion (bool) – 如果为 True,则等待集群创建完成。(默认值:True)

  • waiter_delay (int) – 如果未设置,则默认使用等待器值,即尝试之间等待的秒数。

  • waiter_max_attempts (int) – 如果未设置,则默认使用等待器值,即尝试的最大次数。

  • deferrable (bool) – 如果为 True,则操作符将异步等待作业完成。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值:False)

template_fields: collections.abc.Sequence[str] = ('cluster_name', 'wait_for_completion', 'deferrable')[源代码]
execute(context)[源代码]

必须在子类中覆盖。

class airflow.providers.amazon.aws.operators.ecs.EcsDeregisterTaskDefinitionOperator(*, task_definition, **kwargs)[源代码]

基类:EcsBaseOperator

在 AWS ECS 上取消注册任务定义。

参见

有关如何使用此操作符的更多信息,请查看以下指南:注销任务定义

参数

task_definition (str) – 要注销的任务定义的系列和修订版(family:revision)或完整的 Amazon 资源名称 (ARN)。如果您使用系列名称,则必须指定修订版。

template_fields: collections.abc.Sequence[str] = ('task_definition',)[源代码]
execute(context)[源代码]

必须在子类中覆盖。

class airflow.providers.amazon.aws.operators.ecs.EcsRegisterTaskDefinitionOperator(*, family, container_definitions, register_task_kwargs=None, **kwargs)[源代码]

基类:EcsBaseOperator

在 AWS ECS 上注册任务定义。

参见

有关如何使用此操作符的更多信息,请查看以下指南:注册任务定义

参数
  • family (str) – 要创建的任务定义的系列名称。

  • container_definitions (list[dict]) – 以 JSON 格式表示的容器定义列表,描述组成您的任务的不同容器。

  • register_task_kwargs (dict | None) – 注册任务定义的额外参数。

template_fields: collections.abc.Sequence[str] = ('family', 'container_definitions', 'register_task_kwargs')[源代码]
execute(context)[源代码]

必须在子类中覆盖。

class airflow.providers.amazon.aws.operators.ecs.EcsRunTaskOperator(*, task_definition, cluster, overrides, launch_type='EC2', capacity_provider_strategy=None, volume_configurations=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, wait_for_completion=True, waiter_delay=6, waiter_max_attempts=1000000, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[源代码]

基类:EcsBaseOperator

在 AWS ECS(弹性容器服务)上执行任务。

参见

有关如何使用此操作符的更多信息,请查看以下指南:运行任务定义

参数
  • task_definition (str) – Elastic Container Service 上的任务定义名称

  • cluster (str) – Elastic Container Service 上的集群名称

  • overrides (dict) – boto3 将接收的相同参数(已模板化):https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html#ECS.Client.run_task

  • aws_conn_id – AWS 凭据/区域名称的连接 ID。如果为 None,则将使用凭据 boto3 策略 (https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html)。

  • region – 在 AWS Hook 中使用的区域名称。覆盖连接中的区域(如果提供)

  • launch_type (str) – 运行任务的启动类型(“EC2”、“EXTERNAL”或“FARGATE”)

  • capacity_provider_strategy (list | None) – 用于任务的容量提供程序策略。指定 capacity_provider_strategy 时,将省略 launch_type 参数。如果未指定 capacity_provider_strategy 或 launch_type,则使用集群的默认容量提供程序策略。

  • volume_configurations (list | None) – 使用容量提供程序时要使用的卷配置。卷的名称必须与任务定义中的名称匹配。您可以配置大小、卷类型、IOPS、吞吐量以及 (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html) 中提到的其他设置

  • group (str | None) – 与任务关联的任务组的名称

  • placement_constraints (list | None) – 用于任务的放置约束对象数组

  • placement_strategy (list | None) – 用于任务的放置策略对象数组

  • platform_version (str | None) – 您的任务正在运行的平台版本。

  • network_configuration (dict | None) – 任务的网络配置。

  • tags (dict | None) – 标签字典,格式为 {‘tagKey’: ‘tagValue’}。

  • awslogs_group (str | None) – 存储您的 ECS 容器日志的 CloudWatch 日志组。仅当您希望在作业完成后在 Airflow UI 中显示日志时才需要此参数。

  • awslogs_region (str | None) – 存储您的 CloudWatch 日志的区域。如果为 None,则与 region 参数相同。如果该参数也为 None,则这是基于您的连接设置的默认 AWS 区域。

  • awslogs_stream_prefix (str | None) – 用于 CloudWatch 日志的流前缀。这应与任务定义的日志配置中指定的前缀匹配。仅当您希望在作业完成后在 Airflow UI 中显示日志时才需要此参数。

  • awslogs_fetch_interval (datetime.timedelta) – ECS 任务日志获取器在每次 CloudWatch 日志获取之间应等待的时间间隔。如果 deferrable 设置为 True,则忽略此参数,并改用 waiter_delay。

  • quota_retry (dict | None) – 配置是否以及如何重试启动新的 ECS 任务,以处理瞬时错误。

  • reattach (bool) – 如果设置为 True,将检查由 task_instance 之前启动的任务是否已在运行。如果是,则操作符将附加到该任务,而不是启动新任务。这是为了避免在 Airflow 和 ECS 之间的连接断开(例如,当 Airflow 工作器重新启动时)而任务仍在运行时重新启动新任务。

  • number_logs_exception (int) – 如果 ECS 任务停止(以便接收带有 ECS 中运行的代码失败的日志的 Airflow 警报),则从最后 CloudWatch 日志中返回的行数。

  • wait_for_completion (bool) – 如果为 True,则等待集群创建完成。(默认值:True)

  • waiter_delay (int) – 如果未设置,则默认使用等待器值,即尝试之间等待的秒数。

  • waiter_max_attempts (int) – 如果未设置,则默认使用等待器值,即尝试的最大次数。

  • deferrable (bool) – 如果为 True,则操作符将异步等待作业完成。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值:False)

  • do_xcom_push – 如果为 True,则操作符会将 ECS 任务 ARN 推送到 XCom,键为 ‘ecs_task_arn’。此外,如果获取日志,则最后一条日志消息将使用键 ‘return_value’ 推送到 XCom。(默认值:False)

ui_color = '#f0ede4'[source]
template_fields: collections.abc.Sequence[str] = ('task_definition', 'cluster', 'overrides', 'launch_type', 'capacity_provider_strategy',...[source]
template_fields_renderers[source]
execute(context)[source]

必须在子类中覆盖。

execute_complete(context, event=None)[source]
on_kill()[source]

覆盖此方法以在任务实例被终止时清理子进程。

在操作符中使用任何线程、子进程或多进程模块都需要清理,否则会留下幽灵进程。

此条目是否有帮助?