我正在为我的工作学习 Airflow,但我陷入了一个非常简单的问题,我无法找到解决方案。
我想通过 Airflow GUI 添加一个简单的 azure blob 连接,但由于某种原因,每当我尝试测试连接时,它都会得到 BAD REQUEST
回复,请参阅下面的示例:
我尝试使用 SAS token 和服务主体登录,但这也不起作用。
在某些时候,我认为这可能是由于缺乏正确的权限造成的,但是当我尝试通过 az cli
登录时使用服务主体,我可以很好地看到资源(使用 authentication via Python 也可以正常工作)。
我在docker镜像上运行airflow,所以我认为可能是没有安装azure提供程序,所以我通过docker exec -it airflow-webserver /bin/bash
在docker镜像中打开了一个shell session 并通过 pip 手动安装提供程序,这也没有解决问题。
有人知道我接下来可以尝试什么吗?
最佳答案
UI 中“测试连接”按钮的当前实现仅与环境中 Airflow REST API 的启用相关。这意味着,如果启用了 REST API,则将为所有连接类型启用“测试连接”按钮,即使所选类型实际上并不支持以这种方式测试连接。
此按钮实际上仅在底层 Hook 具有 test_connection()
方法时才起作用,不幸的是 WasbHook
(由 Azure Blob 存储连接类型使用)确实如此不是。这就是您看到“错误请求”错误的原因。这并不是因为您的连接本身配置错误,而是因为没有内置测试功能。
有一个PR修复此问题,但尚未发布。
如果您觉得有帮助,可以查看一些有关创建 Azure Blob 存储连接的 Airflow 文档:https://airflow.apache.org/docs/apache-airflow-providers-microsoft-azure/stable/connections/wasb.html
关于azure - Azure 的 Airflow 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70436291/