az 标签更新错误:(MissingSubscription)请求没有订阅或有效的租户级资源提供程序

Ale*_*ber 6 tags azure azure-cli azure-resource-group azure-pipelines

我正在尝试在 Azure 资源组上设置名为“GitBranch”的标签:

Azure 门户

当我在 PowerShell 窗口中调用命令时 -

az tag update --resource-id "/subscriptions/79ca5b...7f/resourceGroups/ccg-afarber2" --subscription "79ca5b...7f" --operation merge --tags GitBranch=Test
Run Code Online (Sandbox Code Playgroud)

然后它就起作用了:

PowerShell 窗口

但是当我在 Git Bash 窗口中尝试相同的命令时,它失败了。

我之前也尝试过调用以下命令,并且还尝试过双引号和单引号

az login
az account set --subscription "79ca5b....7f"
Run Code Online (Sandbox Code Playgroud)

但错误仍然是一样的:

错误:(MissingSubscription)请求没有订阅或有效的租户级资源提供程序。

Git Bash 窗口

我尝试让该命令在 bash 中工作的原因是因为我的 Azure 管道任务遇到了相同的错误:

  - task: AzureCLI@2
    displayName: 'Set Resource Group tag'
    inputs:
      azureSubscription: '${{ parameters.ArmConnection }}'
      scriptType: 'bash'
      scriptLocation: 'inlineScript'
      inlineScript: |
        az tag update \
          --resource-id '/subscriptions/${{ parameters.SubscriptionId }}/resourceGroups/${{ parameters.ResourceGroupName }}' \
          --subscription '${{ parameters.SubscriptionId }}' \
          --operation Merge --tags \
          GitBranch=$(git branch --show-current)
Run Code Online (Sandbox Code Playgroud)

Azure管道错误

请问这里发生了什么事?

在我的电脑上,我安装了 azure-cli 2.28.0。

Ale*_*ber 9

我自己找到了解决办法!

在 AzureCLI 管道任务中,当运行 az cli 命令(其参数以斜杠开头)时,MinGW bash 将自动附加当前路径。

为了防止这种情况,您可以将以下变量添加到 az 命令之前:

MSYS_NO_PATHCONV=1 az ....
Run Code Online (Sandbox Code Playgroud)

双斜杠也有效:

Git bash 窗口