Azure DevOps 无法部署到 Azure Web 应用程序。

15
目前正在尝试从由公司A拥有的Azure DevOps下的发布管道中部署应用程序到由公司B拥有的Azure上托管的Azure App,但在尝试停止Azure App时一直出现以下错误: “错误: 无法获取资源类型为'Microsoft.Web/Sites'且资源名称为'AppName'的资源ID。 错误: 无法获取托管服务主体的访问令牌,请配置虚拟机的托管服务标识(MSI)。https://aka.ms/azure-msi-docs”。 状态代码: 400,状态消息: 错误请求。 目前我不知道该如何解决此问题。 已完成以下工作: 1. 在公司B的Azure中创建了Web App 2. 将来自DevOps公司A帐户的用户添加为公司Azure AD中的来宾用户 3. 用户在Web App上具有贡献者权限 4. 在Web App上将托管服务标识设置为“开” 5. 在Azure DevOps中设置发布时,公司B的订阅和Web Apps可以被看到和选择。
我相信需要采取更多措施以使发布部署正常工作,但经过深入搜索后,我没有找到任何有用的信息。 希望这里的任何人都能提供建议。
2个回答

10

我成功地找到了解决我遇到的问题的方法。这与 Azure 订阅上来宾帐户的访问权限有关。

首先,“托管服务标识”与此问题无关。

以下是连接公司A的Azure DevOps与公司B的Azure所遵循的步骤:

  • 在公司B的Azure中创建Web应用程序
  • 将公司A的Azure DevOps帐户添加为“来宾用户”在公司B的Azure中
  • 将DevOps帐户分别赋予Azure订阅和Web应用程序的“参与者”权限
  • 在公司A的DevOps中,添加“Azure资源管理器”。选择使用公司B的Azure的设置作为“服务主体身份验证”
  • 保存Azure资源管理器后,您将被提示登录。您需要使用公司B的Azure管理员帐户登录。

@dmcquiggin 实际上是404未找到。 - Cid
@Cid 可能是因为我两年前发布了那个链接...微软显示一个404页面,其中包含指向可能相关资源的链接。 - dmcquiggin

1
我曾经遇到过这个问题,它是一个MSI问题,但是在互联网上建议创建虚拟机并不能解决。在我的情况下,我重置了应用程序服务的MSI ID,这破坏了DevOps中的服务连接(尽管DevOps没有告诉我这一点 -_-)。
通过在DevOps中删除和重新添加服务连接,并在发布流程设置中重新选择它来解决该问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接