将 Azure 机器学习与 DevOps 工具集成

已完成

假设你在机器学习项目中与数据科学团队合作。 你的团队可以选择使用 Azure DevOps 或 GitHub 来规划工作、存储代码存储库并自动执行工作流。

使用任一工具集时,通常有两个角色:

  • 管理员:设置 DevOps 环境并管理这些工具。
  • 最终用户:通过协作开发为项目做出贡献。 连接到工具,但已限制对 DevOps 环境的配置的访问权限。

管理员负责将 Azure 机器学习连接到 Azure DevOps 或 GitHub。 若要了解如何设置与 Azure 机器学习的集成,让我们探讨管理员如何安全地将 Azure DevOps 和 GitHub 与 Azure 机器学习连接。

设置 Azure DevOps

若要将 Azure DevOps 与 Azure 机器学习连接,首先需要创建组织和项目。 你将使用组织对项目进行分组和管理。

首先,使用 Microsoft 或 GitHub 帐户登录到 Azure DevOps

登录后,可以创建 组织

Azure DevOps 中的新组织

在组织中,可以创建多个 项目

Azure DevOps 中的新项目

对于每个项目,你将有权访问 BoardsReposPipelines 等工具,以便在项目中应用 DevOps 原则。

将 Azure DevOps 连接到 Azure 机器学习

若要从 Azure DevOps 安全地访问 Azure 机器学习工作区,必须创建 服务连接

创建服务连接时,定义 Azure DevOps 如何进行身份验证以连接到另一个服务。 使用 Azure 机器学习时,建议的选项是让 Azure DevOps 为你创建服务主体。

服务主体是在 Microsoft Entra ID 中作为标识创建的。 Azure DevOps 不使用团队成员的凭据来连接 Azure 机器学习,而是使用服务主体的凭据。

创建 Azure DevOps 项目后,可以连接到现有的 Azure 机器学习工作区:

  1. 在项目中,转到“项目设置”。
  2. 选择 服务连接 并创建新的连接。
  3. 选择 Azure 资源管理器
  4. 选择使用 自动服务主体进行身份验证。
  5. 将范围级别设置为 机器学习工作区 ,并连接到有权访问的现有 Azure 机器学习工作区。
  6. 向所有管道授予访问权限。
  7. 为服务连接命名。 每当需要对 Azure DevOps 进行身份验证以管理 Azure 机器学习工作区时,都会使用该名称。

Azure DevOps 中的新服务连接

创建服务连接后,你会注意到新创建的服务主体在 Azure 机器学习工作区中具有 参与者 访问权限。

设置 GitHub

若要将 GitHub 与 Azure 机器学习连接,首先需要创建 GitHub 存储库。

首先登录到 GitHub

登录到 GitHub 后,可以选择是作为个人想要拥有存储库,还是应该由 GitHub 组织拥有。

GitHub 中的新存储库

小窍门

详细了解 如何使用 GitHub 组织管理存储库

将 GitHub 与 Azure 机器学习连接

若要使用 GitHub 自动执行机器学习工作流,可以对 GitHub 进行身份验证,以便与 Azure 机器学习连接。 若要设置安全连接,必须:

  • 在 Azure 中创建服务主体。
  • 将服务主体的凭据添加到存储库的机密中。

若要创建服务主体,可以使用 Azure CLI。 若要使用 CLI,一个选项是在 Azure Cloud Shell 中提交命令。

可以使用以下命令创建一个名为 github-aml-sp 的服务主体,并授予其 Azure 机器学习工作区的 参与者 访问权限:

az ad sp create-for-rbac --name "github-aml-sp" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name> \
                            --sdk-auth

创建服务主体后,将返回 JSON 文本作为输出,其中包括 GitHub 需要连接到 Azure 资源组的凭据。 复制 JSON 文本并将其保存到下一步。

若要在 GitHub 中存储这些凭据,请执行以下作:

  1. 转到存储库的“设置”
  2. 导航到 “机密 ”页。
  3. 选择“操作”。
  4. 添加新 存储库机密
  5. 输入 AZURE_CREDENTIALS 作为名称。
  6. 使用凭据粘贴到输出 JSON 并添加机密。

GitHub 中的新机密

将机密添加到 GitHub 后,每当需要对 GitHub 进行身份验证以处理 Azure 机器学习工作区时,您可以使用 AZURE_CREDENTIALS 机密。

小窍门

继续学习将 GitHub 与 Azure 机器学习集成,并了解如何 将 GitHub Actions 与 Azure 机器学习配合使用。 本教程使用 AZURE_CREDENTIALS 机密连接到 Azure。