【问题标题】:Airflow - Experimental API returning 405s for some endpointsAirflow - 为某些端点返回 405 的实验性 API
【发布时间】:2019-07-16 23:05:03
【问题描述】:

我正在尝试设置我的应用程序以使用 Airflow 的 Experimental API。我正在使用apache-airflow==1.10.2

使用直接开箱即用的配置(未启用身份验证),我可以使用 POST /api/experimental/dags/<DAG_ID>/dag_runs 端点创建 DAG 运行。但是,当我尝试使用 GET /api/experimental/dags/<DAG_ID>/dag_runs 时,我得到 405s。

当我注意到 GET 端点是 www_rbac 文件夹的一部分,而不是 www 文件的一部分时,我尝试启用身份验证。为了验证我是否能够成功设置身份验证,我为 api 和 webserver 配置了它。

[api]
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth

对于网络服务器:

[webserver]
# additional config omitted for brevity
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth

我使用气流 cli 创建了一个用户。然后,我能够使用这些凭据登录到网络服务器。问题是当我尝试在 API 上使用相同的凭据进行身份验证时,我仍然得到 405。

我正在使用的示例 curl 是:

curl -X GET \
  http://api_admin:password666@fakeHostName.com/api/experimental/dags/example_bash_operator/dag_runs \
  -H 'Cache-Control: no-cache'

(真正的 curl 有实际的用户名、密码和主机名。)

响应正文是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1>
<p>The method is not allowed for the requested URL.</p>

确实工作的POST请求的Curl:

curl -X POST \
  http://api_admin:password666@fakeHostName.com/api/experimental/dags/example_bash_operator/dag_runs \
  -H 'Cache-Control: no-cache' \
  -d '{}'

好消息是,当我启用身份验证并在请求中省略用户名和密码时,我得到 401 - Unauthorized。

有人可以使用GET dag_run 端点工作吗?

【问题讨论】:

    标签: airflow


    【解决方案1】:

    这是1.10.2 中的一个错误,已在本周发布的1.10.3 中修复。

    在此之前您可以使用 rbac UI:

    通过修改 airflow.cfg 文件启用 RBAC UI。

    [webserver] 部分下,将rbac = False 更改为rbac = True

    请注意,您必须按照 https://airflow.apache.org/security.html?highlight=rbac#password 创建用户

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多