Azure DevOps:未识别服务连接

h9a6wy2h  于 2023-05-07  发布在  其他
关注(0)|答案(3)|浏览(146)

我似乎无法在Azure DevOps中授权访问我的Azure订阅,以便每当提交被推送到master时运行构建。我一直得到下面的错误:

此外,当我单击Authorize resources时,它显示授权成功,但下次运行管道时,我会得到相同的错误。我在项目设置-〉服务连接中验证了我有一个到订阅的活动连接。
我该如何解决这个问题?当我转到Azure Functions中的部署中心并在那里连接连接时,它会创建一个基于任务的管道,但我想使用yaml。

3qpi33ja

3qpi33ja1#

您必须从任务本身创建一个新连接(您可能需要使用高级选项来添加现有的服务主体)。

  • 在“Azure订阅”下,单击要使用的订阅的名称
  • 点击“授权”旁边的下拉菜单,打开高级选项
  • 单击“使用服务连接对话框的完整版本”
  • 输入您的所有凭据并点击保存
px9o7tmv

px9o7tmv2#

我花了一段时间试图弄清楚为什么我有同样的问题。将我的yaml与我以前使用过的另一个yaml进行了比较,没有发现任何问题,也验证了服务连接。
但正如@Levi Lu-MSFT提到的,验证yaml让我找到了导致我的问题的原因,所以我想我会在这里分享它,即使它不是100%相关:
我的变量没有正确地缩进。我有点累了,认为DevOps只是在和我开玩笑。因此,请验证您的yaml是否正确设置。有时候,可能是一些很小的事情导致了这些问题。

9fkzdhlc

9fkzdhlc3#

以上表示您在Azure函数部署任务中指定的azureSubscription不存在,或者您没有权限。
如果服务连接已经正确设置,但您仍然遇到上述错误。您可以按照下面的步骤解决问题。
1.检查你的yaml管道。
Azure订阅在编译时进行验证。如果使用变量引用azure订阅yaml管道。您需要确保变量可以在编译时检索。
你可以看看这个线程。
1.检查服务连接安全设置。
进入项目设置--〉管道下的服务连接--〉选择您的Azure服务连接--〉更多设置(3个点)--〉安全性--〉尝试将您的管道添加到Pipeline permissions列表。

如果未设置Azure订阅服务连接。您需要创建Azure Resource Manager类型的服务连接以连接到Azure订阅。参见以下步骤:
1.转到项目设置--〉管道下的服务连接--〉新建服务连接--〉选择Azure Resource Manager--〉下一步

1.然后选择身份验证方法。如果您的Azure DevOps是connected to AAD。您可以选择Service principal (automatic)作为身份验证方法。这将自动在Azure AD中创建服务主体。
1.如果要创建新的服务主体。您可以选择服务主体(手动)。请参阅以下文档以在Azure中创建服务主体
Use the portal to create an Azure Active Directory application and a service principal that can access resources
Use Azure PowerShell to create an Azure service principal with a certificate
1.然后在服务连接配置页面中输入相关信息。

创建Azure订阅服务连接后。您可以通过指定服务连接名称在yaml管道任务中使用它。参见以下示例:

- task: AzureFunctionApp@1
  displayName: Azure Function App Deploy
  inputs:
    azureSubscription: myAzureSubscription

注意:您需要为以上service principal添加正确的role assignment,以使服务主体能够部署到您的Azure资源。

相关问题