gpt4 book ai didi

azure - 无法在 Azure DevOps 管道中运行嵌套的 az cli 命令

转载 作者:行者123 更新时间:2023-12-03 02:28:11 27 4
gpt4 key购买 nike

我正在尝试使用嵌套的 az cli 命令运行 Azure DevOps 任务。我已经在 azure-pipelines.yaml 的开头定义了变量

trigger:
- main

pool:
vmImage: 'ubuntu-latest'

variables:
resourceGroup: test1234
acrName: taerarawrr2.azurecr.io

在任务中,我可以使用 $(resourceGroup) 和 $(acrName) 访问这些值。现在我想运行一个使用这两个变量的 az cli 任务,并将命令的输出保存在一个新变量 (ACR_LOGIN_SERVER) 中,以便稍后在任务中使用。

- task: AzureCLI@2
displayName: Run docker image
inputs:
azureSubscription: serviceprincipaltest
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
$ACR_LOGIN_SERVER= $(az acr show --name $(acrName) --resource-group $(resourceGroup) --query "loginServer" --output tsv)
echo $(ACR_LOGIN_SERVER)

然而,由于某种原因,这失败了。我猜这个嵌套命令的语法有问题。我尝试过在不同位置使用括号、$ 和引号,但似乎没有任何效果。我也没有找到任何示例来说明如何正确格式化此类内联脚本。任何帮助将不胜感激。

最佳答案

这是Azure CLI task的链接.

您在 az acr 命令 周围有 $(),它会尝试查找类似名称的变量,但该变量不存在。请删除它并使用如下脚本:

call {your command}>tmpFile1
set /p myvar= < tmpFile1
echo "##vso[task.setvariable variable=testvar;]%myvar%"

FOR /F "tokens=* USEBACKQ" %%F IN (`{your command}`) DO (
SET var=%%F
)
echo "##vso[task.setvariable variable=testvar;]%var%"

查看此线程:Set Output Variable in Azure CLI task on VSTS

关于azure - 无法在 Azure DevOps 管道中运行嵌套的 az cli 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66224852/

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