Azure DevOps 发布管道每次都失败
Azure DevOps Release Pipeline Fails Every Time
目前,正在尝试在 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
创建了发布管道(我只有一个阶段),并添加了一个来自我的构建管道的工件。然后我选择了任务选项卡并在 "Available Azure Service Connections" 下选择了我的现收现付订阅。选择我的订阅后,我的应用程序服务名称在 "App service name" 下拉列表中可用,我选择了它。然后我点击保存并尝试创建一个版本,但每个版本都失败并显示上述错误消息。
我该怎么做才能克服这个问题?
终于找到了解决我的问题的办法。问题出在我设置服务连接的方式上。我去了:
项目设置 -> 服务连接 -> 新服务连接 -> 选择的 azure 资源管理器 -> 选择的服务主体身份验证而不是托管身份验证 -> 出现一个允许我登录并授权的弹出窗口。
然后我在创建发布管道时使用了该服务连接,而不是我上次使用的预先存在的现收现付订阅。
以前,当我尝试这个时,我有一个广告拦截器 运行,它阻止了弹出窗口,允许我在选择服务主体身份验证时进行授权。这导致了 "Unable to authorize account" 错误消息,这就是我首先使用托管身份验证的原因。
在我的例子中,它与我添加的 'enable CORS' 插件的 chrome 扩展有关。禁用后,发布管道运行良好
目前,正在尝试在 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
创建了发布管道(我只有一个阶段),并添加了一个来自我的构建管道的工件。然后我选择了任务选项卡并在 "Available Azure Service Connections" 下选择了我的现收现付订阅。选择我的订阅后,我的应用程序服务名称在 "App service name" 下拉列表中可用,我选择了它。然后我点击保存并尝试创建一个版本,但每个版本都失败并显示上述错误消息。
我该怎么做才能克服这个问题?
终于找到了解决我的问题的办法。问题出在我设置服务连接的方式上。我去了:
项目设置 -> 服务连接 -> 新服务连接 -> 选择的 azure 资源管理器 -> 选择的服务主体身份验证而不是托管身份验证 -> 出现一个允许我登录并授权的弹出窗口。
然后我在创建发布管道时使用了该服务连接,而不是我上次使用的预先存在的现收现付订阅。
以前,当我尝试这个时,我有一个广告拦截器 运行,它阻止了弹出窗口,允许我在选择服务主体身份验证时进行授权。这导致了 "Unable to authorize account" 错误消息,这就是我首先使用托管身份验证的原因。
在我的例子中,它与我添加的 'enable CORS' 插件的 chrome 扩展有关。禁用后,发布管道运行良好