"Bad Request-Error" 尝试使用 Airflow 连接到 Azure Data Lake 时
"Bad Request-Error" when trying to connect to Azure Data Lake with Airflow
我尝试使用 Airflow 连接到 Azure Data Lake。我通过 Web UI.
使用 Airflow 连接
当我尝试使用测试按钮进行连接时,收到错误请求错误。如下图
我使用了正确的 UUID。这些UUID已经在其他情况下得到验证。我也检查了防火墙。
当我执行 DAG 时,我使用 Azure Data Lake 连接 ID 检查文件是否存在:如果我应用此处描述的方法:
这是我得到的错误
[2022-05-06,17:27:33 UTC] {log.py:127} 错误 - 99ec1d77-e91c-4fd3-a1c7-fa751ca1e779 - 来自服务器的 OAuth2Client:The 令牌响应无法解析为 JSON: ***
追溯(最近一次通话):
文件“/opt/airflow/lib/python3.8/site-packages/adal/oauth2_client.py”,第 168 行,在 _validate_token_response 中
wire_response = json.loads(正文)
文件“/usr/lib/python3.8/json/init.py”,第 357 行,加载
return _default_decoder.decode(s)
文件“/usr/lib/python3.8/json/decoder.py”,第 337 行,在解码中
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
文件“/usr/lib/python3.8/json/decoder.py”,第 355 行,在 raw_decode 中
从 None 提高 JSONDecodeError("Expecting value", s, err.value)
json.decoder.JSONDecodeError:期望值:第 3 行第 1 列(字符 4)
[2022-05-06,17:27:33 UTC] {log.py:127} 错误 - 99ec1d77-e91c-4fd3-a1c7-fa751ca1e779 - OAuth2Client:Error 验证获取令牌响应:***
追溯(最近一次通话):
文件“/opt/airflow/lib/python3.8/site-packages/adal/oauth2_client.py”,第 238 行,在 _handle_get_token_response 中
return self._validate_token_response(正文)
文件“/opt/airflow/lib/python3.8/site-packages/adal/oauth2_client.py”,第 168 行,在 _validate_token_response
中
通过令牌凭据向 Azure Data Lake 进行身份验证,即将特定凭据(client_id、机密、租户)和帐户名添加到 Airflow 连接。
有关如何设置的信息,请参阅此 doc。
您可以在源代码中查看代码示例test function。
目前不支持其他身份验证方法。
我试图使用 Airflow 实现来获取连接 运行。我的印象是它有问题,而且效果不佳。以上情况发生在Airflow 2.2.5。当我升级到 Airflow 2.3.0 时,测试按钮是灰色的。
最终的解决方案是改用访问令牌。
我尝试使用 Airflow 连接到 Azure Data Lake。我通过 Web UI.
使用 Airflow 连接当我尝试使用测试按钮进行连接时,收到错误请求错误。如下图
我使用了正确的 UUID。这些UUID已经在其他情况下得到验证。我也检查了防火墙。
当我执行 DAG 时,我使用 Azure Data Lake 连接 ID 检查文件是否存在:如果我应用此处描述的方法:
这是我得到的错误
[2022-05-06,17:27:33 UTC] {log.py:127} 错误 - 99ec1d77-e91c-4fd3-a1c7-fa751ca1e779 - 来自服务器的 OAuth2Client:The 令牌响应无法解析为 JSON: *** 追溯(最近一次通话): 文件“/opt/airflow/lib/python3.8/site-packages/adal/oauth2_client.py”,第 168 行,在 _validate_token_response 中 wire_response = json.loads(正文) 文件“/usr/lib/python3.8/json/init.py”,第 357 行,加载 return _default_decoder.decode(s) 文件“/usr/lib/python3.8/json/decoder.py”,第 337 行,在解码中 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 文件“/usr/lib/python3.8/json/decoder.py”,第 355 行,在 raw_decode 中 从 None 提高 JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError:期望值:第 3 行第 1 列(字符 4) [2022-05-06,17:27:33 UTC] {log.py:127} 错误 - 99ec1d77-e91c-4fd3-a1c7-fa751ca1e779 - OAuth2Client:Error 验证获取令牌响应:*** 追溯(最近一次通话): 文件“/opt/airflow/lib/python3.8/site-packages/adal/oauth2_client.py”,第 238 行,在 _handle_get_token_response 中 return self._validate_token_response(正文) 文件“/opt/airflow/lib/python3.8/site-packages/adal/oauth2_client.py”,第 168 行,在 _validate_token_response
中通过令牌凭据向 Azure Data Lake 进行身份验证,即将特定凭据(client_id、机密、租户)和帐户名添加到 Airflow 连接。
有关如何设置的信息,请参阅此 doc。
您可以在源代码中查看代码示例test function。
目前不支持其他身份验证方法。
我试图使用 Airflow 实现来获取连接 运行。我的印象是它有问题,而且效果不佳。以上情况发生在Airflow 2.2.5。当我升级到 Airflow 2.3.0 时,测试按钮是灰色的。
最终的解决方案是改用访问令牌。