先决条件
- 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。