【发布时间】: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