【问题标题】:How to create a service connection for Azure in Azure Devops (with pictures)如何在 Azure Devops 中为 Azure 创建服务连接(附图)
【发布时间】:2022-03-07 20:20:16
【问题描述】:

Azure Devops 中的这个“服务连接”的东西相当混乱。我想创建一个服务连接,以便能够连接到 Azure 并执行诸如通过管道部署到我的应用服务之类的事情。

问题是,我的订阅未列在下拉菜单中,而且我收到无用的错误,例如“无法获取 Json Web 令牌(JWT)”或“无法查询服务连接 API ... AuthorizationFailed” .为了创建服务连接,我需要采取哪些步骤?

【问题讨论】:

    标签: azure azure-devops azure-pipelines


    【解决方案1】:

    先决条件

    • Azure 订阅
    • 要为其创建服务连接的应用服务或其他资源

    创建应用注册并定义角色

    您首先需要做的是创建应用注册。应用注册是您的管道将用于部署的基于角色的身份。

    在 Azure 门户中,转到 Azure Active Directory |应用注册(在侧边栏中)|新注册。

    为应用注册命名。不用担心其他设置;让他们默认。单击注册。专业提示:在相关资源和实体前加上您的项目名称(如 <project name>-appregistration)将有助于您以后快速找到它们。

    我们需要授予您的应用注册权限,以访问和部署到您的应用服务或您希望部署到的任何资源。

    转到应用服务页面 |访问控制 (IAM) | + 添加 |添加角色分配。填写字段:

    • 角色:贡献者
    • 分配访问权限:Azure AD 用户、组或服务主体
    • 选择:搜索并选择您刚刚注册的应用

    点击保存。您应该会看到应用注册被添加为贡献者。

    我们还需要为您的订阅授予读取权限。我不知道为什么它需要对订阅的读取权限,但如果你不这样做,连接就会失败。

    与最后一步类似,转到您的订阅(您用于应用服务的订阅)|访问控制 (IAM) | + 添加 |添加角色分配。

    • 角色:读者
    • 分配访问权限:Azure AD 用户、组或服务主体
    • 选择:选择应用注册,然后保存。

    创建服务连接

    在 Azure DevOps 中转到您的项目,然后在边栏中的项目设置 |服务连接 |新的服务连接。连接类型是 Azure 资源管理器。

    这里是我之前迷路的地方,因为这个界面没有列出我的订阅。但如果它对你有用,它应该会自动为你获取正确的变量,我相信。如果它不起作用,请继续阅读。

    点击“使用完整版的服务连接对话框”。以下是如何填写这个复杂的表格。

    • 连接名称:选择一个名称(我建议<project name>-serviceconnection
    • 环境:AzureCloud
    • 范围级别:订阅
    • 订阅 ID:从您的订阅资源中获取(见屏幕截图)
    • 订阅名称:从您的订阅资源中获取此名称
    • 服务主体客户端 ID:应用注册的应用程序(客户端)ID
    • 服务主体密钥:在应用注册页面中,转到证书和机密。
      • 创建密钥并复制密钥值。 Never 的过期日期没问题。
      • 不要存储此字符串;您可以随时创建一个新的。
    • 租户 ID:应用注册的目录(租户)ID
    • 允许所有管道使用此连接复选框:开启此选项进行测试;您可以稍后更改。

    点击“验证连接”。它应该以绿色显示“已验证”。如果连接失败并且您确定已执行所有步骤,请等待 10 分钟,然后重试。确认无误后,点击确定即可。

    要使用服务连接,请在管道任务的正确字段中引用您之前提供的连接名称。当您第一次尝试运行管道时,构建屏幕可能会显示一条消息,说明连接未授权。

    点击“授权资源”。您可以在服务连接的安全页面中看到授权管道。通过 Queue 按钮手动运行构建。

    现在您可以在管道中使用服务连接。 Here is a tutorial on deploying Node.js projects.

    供参考,this is the documentation on service connections

    【讨论】:

    • 如果你在 2020 年这样做,你应该选择任务版本 1 而不是 2
    • @dfd 什么任务? AzureWebApp?为什么是 v1 而不是 2?
    • 对不起,如果您在构建管道中使用 docker 命令!
    猜你喜欢
    • 2023-01-05
    • 2021-09-22
    • 2020-01-06
    • 1970-01-01
    • 2021-03-25
    • 2020-01-26
    • 2020-05-07
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多