我有一份工作 A 需要调用 Azkaban 流“F”作为依赖项。如何提及作业 A 对流 F 的依赖性?
这是我现在与获取远程存储流“F”相关的内容:
session = remote.Session("user@https://AZKABANURL")
workflows = session.get_workflows("FlowFProjectName")
flows = workflows[u"flows"]
flow_id = flows[0]["flowId"]
workflows = session.get_workflow_info("FlowFProjectName", flow_id)
node_id = workflows["nodes"][0]["id"]
现在我有了 node_id ,它是流 F 中最后一个作业的名称,如何在作业 A 中添加流 F 的依赖项?是这样吗?
jobs["A"] = {
"type": "command",
"command": 'echo "Hello World"',
"dependencies": "F"
}
执行以下操作会使我在上传到 Azkaban 时出错(通过将此作业 A 捆绑到项目中):
jobs["a"] = Job({"type": "command", "command": 'echo "Hello World"',"dependencies": node_id})
这是错误:
azkaban.util.AzkabanError: Installation Failed.
Error found in upload. Cannot upload.
a cannot find dependency <node_id>
在这里,node_id 是我隐藏的作业的实际名称。
有人可以建议我在工作中添加这些对外部流程的依赖吗?外部流程在 Azkaban 上(这就是我必须使用 Azkaban.remote 的原因)。