我正在尝试构建项目并将其部署到Azure Web App。我已经设置了Azure Web App。对于构建管道,我从Microsoft获得了以下构建YAML模板:
我不知道YAML模板的{{ azureRmConnection.Id }}
部分中的variables
是指什么或如何使用它。
双括号({{ }}
)语法用于计算表达式,而管道变量则以dollar($()
)语法引用。因此,我认为azureRmConnection
是构建应该已经可以访问的东西,而不是需要设置管道变量的东西。
搜索了Microsoft的文档,Google和StackOverflow。
在我的Azure Web应用程序上查找,试图找到显而易见的内容。
将Web App的订阅ID添加为对名称为azureRmConnection.Id
的管道的变量引用。
有关双括号语法的参考Ansible YAML语法文档:https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: '{{ azureRmConnection.Id }}'
我希望构建具有有效的azureRmConnection.Id
,因此不会因缺少或无效而失败。
构建失败,出现以下错误:
存在资源授权问题:“管道无效。作业部署:步骤输入azureSubscription引用服务连接{{azureRmConnection.Id}},该服务连接不存在。服务连接不存在或尚未被授权有关授权的详细信息,请参见https://aka.ms/yamlauthz。“
您需要做的是遵循this link并创建一个AzureRm服务连接,并使用其名称代替该占位符:
azureSubscription: 'my-azurerm-connection-name-goes-here'
我尝试使用'Node.js React Web App到Azure上的Linux创建新管道。我确实以为我已经尝试过了,但是以前我一定使用过其他方法。这有几个阶段。
该向导使我可以从下拉菜单中选择Azure Web App和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应用程序的名称。
构建现已成功运行。