Azure 的气流连接

Airflow connection for Azure

我正在为我的工作学习 Airflow,但我遇到了一个非常简单的问题,我无法找到解决方案。

我想通过气流 GUI 添加一个简单的 azure blob 连接,但出于某种原因,每当我尝试测试连接时,它都会收到 BAD REQUEST 响应回来,看下面的例子:

我试过使用 SAS 令牌和服务主体登录,但都没有用。

在某些时候,我认为这可能是由于缺少正确的权限引起的,但是当我尝试使用服务主体通过 az cli 登录时,我可以很好地看到资源(有效也可以使用 authentication via Python).

我是运行 airflow on a docker image,所以我认为可能是未安装azure provider,所以我在docker 图像通过 docker exec -it airflow-webserver /bin/bash 并通过 pip 手动安装提供程序,这也没有解决问题。

有人知道我接下来可以尝试什么吗?

UI 中测试连接按钮的当前实现是 enabled/disabled 仅与在环境中启用 Airflow REST API 相关。这意味着如果启用了 REST API,则会为所有连接类型启用“测试连接”按钮,即使所选类型实际上不支持以这种方式测试连接。

此按钮仅在底层挂钩具有 test_connection() 方法时真正起作用,不幸的是 WasbHook(Azure Blob 存储连接类型使用)没有。这就是您看到“BAD REQUEST”错误的原因。这并不是因为您的连接配置错误,而是因为没有内置测试功能。

有一个 PR 可以修复此问题,但尚未发布。

如果您觉得有帮助,可以查看一些关于创建 Azure Blob 存储连接的 Airflow 文档:https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/stable/connections/wasb.html