gpt4 book ai didi

Azure Devops 上的 Azure 虚拟机规模集 - 无法识别预定义变量

转载 作者:行者123 更新时间:2023-12-03 03:50:42 25 4
gpt4 key购买 nike

我构建了一个规模集 (Windows),并且可以在我的 Azure Devops 自定义代理池上成功运行简单的命令,并使用基于 Windows 19 Server Core 的自定义 VM guide .

但是,当我尝试访问任何 Azure Devops predefined variables 时在我的任何任务中,他们都没有得到认可。例如执行:

- job: jobname
timeoutInMinutes: 200
pool:
name: poolname
vmImage: vmname
steps:
- powershell: |
echo " Branch: $(Build.Branch)"

给我:

Build.Branch : The term 'Build.Branch' is not recognized as the name of a cmdlet, function, script file, or operable 

如果我在 Azure 门户中检查我的规模集,扩展 Microsoft.Azure.DevOps.Pipelines.Agent 已成功安装并升级到实例上。

如果在 Windows 提供的代理(例如 windows-2019)中运行,相同的任务和 Powershell 可以正常工作。任何想法为什么会发生这个错误?我错过了什么吗?

最佳答案

我还在我的 VMSS Windows-2019 代理上测试了 shell 脚本任务,它可以正确打印管道中预定义变量的值。我没有收到任何错误。

我尝试了通过在Azure Cloud Shell上执行相关Azure CLI创建的VMSS,以及在Azure Portal Web UI上手动创建的VMSS,两者都可以正常工作,没有任何错误。

请按照以下步骤检查:

  1. 在不同的管道、不同的项目中尝试 VMSS,看看是否出现相同的问题。
  2. 尝试创建新的 VMSS(您可以尝试手动创建),看看新的 VMSS 上是否也出现该问题。
  3. 检查管道定义(YAML 文件)中是否存在任何语法或格式问题。下面是一个简单的管道作为引用,我在我这边测试过,可以正常工作。
jobs:
- job: JobA
displayName: 'Job A'
pool: 'My VMSS Agents Pool'
steps:
- task: PowerShell@2
displayName: 'Show predefined variables'
inputs:
targetType: inline
script: |
Write-Host "Build.SourceBranch = $(Build.SourceBranch)"
echo "Build.SourceBranchName = $(Build.SourceBranchName)"

- job: JobB
displayName: 'Job B'
pool: 'My VMSS Agents Pool'
steps:
- task: PowerShell@2
displayName: 'Show predefined variables'
inputs:
targetType: inline
script: |
Write-Host "Build.Repository.Name = $(Build.Repository.Name)"
echo "Build.Repository.ID = $(Build.Repository.ID)"

[已更新]

我还在 Microsoft 托管代理 windows-2019 和我的 VMSS 上测试了变量“Build.Branch”,它既不适用于 Microsoft 托管代理 windows-2019,也不适用于我的VMSS。正如@DanielMann 所提到的,“Build.Branch”不是 Azure Pipelines 的预定义变量。所以,它不会被识别是正确的。

enter image description here

您评论说,使用 Microsoft 托管代理 windows-2019 时,变量“Build.Branch”可以在您的管道中正常工作,您能否与相关人员分享管道运行日志或屏幕截图来显示这一点?就像我上面展示的 GIF 图像一样。

此外,Microsoft Hosted Agent windows-2019 和您的 VMSS 是否运行相同的管道?如果它们运行不同的管道,请检查您是否在 Microsoft 托管代理 windows-2019 上运行的管道上定义了自定义变量“Build.Branch”。

关于Azure Devops 上的 Azure 虚拟机规模集 - 无法识别预定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66891614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com