如何使用 YAML 管道触发数据块作业

问题描述 投票:0回答:1

如何使用 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)

您能否建议触发作业的正确方法或者这段代码有什么问题?

感谢您提前提供的帮助。

azure-devops azure-databricks azure-devops-rest-api azure-pipelines-yaml databricks-workflows
1个回答
0
投票

到目前为止,我已经做到了,但运行此代码时出现错误:

您可以分享一下错误信息吗?

通过查看您的示例代码,您可以检查以下内容吗?

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

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.