如何使用 Yaml 触发任何数据块作业?我在存储库中保存了一个 job1.json 文件,其 jobId 如下所示:
{
"Job_ID": "12345678910"
}
到目前为止,我已经做到了,但运行此代码时出现错误:
- name: configu
value: 'rel'
- name: Bld1
value: 'test'
- name: BHP
value: '1.1'
trigger:
none
stages:
- stage: Bld
jobs:
- job: Bld
displayName: AG
pool:
vmImage: windows-****
steps:
- checkout: self
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: $(build.sourcesdirectory)
Contents: '*\'
TargetFolder: $(build.artifactstagingdirectory)
- task: PublishPipelineArtifact@1
displayName: 'Publish : $(buildParameters.artifactName)'
inputs:
path: $(build.artifactstagingdirectory)
artifactName: $(buildParameters.artifactName)
- stage: Dev
variables:
- group: abc
- group: def
jobs:
- job: RunDatabricksJob
displayName: 'Run Databricks Job'
pool:
vmImage: 'windows-****'
steps:
- task: AzureCLI@2
inputs:
azureSubscription: 'test1'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
token=$(az account get-access-token \
--resource akbfksjfwfkjvjkrbfj \
--query "accessToken" \
--output tsv)
echo "##vso[task.setvariable variable=azureadtoken;isoutput=true]$token"
name: tokengen
- task: PythonScript@0
- script: |
job_id=$(python -c "import json; print(json.load(open('$(System.DefaultWorkingDirectory)/../$(BuildParameters.ArtifactName)/job1.json'))['job_id'])")
databricks jobs run-now --job-id $job_id
env:
DATABRICKS_HOST: $(hostname)
DATABRICKS_TOKEN: $(tokengen.azureadtoken)
您能否建议触发作业的正确方法或者这段代码有什么问题?
感谢您提前提供的帮助。
到目前为止,我已经做到了,但运行此代码时出现错误:
您可以分享一下错误信息吗?
通过查看您的示例代码,您可以检查以下内容吗?
1 .请检查
Job_ID
是否有大小写拼写错误。
json.load(open('xxx/xxx/job1.json'))['job_id'])
2 请检查您是否在 python 中使用
job_id
定义了变量 $
。变量名称只能包含字母数字字符和下划线(A-z、0-9 和 _ )。如果是这样,请删除 $
字符。
3 请检查
-
前面是否有script
。
样品:
- task: PythonScript@0
inputs:
script: |
import json
job_id =json.load(open('$(System.DefaultWorkingDirectory)/../$(BuildParameters.ArtifactName)/job1.json'))['Job_ID'])
# print job_id
print(job_id)
databricks jobs run-now --job-id job_id
希望能帮到你。