View a markdown version of this page

作业的挂钩、事件和集成点 - 截止日期云

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

作业的挂钩、事件和集成点

Deadline Cloud 提供了多个集成点,您可以在其中围绕作业运行自己的逻辑。集成点是作业生命周期中的一个地方,Deadline Cloud 在其中运行自定义代码或对您配置的服务(例如准备工作程序的脚本或对作业事件做出反应的规则)进行手动控制。您可以使用集成点来调整 Deadline Cloud 以适应您的生产管道:安装软件、设置环境变量、验证或更改作业、处理输出或触发下游自动化。

积分点在三个问题上有所不同:

  • 代码在哪里运行 — 在您的工作站、工作器上或 AWS 云端。

  • 何时运行 — 在提交时、工作之前或之后,或者为了响应事件。

  • 在哪里进行配置 — 在工作站设置、任务捆绑包、队列或舰队属性或您自己的 AWS 账户中。

下图显示了每个集成点在作业生命周期中的运行位置。控制流程,从工作站提交,到工作人员执行,再到账户 AWS 中事件驱动的自动化。

  • 工作站-提交者挂钩和主机配置脚本运行一次。

  • Worker — 队列、作业和步骤环境使用会话范围内的进入和退出操作。任务执行会运行您的工作。相关步骤在任务完成后运行。

  • AWS 账户 — EventBridge 事件、 CloudWatch指标和警报对状态变化进行异步响应。

跨工作站、工作线程和云端的 Job 生命周期集成点。

下表汇总了积分点。根据前面问题的答案选择一个。表格之后的部分描述了每个选项并链接到详细说明。

集成点 继续运行 配置于 它何时运行 用于

提交者挂钩

工作站

工作站配置(所有作业)或任务捆绑包

在提交过程中,在创建作业之前

注入或覆盖环境变量,验证或重写任务包,在提交时与生产跟踪软件同步

主机配置脚本

工作线程

舰队财产(服务管理的舰队)

每个工作器在启动时使用管理员权限执行一次

网络配置,安装需要提升权限的软件

队列环境

工作线程

队列属性

当会话进入或退出时,对于队列中的每个作业

Project-level 配置:非管理员软件安装、共享环境变量、许可证或守护程序设置

Job 环境

工作线程

Job 捆绑包或作业模板

工作前后

Per-job 设置和拆卸

步进环境

工作线程

Job 捆绑包或步骤模板

步骤之前和之后

Per-step 设置和拆卸

依赖步骤

工作线程

Job 捆绑包或步骤模板 (dependsOn)

在同一个作业中执行较早的步骤后,成功完成任务

Post-render 需要本地输出文件的工作,例如将帧编码成影片或生成缩略图

亚马逊 EventBridge (EventBridge) 活动

AWS 云

您的 AWS 账户(规则和目标)

在作业、步骤、任务、队列或预算状态发生变化时

生产跟踪、通知、云端自动化、跨队列链接作业

Amazon CloudWatch (CloudWatch) 指标和警报

AWS 云

你的 AWS 账户

持续不断,超越阈值

没有事件的情况,例如许可证可用性 (LicensesInUse) 和车队容量

在工作站上运行自定义逻辑

提交者挂钩在提交期间运行,也就是作业到达服务之前。您可以为每个工作站配置它们,它们适用于从该工作站提交的所有作业,或者适用于该捆绑包的作业捆绑包中提交的所有作业。提交者挂钩可以在提交流程的不同时刻更改捆绑包。使用它们来注入环境变量、验证提交,或者在提交时与生产跟踪软件同步。

有关更多信息,请参阅 提交挂钩

在工作器上运行自定义逻辑

以下集成点在渲染主机上运行。它们从最宽的范围到最窄的范围是嵌套的:

  • 主机配置脚本以管理员权限在工作器启动时运行一次。主机配置脚本特定于服务托管队列 (SMF)。在客户管理的舰队 (CMF) 上,您可以改为自己制作镜像。使用主机配置脚本进行网络设置和管理员级软件安装。

  • 队列、作业和步骤环境各自定义onEnteronExit操作。这些操作在工作程序的会话进入作用域时运行,并且按相反顺序在会话退出作用域时运行。队列环境是进行项目级配置的好地方,该配置适用于队列中的每个作业,例如共享软件、环境变量以及许可证或守护程序设置。Job 和 step 环境将范围缩小到单个作业或步骤。

  • 依赖步骤添加第二个步骤,该步骤dependsOn用于依赖于渲染步骤。例如,您可以对影片进行渲染然后对其进行编码,或者渲染然后生成缩略图。该步骤保持在同一任务中,因此输出已经是本地的。依赖步骤需要自定义提交者或手写作业包。 Job-to-job 依赖关系不是原生的。要链接单独的作业,请使用云中的事件,如下一节所述。

注意

环境是按会话范围划分的,而不是按任务划分的。onExit操作在会话拆解时运行,而不是在每个任务之后运行。如果要迁移 Deadline 10 任务后回调,请使用依赖步骤而不是环境onExit操作。

有关更多信息,请参阅下列内容:

响应云端事件

EventBridge CloudWatch 让您在不消耗农场容量的情况下对工作活动做出反应。当您的逻辑响应工作结果而不是作为作业的一部分运行时,请使用它们。

  • Deadline Cloud 将带有源的事件发送aws.deadline到您 AWS 账户中的默认事件总线。事件包括作业、步骤和任务状态变更、舰队规模建议和预算阈值。规则、 AWS Lambda (Lambda) 函数和死信队列 (DLQ) 归您所有。将规则连接到 Lambda 函数以进行通知、资产注册或跨队列链接任务(事件到 Lambda 或 () 到)。CreateJob交付是尽力而为,事件可能会失序,因此请让您的消费者具有等性,并配置重试和 DLQ。

  • CloudWatch 指标和警报涵盖 EventBridge 不包括的情况,最重要的是许可证可用性和车队容量。不存在许可证可用性事件,因此您可以对LicensesInUse指标和限制计数发出警报。该Fleet Size Recommendation Change事件和RecommendedFleetSize指标还推动了客户管理的车队自动扩展。

有关更多信息,请参阅下列内容:

选择一个集成点

使用以下指导来选择满足常见需求的集成点:

  • 要在提交作业之前对其进行更改,请使用提交者挂钩。

  • 要在渲染主机上围绕工作运行逻辑,请使用主机配置脚本或队列、作业或步骤环境。选择最广泛的适用范围,并使用队列环境进行项目级配置。

  • 要在作业输出仍处于本地状态时对其进行处理,请使用依赖步骤。

  • 要在不消耗服务器场容量的情况下对工作结果做出反应,请使用带有 Lambda 函数的 EventBridge 规则。

  • 对于没有事件的情况,例如许可证或容量限制,请使用 CloudWatch警报。

其他资源

有关相关概念和参考资料,请参阅以下内容: