【问题标题】:What is 'azureRmConnection.Id' in this Azure Pipelines build yaml template and how do I use it?此 Azure Pipelines 构建 yaml 模板中的“azureRmConnection.Id”是什么以及如何使用它?
【发布时间】:2020-03-06 07:33:15
【问题描述】:

问题总结

我正在尝试构建项目并将其部署到 Azure Web 应用程序。我已经设置了 Azure Web App。对于构建管道,我采用了来自 Microsoft 的以下构建 YAML 模板:

https://github.com/microsoft/azure-pipelines-yaml/blob/master/templates/node.js-react-webapp-to-linux-on-azure.yml

我不知道 YAML 模板的variables 部分中的{{ azureRmConnection.Id }} 指的是什么或如何使用它。

背景

双大括号 ({{ }}) 语法用于计算表达式,而管道变量使用美元 ($()) 语法引用。所以我认为azureRmConnection 是构建应该已经可以访问的东西,而不是需要设置管道变量。

我尝试过的

代码

variables:

  # Azure Resource Manager connection created during pipeline creation
  azureSubscription: '{{ azureRmConnection.Id }}'

预期和实际结果

预期

我希望构建有一个有效的azureRmConnection.Id,因此不会因为它丢失或无效而失败。

实际

构建失败并出现以下错误:

存在资源授权问题:“管道无效。作业部署:步骤输入 azureSubscription 引用服务连接 {{ azureRmConnection.Id }} 无法找到。服务连接不存在或未经授权使用。授权详情请参考https://aka.ms/yamlauthz。"

【问题讨论】:

  • 很高兴您找到了解决方案。您可以接受它作为答案。它将帮助有相同错误的其他社区用户。谢谢。 :)

标签: azure azure-devops azure-pipelines azure-web-app-service azure-pipelines-build-task


【解决方案1】:

我尝试使用“Node.js React Web App to Linux on Azure”向导创建新管道。我确实认为我已经尝试过了,但我以前一定用过不同的。这还有几个阶段。

该向导允许我从下拉菜单中选择我的 Azure Web 应用程序和 Azure 订阅。

现在 YAML 中的变量如下所示:

variables:
  azureSubscription: '1234xx56-xx7x-[...]'
  webAppName: 'my-azure-web-app-name'
  environmentName: 'my-azure-web-app-name'

azureSubscription 是我的 Azure 订阅 ID。

webAppName 是我之前在 Azure 门户上设置的 Azure Web 应用程序的名称。

构建现已成功运行。

【讨论】:

    【解决方案2】:

    您需要做的是关注this link 并创建一个 AzureRm 服务连接并使用其名称代替该占位符:

    azureSubscription: 'my-azurerm-connection-name-goes-here'
    

    【讨论】:

    • (留下几个 cmets 并删除,因为我已经解决了。)感谢您提供的信息,我按照您链接的文档进行操作,但仍然有一些问题不知道每个值到底应该放什么YAML。我将发布最终解决方法的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2011-01-11
    • 2021-01-08
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多