将 Azure 机器学习与 DevOps 工具集成
假设你与数据科学团队就机器学习项目展开合作。 你的团队可以选择使用 Azure DevOps 或 GitHub 规划工作、存储代码存储库和自动执行工作流。
使用任一工具集时,通常有两个角色:
- 管理员:设置 DevOps 环境并管理工具。
- 最终用户:通过协作开发为项目做出贡献。 连接到工具,但已限制对 DevOps 环境的配置的访问权限。
管理员负责使用 Azure DevOps 或 GitHub 连接 Azure 机器学习。 若要了解如何设置与 Azure 机器学习的集成,让我们来探讨一下管理员如何安全地将 Azure DevOps 和 GitHub 与 Azure 机器学习连接。
设置 Azure DevOps
若要将 Azure DevOps 与 Azure 机器学习连接,首先需要创建组织和项目。 你将使用组织对项目进行分组和管理。
首先使用 Microsoft 或 GitHub 帐户登录到 Azure DevOps。
登录后,可以创建一个组织。
在组织中,可以创建多个项目。
对于每个项目,你将有权访问 Boards、Repos 和 Pipelines 等工具,以便在项目中应用 DevOps 原则。
将 Azure DevOps 连接到 Azure 机器学习
若要安全地从 Azure DevOps 访问 Azure 机器学习工作区,必须创建服务连接。
创建服务连接时,需要定义如何对 Azure DevOps 进行身份验证以连接到另一个服务。 使用 Azure 机器学习时,建议的选项是让 Azure DevOps 为你创建服务主体。
服务主体是在 Microsoft Entra ID 中作为标识创建的。 Azure DevOps 使用服务主体的凭据,而不是使用团队成员的凭据与 Azure 机器学习连接。
创建 Azure DevOps 项目后,可以连接到现有 Azure 机器学习工作区:
- 在项目中,转到“项目设置”。
- 选择“服务连接”并新建一个服务连接。
- 选择“Azure 资源管理器”。
- 选择使用自动服务主体进行身份验证。
- 将范围级别设置为“机器学习工作区”,并连接到有权访问的现有 Azure 机器学习工作区。
- 授予对所有管道的访问权限。
- 为服务连接命名。 每当需要对 Azure DevOps 进行身份验证以管理 Azure 机器学习工作区时,都会使用该名称。
创建服务连接后,你会注意到新创建的服务主体具有对 Azure 机器学习工作区的参与者访问权限。
设置 GitHub
若要将 GitHub 与 Azure 机器学习连接,首先需要创建 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 中,请执行以下操作:
- 转到存储库的“设置”。
- 导航到“机密”页。
- 选择“操作”。
- 添加新的存储库机密。
- 输入
AZURE_CREDENTIALS
作为名称。 - 使用凭据粘贴到输出 JSON 并添加机密。
将机密添加到 GitHub 后,每当需要对 GitHub 进行身份验证以使用 Azure 机器学习工作区时,可以使用 AZURE_CREDENTIALS
机密。
提示
继续学习如何将 GitHub 与 Azure 机器学习集成,并探讨如何将 GitHub Actions 与 Azure 机器学习配合使用。 本教程使用 AZURE_CREDENTIALS
机密与 Azure 连接。