airflow.providers.microsoft.azure.operators.batch

模块内容

AzureBatchOperator

在 Azure Batch 服务上执行作业。

class airflow.providers.microsoft.azure.operators.batch.AzureBatchOperator(*, batch_pool_id, batch_pool_vm_size, batch_job_id, batch_task_command_line, batch_task_id, vm_node_agent_sku_id, vm_publisher=None, vm_offer=None, sku_starts_with=None, vm_sku=None, vm_version=None, os_family=None, os_version=None, batch_pool_display_name=None, batch_job_display_name=None, batch_job_manager_task=None, batch_job_preparation_task=None, batch_job_release_task=None, batch_task_display_name=None, batch_task_container_settings=None, batch_start_task=None, batch_max_retries=3, batch_task_resource_files=None, batch_task_output_files=None, batch_task_user_identity=None, target_low_priority_nodes=None, target_dedicated_nodes=None, enable_auto_scale=False, auto_scale_formula=None, azure_batch_conn_id='azure_batch_default', use_latest_verified_vm_image_and_sku=False, timeout=25, should_delete_job=False, should_delete_pool=False, **kwargs)[source]

基类: airflow.models.BaseOperator

在 Azure Batch 服务上执行作业。

参数
  • batch_pool_id (str) – 一个字符串,唯一标识帐户中的池。

  • batch_pool_vm_size (str) – 池中虚拟机的大小

  • batch_job_id (str) – 一个字符串,唯一标识帐户中的作业。

  • batch_task_command_line (str) – 任务的命令行

  • batch_task_id (str) – 一个字符串,唯一标识作业中的任务。

  • batch_pool_display_name (str | None) – 池的显示名称。显示名称不必唯一

  • batch_job_display_name (str | None) – 作业的显示名称。显示名称不必唯一

  • batch_job_manager_task (azure.batch.models.JobManagerTask | None) – 作业启动时要启动的作业管理器任务的详细信息。

  • batch_job_preparation_task (azure.batch.models.JobPreparationTask | None) – 作业准备任务。如果设置,Batch 服务将在该计算节点上启动该作业的任何任务之前,在该节点上运行作业准备任务。如果设置了 batch_job_release_task,则为必需。

  • batch_job_release_task (azure.batch.models.JobReleaseTask | None) – 作业发布任务。用于撤消作业准备任务对计算节点所做的更改

  • batch_task_display_name (str | None) – 任务的显示名称。显示名称不必唯一

  • batch_task_container_settings (azure.batch.models.TaskContainerSettings | None) – 任务在其下运行的容器的设置

  • batch_start_task (azure.batch.models.StartTask | None) – 指定为在每个计算节点加入池时运行的任务。该任务在计算节点添加到池时或计算节点重新启动时运行。

  • batch_max_retries (int) – 在认为此批处理操作失败之前重试的次数。默认值为 3

  • batch_task_resource_files (list[azure.batch.models.ResourceFile] | None) – Batch 服务在运行命令行之前将下载到计算节点的文件列表。

  • batch_task_output_files (list[azure.batch.models.OutputFile] | None) – Batch 服务在运行命令行后将从计算节点上传的文件列表。

  • batch_task_user_identity (azure.batch.models.UserIdentity | None) – 任务在其下运行的用户标识。如果省略,任务将作为任务唯一的非管理用户运行。

  • target_low_priority_nodes (int | None) – 池中所需的低优先级计算节点数。如果 enable_auto_scale 设置为 true,则不得指定此属性。

  • target_dedicated_nodes (int | None) – 池中所需的专用计算节点数。如果 enable_auto_scale 设置为 true,则不得指定此属性。

  • enable_auto_scale (bool) – 池大小是否应随时间自动调整。默认值为 false

  • auto_scale_formula (str | None) – 池中所需的计算节点数的公式。如果 enableAutoScale 设置为 false,则不得指定此属性。如果 enableAutoScale 设置为 true,则为必需。

  • azure_batch_conn_idAzure Batch 连接 ID

  • use_latest_verified_vm_image_and_sku (bool) – 是否使用 Batch 帐户中最新的已验证虚拟机映像和 SKU。默认为 False。

  • vm_publisher (str | None) – Azure 虚拟机市场映像的发布者。例如,Canonical 或 MicrosoftWindowsServer。如果 use_latest_image_and_sku 设置为 True,则为必填项

  • vm_offer (str | None) – Azure 虚拟机市场映像的优惠类型。例如,UbuntuServer 或 WindowsServer。如果 use_latest_image_and_sku 设置为 True,则为必填项

  • sku_starts_with (str | None) – 虚拟机 SKU 的起始字符串。如果 use_latest_image_and_sku 设置为 True,则为必填项

  • vm_sku (str | None) – 要使用的虚拟机 SKU 的名称

  • vm_version (str | None) – 虚拟机的版本

  • vm_version – str | None

  • vm_node_agent_sku_id (str) – 虚拟机的节点代理 SKU ID

  • os_family (str | None) – 要安装在池中虚拟机上的 Azure 来宾操作系统系列。

  • os_version (str | None) – 操作系统系列的版本

  • timeout (int) – 等待作业完成的时间(以分钟为单位)。默认为 25。

  • should_delete_job (bool) – 执行后是否删除作业。默认为 False。

  • should_delete_pool (bool) – 作业执行后是否删除池。默认为 False。

template_fields: collections.abc.Sequence[str] = ('batch_pool_id', 'batch_pool_vm_size', 'batch_job_id', 'batch_task_id', 'batch_task_command_line')[源代码]
ui_color = '#f0f0e4'[源代码]
hook()[源代码]

创建并返回一个 AzureBatchHook(已缓存)。

execute(context)[源代码]

在创建运算符时派生。

Context 与渲染 Jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

on_kill()[源代码]

当任务实例被终止时,重写此方法以清理子进程。

运算符中对 threading、subprocess 或 multiprocessing 模块的任何使用都需要清理,否则会留下后台进程。

clean_up(pool_id=None, job_id=None)[源代码]

删除批处理帐户中给定的池和作业。

参数
  • pool_id (str | None) – 要删除的池的 ID

  • job_id (str | None) – 要删除的作业的 ID

此条目是否有帮助?