【问题标题】:Azure Pipelines - Output variable from python script file to pipeline variableAzure Pipelines - 从 python 脚本文件输出变量到管道变量
【发布时间】:2021-11-04 16:17:45
【问题描述】:

我尝试了 Stackoverflow 的几篇文章和主题,但似乎无处可去。我正在尝试从在 YAML 步骤中调用的 .py 文件中获取一个变量,并将该变量设置为全局使用。

在我的 .py 文件中我有

print(f'##vso[task.setvariable variable=AMLPipelineId;isOutput=true]{pipelineId}')

然后在我的 YAML 管道步骤中,我有

- task: AzurePowerShell@5
  displayName: 'Run AML Pipeline'
   inputs:
     azureSubscription: '$(azureSubscription)'
     ScriptType: 'InlineScript'
     name: AmlPipeline
     azurePowerShellVersion: 'LatestVersion'
     pwsh: true
     Inline: |
             $username = "$(ARM_CLIENT_ID)"
             $password = "$(ARM_CLIENT_SECRET)"
             $tenantId = "$(ARM_TENANT_ID)"
                  
             python $(Pipeline.Workspace)/AML_Pipeline/build_aml_pipeline.py --wsName $(wsName) --resourceGroup $(ResourceGroupName) --subscriptionId $(subId)

                 
             $MLPipelineId = $AmlPipeline.AMLPipelineId

但是这个变量好像是空的。我知道还有其他使用“设置变量”的方法,但这是我最近的尝试,例如print('##vso[task.setvariable variable=version;]%s' % (version))

我目前遵循的方法:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch

【问题讨论】:

    标签: azure-devops yaml azure-pipelines


    【解决方案1】:
    1. 您不需要 isOutput=true - 只有在不同作业或阶段之间引用变量时才需要。
    2. "You cannot use the variable in the step that it is defined." - 将该脚本分为两步:一是运行您的 .py 文件,二是使用新定义的变量。

    【讨论】:

    • 我已将我的 python 代码更新为 print(f'##vso[task.setvariable variable=AMLPipelineId]{pipelineId}') 并且我进入了一个单独的步骤:$MLPipelineId = $AMLPipelineId 并且它仍然是空的。
    • 尝试使用$(AmlPipeline)(引用管道变量的语法)或$env:AmlPipeline(管道变量也会自动映射到环境变量)。
    【解决方案2】:

    我用print('##vso[task.setvariable variable=<Variable-in-Pipeline]+<output-variable>')

    Variable-in-Pipeline // 给定名称应在 Azure Devops 管道中使用,并应作为空字符串添加到管道变量中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 2022-07-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      相关资源
      最近更新 更多