Azure DevOps发布管道每次都会失败

时间:2019-02-07 19:42:12

标签: azure deployment azure-devops azure-pipelines-release-pipeline azure-devops-hosted-agent

当前,尝试在Azure Devops中配置发布管道。我已经成功创建了一个CI管道,该管道正在成功运行和运行测试。我的发布管道使用了来自最新CI构建的工件,应该将其部署到Azure。当我查看日志时,可以看到以下内容已成功完成:

  • 初始化代理
  • 初始化工作
  • 下载arifact

,然后“ Deploy to Azure App Service”失败,日志显示以下详细信息:

2019-02-07T19:06:57.5433805Z Got service connection details for Azure App Service:'MyApp'
2019-02-07T19:06:57.5487495Z ##[error]Error: Failed to get resource ID for resource type 'Microsoft.Web/Sites' and resource name 'MyAPP'. Error: Could not fetch access token for Managed Service Principal. Please configure Managed Service Identity (MSI) for virtual machine 'https://aka.ms/azure-msi-docs'. Status code: 400, status message: Bad Request
2019-02-07T19:06:57.5496340Z Failed to add release annotation. TypeError: Cannot read property 'getApplicationSettings' of undefined

到目前为止,我在此方面找不到很多帮助。我通过从管道第1阶段(我只有一个阶段)的模板中选择Azure App Service deployment来创建发布管道,并添加了一个来自构建管道的工件。然后,我选择“任务”选项卡,并在“可用的Azure服务连接”下选择了“按需购买”订阅。选择订阅后,我的应用程序服务名称在“应用程序服务名称”下拉列表中变为可用,然后选择了它。然后,我点击保存并尝试创建一个发行版,但每个发行版均失败,并显示上述错误消息。

该如何克服?

2 个答案:

答案 0 :(得分:2)

最后找到了解决我问题的方法。问题出在我建立服务连接的方式上。我去了:

项目设置->服务连接->新服务连接->选择azure资源管理器->选择服务主体身份验证INSTEAD OF受管身份验证->出现一个弹出窗口,允许我登录并进行授权。

然后,我在创建发布管道时使用了该服务连接,而不是我上次使用的现存的即付即用订阅。

以前,当我尝试这样做时,我运行了一个adblocker,它阻止了弹出窗口,当我选择服务主体身份验证时,该弹出窗口允许我进行授权。这导致出现“无法授权帐户”错误消息,这就是为什么我首先使用托管身份验证的原因。

答案 1 :(得分:0)

就我而言,这与我添加了“启用 CORS”插件的 chrome 扩展有关。禁用后,发布管道运行良好