将有关作业运行的上下文传递到作业任务中
可以使用动态值引用传递有关作业或任务运行的上下文,例如作业或任务名称、运行标识符或作业运行的开始时间。 动态值引用是模板化变量,当作业任务运行时,这些变量将替换为相应的值。
运行作业时,将替换由双花括号括起来的任务参数变量,并将其追加到作为值的一部分包含的可选字符串值。 例如,要为作业 ID 6 的任何运行传递名为 MyJobId
且值为 my-job-6
的参数,请添加以下任务参数:
{
"MyJobID": "my-job-{{job.id}}"
}
双花括号的内容不会作为表达式进行计算,因此不能在双花括号内执行运算或函数。
对于用户提供的标识符(例如,任务名称、任务值键或包含特殊字符的作业参数名称),必须通过在标识符两边加上反引号 (` `
) 进行转义。 在不进行转义的情况下,只能使用字母数字和下划线字符。
{
"VariableWithSpecialChars": "{{job.parameters.`param$@`}}"
}
引用中的语法错误(例如缺少大括号)将被忽略,值被视为文本字符串。 例如,{{my.value}
作为字符串 "{{my.value}"
传递。 但是,不允许输入属于已知命名空间(例如 {{job.naem}}
)的无效引用。 如果在 UI 中输入了属于已知名称空间的无效引用,则会显示错误消息。
任务完成后,可以在运行详细信息页的“参数”下查看参数的解析值。
支持的值引用
支持以下动态值引用:
参考 | 说明 |
---|---|
{{job.id}} |
分配给作业的唯一标识符。 |
{{job.name}} |
作业运行时作业的名称。 |
{{job.run_id}} |
分配给作业运行的唯一标识符。 |
{{job.repair_count}} |
当前作业运行的修复尝试次数。 |
{{job.start_time.<argument>}} |
基于作业运行开始时间(UTC 时区)的值。 返回值基于 argument 选项。 请参阅日期和时间值的选项。 |
{{job.parameters.<name>}} |
具有 <name> 键的作业级参数的值。 |
{{job.trigger.type}} |
作业运行的触发器类型。 可能的值为 periodic 、one_time 、run_job_task 、file_arrival 、continuous 和 table 。 |
{{job.trigger.file_arrival.location}} |
如果为此作业配置了文件到达触发器,则为存储位置的值。 |
{{job.trigger.time.<argument>}} |
基于触发作业运行的时间(UTC 时区)的值,对于具有 cron 计划的作业,向下舍入到最接近的分钟。 返回值基于 argument 选项。 请参阅日期和时间值的选项。 |
{{task.name}} |
当前任务的名称。 |
{{task.run_id}} |
当前任务运行的唯一标识符。 |
{{task.execution_count}} |
运行当前任务的次数(包括重试和修复)。 |
{{task.notebook_path}} |
当前笔记本任务的笔记本路径。 |
{{tasks.<task_name>.run_id}} |
分配给 <task_name> 的任务运行的唯一标识符。 |
{{tasks.<task_name>.result_state}} |
任务的结果状态 <task_name> 。 可能的值为 success 、failed 、excluded 、canceled 、evicted 、timedout 、upstream_canceled 、upstream_evicted 和 upstream_failed 。 |
{{tasks.<task_name>.error_code}} |
任务 <task_name> 运行时出错的错误代码。 可能的值举例如下:RunExecutionError 、ResourceNotFound 和 UnauthorizedError 。 对于成功的任务,其值为空字符串。 |
{{tasks.<task_name>.execution_count}} |
运行任务 <task_name> 的次数(包括重试和修复)。 |
{{tasks.<task_name>.notebook_path}} |
笔记本任务 <task_name> 的笔记本路径。 |
{{tasks.<task_name>.values.<value_name>}} |
具有由任务 <task_name> 设置的 <value_name> 键的任务值。 |
{{workspace.id}} |
分配给工作区的唯一标识符。 |
{{workspace.url}} |
工作区的 URL。 |
创建作业、编辑作业或使用不同参数运行作业时,可以为任何任务设置这些引用。
还可以在具有任务值的作业中的任务之间传递参数。 请参阅在 Azure Databricks 作业中的任务之间共享信息。
日期和时间值的选项
使用以下参数指定基于时间的参数变量的返回值。 所有返回值都基于时间戳(UTC 时区)。
参数 | 说明 |
---|---|
iso_weekday |
将返回一个介于 1 到 7 的数字,表示时间戳的星期几。 |
is_weekday |
如果时间戳在工作日,则返回 true 。 |
iso_date |
以 ISO 格式返回日期。 |
iso_datetime |
以 ISO 格式返回日期和时间。 |
year |
返回时间戳的年份部分。 |
month |
返回时间戳的月份部分。 |
day |
返回时间戳的日期部分。 |
hour |
返回时间戳的小时部分。 |
minute |
返回时间戳的分钟部分。 |
second |
返回时间戳的秒部分。 |
timestamp_ms |
返回时间戳(以毫秒为单位)。 |
弃用的参数变量
以下参数变量已弃用。 尽管这些引用仍然受支持,但任何新作业或现有作业的更新都应使用 [支持的值引用>(#支持的引用)。 建议的替换引用包含在每个变量的说明中。
变量 | 说明 |
---|---|
{{job_id}} |
分配给作业的唯一标识符。 请改用 job.id 。 |
{{run_id}} |
分配给任务运行的唯一标识符。 请改用 task.run_id 。 |
{{start_date}} |
任务运行的开始日期。 格式为 UTC 时区的 yyyy-MM-dd。 请改用 job.start_time.<argument> 。 |
{{start_time}} |
创建并准备好群集后运行开始执行的时间戳。 格式为 UTC 时区自 UNIX 纪元以来的毫秒数,如 System.currentTimeMillis() 所返回。 请改用 job.start_time.<format> 。 |
{{task_retry_count}} |
第一次尝试运行任务失败后的重试次数。 第一次尝试时的值为 0,每次重试时值会递增。 请改用 task.execution_count 。 |
{{parent_run_id}} |
分配给具有多个任务的作业运行的唯一标识符。 请改用 job.run_id 。 |
{{task_key}} |
分配给作为作业的一部分的任务的唯一名称,该作业具有多个任务。 请改用 task.name 。 |