跳转到主要内容

Airflow Azure Machine Learning提供程序包

项目描述

Airflow Azure Machine Learning提供程序

源代码 | PyPI软件包 | 示例DAGs | 示例Docker容器

此软件包使您可以从Apache Airflow提交工作流到Azure Machine Learning。

先决条件

安装

在您的Apache Airflow实例中,运行以下命令:

pip install airflow-provider-azure-machinelearning

或者,您可以参考dev文件夹中的示例或Airflow的操作指南来在Docker容器中设置Airflow。

在Airflow中配置Azure Machine Learning连接

要将工作负载发送到您的Airflow Azure Machine Learning工作区,您需要在Airflow实例中设置一个“Azure Machine Learning”连接

  1. 请确保此包已安装到您的Airflow实例中。如果没有安装此包,您将无法在步骤3中看到“Azure Machine Learning”,也无法添加此类连接。

  2. 在Airflow Web门户中,导航到管理员 --> 连接,然后点击+添加新的连接。

  3. 从“连接类型”下拉菜单中选择“Azure Machine Learning”。您应该看到一个类似下面的表单

  4. 连接ID是您连接的唯一标识符。您还需要将此字符串传递到AzureML Airflow操作符中。请查看这些示例DAG

  5. 描述是可选的。所有其他字段都是必填项。

  6. 租户ID。您可以通过此说明来获取它。

  7. 订阅ID资源组名称工作区名称可以唯一标识Azure Machine Learning中的工作区。在Azure Machine Learning Studio中打开后,选择所需的工作区,然后点击网站右上角的“更改工作区”(位于配置文件图标左侧)。在这里您可以看到工作区名称。现在,点击“在Azure门户中查看所有属性”。这是您工作区的Azure资源页。从这里您可以检索订阅ID资源组名称

  8. 客户端ID密码是一对。它们基本上是基于服务主体认证过程的“用户名”和“密码”。您需要在Azure门户中生成它们,并将它们赋予工作区资源组的“贡献者”权限。这确保了您的Airflow连接可以读取/写入您的Azure ML资源以方便工作负载。请按照以下3个简单步骤设置它们。

要创建服务主体,您需要遵循3个简单步骤:

  • 创建一个客户端ID。遵循Azure指南中“使用Azure AD注册应用程序并创建服务主体”部分的说明howto-create-service-principal-portal应用程序ID,即客户端ID,是此服务主体的唯一标识符。
  • 创建一个密码。您可以在Azure Portal中按照此说明中的“选项2:创建新应用程序密码”部分创建此应用程序下的密码。一旦成功创建密码,您将无法看到其值。因此,我们建议您按照此说明将您的密码存储到Azure Key Vault中。
  • 请将此服务主体Contributor授予对您的Azure机器学习资源组的访问权限。重复上述第7项说明,进入您的工作区的资源页面,并点击资源组。在左侧面板中,选择访问控制(IAM),并将Contributor角色分配给上面的应用程序。这一步很重要。没有它,您的Airflow将无法访问创建计算集群、执行训练工作负载或上传数据等所需资源。以下是分配角色的说明

注意

如果上述第3步中下拉菜单中没有“Azure机器学习”,则意味着airflow-providers-azure-machinelearning包未成功安装。您可以按照安装部分中的说明进行安装,并在Airflow webserver容器/机器中使用命令如``pip show airflow-provider-azure-machinelearning```来验证包是否正确安装。

您可以在一个Airflow实例中为不同的Azure机器学习工作区创建许多连接。您可以通过以下方式这样做

  1. 从单个DAG中协调多个工作区/订阅的工作负载。
  2. 在不同工程师的工作负载之间实现隔离。
  3. 在实验环境和生产环境之间实现隔离。

上述说明是关于通过Airflow UI添加连接的。您也可以通过Airflow Cli这样做。您可以在Airflow 文档中找到更多通过Cli进行此操作的示例。以下是一个Airflow命令示例

airflow connections add \
  --conn-type "azure_machine_learning" \
  --conn-description "[Description]" \
  --conn-host "schema" \
  --conn-login "[Client-ID]" \
  --conn-password "[Secret]" \
  --conn-extra '{"extra__azure_machine_learning__tenantId": "[Tenant-ID]", "extra__azure_machine_learning__subscriptionId": "[Subscription-ID]", "extra__azure_machine_learning__resource_group_name": "[Resource-Group-Name]", "extra__azure_machine_learning__workspace_name": "[Workspace-Name]"}' \
  "[Connection-ID]"

示例

请查看example_dags了解如何使用此提供程序包。如果您没有运行的Airflow实例,请参阅示例Docker容器,或[Apache Airflow 文档)https://airflow.org.cn/).

开发环境

要构建此包,运行其测试,运行其linting工具等,您将需要以下内容

  • 通过pip:pip install -r dev/requirements.txt
  • 通过conda:conda env create -f dev/environment.yml

运行测试和linters

  • 所有测试都在tests文件夹中。要运行它们,从该文件夹运行pytest
  • 此repo使用blackflake8isort来保持编码格式一致。从该文件夹运行black .isort .flake8

问题

请将问题提交到我们的官方仓库:[https://github.com/azure/airflow-provider-azure-machinelearning](https://github.com/azure/airflow-provider-azure-machinelearning)。

贡献

此项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权利并且实际上确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.opensource.microsoft.com

当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并适当地装饰PR(例如,状态检查,注释)。只需遵循机器人提供的说明即可。您只需要在所有使用我们的CLA的仓库中这样做一次。

本项目已采用微软开源代码行为准则。有关更多信息,请参阅代码行为准则FAQ或联系opencode@microsoft.com,如有任何其他问题或评论。

商标

本项目可能包含项目、产品或服务的商标或标志。Microsoft 商标或标志的授权使用必须遵守并遵循 Microsoft 的商标及品牌指南。在修改版本项目中使用 Microsoft 商标或标志时,不得造成混淆或暗示 Microsoft 的赞助。任何第三方商标或标志的使用均受这些第三方政策约束。

发布历史

0.0.1

新增功能

  • 首次预览。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

airflow-provider-azure-machinelearning-0.0.1b2.tar.gz (25.4 kB 查看哈希值)

上传时间 源代码

构建分发

支持者