Azure DevOps:无法识别服务连接

时间:2021-01-08 22:49:24

标签: azure azure-devops yaml azure-functions azure-pipelines

我似乎无法在 Azure DevOps 中授权访问我的 Azure 订阅以在提交推送到主节点时运行构建。我不断收到以下错误:

enter image description here

此外,当我点击 Authorize resources 时,它说授权成功,但下次我运行管道时,我得到完全相同的错误。我在项目设置 -> 服务连接中验证了我与订阅的活动连接。

我该如何解决这个问题?当我转到 Azure Functions 中的部署中心并在那里建立连接时,它会创建一个基于任务的管道,但我想使用 yaml。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

以上说明您在azure函数部署任务中指定的azureSubscription不存在,或者您没有权限。

如果服务连接已经正确设置,但您仍然遇到上述错误。您可以按照以下步骤解决问题。

1、检查你的 yaml 管道。

azure 订阅在编译时验证。如果您使用变量来引用 azure 订阅 yaml 管道。您需要确保可以在编译时检索该变量。

您可以查看this thread

2、检查服务连接安全设置。

转到项目设置-->管道下的服务连接-->选择您的azure服务连接-->更多设置(3个点)-->安全-->尝试将您的管道添加到Pipeline permissions列表中.

enter image description here

如果未设置 Azure 订阅服务连接。您需要创建一个 azure Resource Manager 类型的服务连接来连接到您的 azure 订阅。请参阅以下步骤:

1、进入项目设置-->管道下的服务连接-->新建服务连接-->选择Azure Resource Manager-->下一步

enter image description here

2、然后选择认证方式。如果您的 azure devops 是 connected to AAD。您可以选择 Service principal (automatic) 作为身份验证方法。这将自动在 Azure AD 中创建服务主体。

3、如果要创建新的服务主体。您可以选择服务主体(手动)。请参阅以下文档以在 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

然后在服务连接配置页面输入相关信息。

enter image description here

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

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

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

相关问题