airflow.providers.amazon.aws.operators.batch

AWS Batch 服务。

模块内容

BatchOperator

在 AWS Batch 上执行作业。

BatchCreateComputeEnvironmentOperator

创建 AWS Batch 计算环境。

class airflow.providers.amazon.aws.operators.batch.BatchOperator(*, job_name, job_definition, job_queue, container_overrides=None, array_properties=None, ecs_properties_override=None, eks_properties_override=None, node_overrides=None, share_identifier=None, scheduling_priority_override=None, parameters=None, retry_strategy=None, job_id=None, waiters=None, max_retries=4200, status_retries=None, aws_conn_id=None, region_name=None, tags=None, wait_for_completion=True, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poll_interval=30, awslogs_enabled=False, awslogs_fetch_interval=timedelta(seconds=30), **kwargs)[源代码]

基类: airflow.models.BaseOperator

在 AWS Batch 上执行作业。

另请参阅

有关如何使用此操作符的更多信息,请查看指南:提交新的 AWS Batch 作业

参数
  • job_name (str) – 将在 AWS Batch 上运行的作业的名称(可使用模板)

  • job_definition (str) – AWS Batch 上的作业定义名称

  • job_queue (str) – AWS Batch 上的队列名称

  • container_overrides (dict | None) – boto3 的 containerOverrides 参数(可使用模板)

  • ecs_properties_override (dict | None) – boto3 的 ecsPropertiesOverride 参数(可使用模板)

  • eks_properties_override (dict | None) – boto3 的 eksPropertiesOverride 参数(可使用模板)

  • node_overrides (dict | None) – boto3 的 nodeOverrides 参数(可使用模板)

  • share_identifier (str | None) – 作业的共享标识符。如果作业队列没有调度策略,请勿指定此参数。

  • scheduling_priority_override (int | None) – 作业的调度优先级。调度优先级较高的作业将在调度优先级较低的作业之前调度。这会覆盖作业定义中的任何调度优先级

  • array_properties (dict | None) – boto3 的 arrayProperties 参数

  • parameters (dict | None) – boto3 的 parameters 参数(可使用模板)

  • job_id (str | None) – 作业 ID,通常在 submit_job 操作获取由 AWS Batch 定义的 jobId 之前未知 (None)

  • waiters (Any | None) – BatchWaiters 对象(请参阅下面的注释);如果为 None,则使用 max_retries 和 status_retries 进行轮询。

  • max_retries (int) – 指数退避重试次数,4200 = 48 小时;仅当 waiters 为 None 时才使用轮询

  • status_retries (int | None) – 获取作业状态的 HTTP 重试次数,10;仅当 waiters 为 None 时才使用轮询

  • aws_conn_id (str | None) – AWS 凭证/区域名称的连接 ID。如果为 None,将使用凭证 boto3 策略。

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

  • tags (dict | None) – 如果为 None,则不会提交任何标签,提交到 AWS Batch 作业的标签集合

  • deferrable (bool) – 在可延期模式下运行操作符。

  • awslogs_enabled (bool) – 指定是否应打印来自 CloudWatch 的日志,False。 如果它是数组作业,则只会打印第一个任务的日志。

  • awslogs_fetch_interval (datetime.timedelta) – 获取 CloudWatch 日志的间隔,30 秒。

  • poll_interval (int) – (仅限可延期模式)轮询之间等待的时间(以秒为单位)。

注意

任何自定义 waiter 都必须为以下调用返回 waiter: .. code-block:: python

waiter = waiters.get_waiter(“JobExists”) waiter = waiters.get_waiter(“JobRunning”) waiter = waiters.get_waiter(“JobComplete”)

ui_color = '#c3dae0'[源代码]
arn: str | None[源代码]
template_fields: collections.abc.Sequence[str] = ('job_id', 'job_name', 'job_definition', 'job_queue', 'container_overrides', 'array_properties',...[源]
template_fields_renderers[源]
hook()[源]
execute(context)[源]

提交并监控 AWS Batch 作业。

引发

AirflowException

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

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

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

submit_job(context)[源]

提交 AWS Batch 作业。

引发

AirflowException

monitor_job(context)[源]

监控 AWS Batch 作业。

如果任务是使用 execution_timeout 创建的,则可能会引发异常或 AirflowTaskTimeout。

class airflow.providers.amazon.aws.operators.batch.BatchCreateComputeEnvironmentOperator(compute_environment_name, environment_type, state, compute_resources, unmanaged_v_cpus=None, service_role=None, tags=None, poll_interval=30, max_retries=None, aws_conn_id=None, region_name=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[源]

基类: airflow.models.BaseOperator

创建 AWS Batch 计算环境。

另请参阅

有关如何使用此操作符的更多信息,请查看指南:创建 AWS Batch 计算环境

参数
  • compute_environment_name (str) – AWS batch 计算环境的名称(已模板化)。

  • environment_type (str) – 计算环境的类型。

  • state (str) – 计算环境的状态。

  • compute_resources (dict) – 有关计算环境管理的资源的详细信息(已模板化)。更多详细信息:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/batch.html#Batch.Client.create_compute_environment

  • unmanaged_v_cpus (int | None) – 未托管计算环境的最大 vCPU 数量。仅当 type 参数设置为 UNMANAGED 时才支持此参数。

  • service_role (str | None) – 允许 Batch 代表您调用其他 AWS 服务的 IAM 角色(已模板化)。

  • tags (dict | None) – 您应用于计算环境以帮助您分类和组织资源的标签。

  • poll_interval (int) – 在环境状态的两次轮询之间等待的秒数。仅当 deferrable 为 True 时才有用。

  • max_retries (int | None) – 轮询环境状态的次数。仅当 deferrable 为 True 时才有用。

  • aws_conn_id (str | None) – AWS 凭证/区域名称的连接 ID。如果为 None,将使用凭证 boto3 策略。

  • region_name (str | None) – 在 AWS Hook 中使用的区域名称。如果提供,则覆盖连接中的 region_name

  • deferrable (bool) – 如果为 True,操作符将异步等待环境创建。此模式需要安装 aiobotocore 模块。(默认值:False)

template_fields: collections.abc.Sequence[str] = ('compute_environment_name', 'compute_resources', 'service_role')[源]
template_fields_renderers[源]
hook()[源]

创建并返回 BatchClientHook。

execute(context)[源]

创建 AWS batch 计算环境。

execute_complete(context, event=None)[源]

此条目是否有帮助?