1

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

  • 初始化代理
  • 初始化作业
  • 下载神器

然后“部署到 Azure 应用服务”失败,日志显示以下详细信息:

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 服务连接”下选择了我的即用即付订阅。选择我的订阅后,我的应用服务名称在“应用服务名称”下拉列表中可用,我选择了它。然后我点击保存并尝试创建一个版本,但每个版本都失败并显示上述错误消息。

我能做些什么来克服这个问题?

4

2 回答 2

5

终于找到了解决我的问题的方法。问题在于我设置服务连接的方式。我去了:

项目设置 -> 服务连接 -> 新服务连接 -> 选择的 azure 资源管理器 -> 选择的服务主体身份验证代替托管身份身份验证 -> 出现允许我登录和授权的弹出窗口。

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

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

于 2019-02-07T20:29:14.087 回答
0

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

于 2021-07-22T09:31:35.507 回答