我正在尝试将我的应用程序设置为使用Airflow的实验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和网络服务器配置了身份验证。
[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创建了一个用户。然后,我能够使用这些凭据登录到Web服务器。问题是,当我尝试在API上使用相同的凭据进行身份验证时,仍然收到405s。
我正在使用的卷发样品是:
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 -X POST \
http://api_admin:password666@fakeHostName.com/api/experimental/dags/example_bash_operator/dag_runs \
-H 'Cache-Control: no-cache' \
-d '{}'
好消息是,当我启用身份验证并从请求中忽略用户名和密码时,我得到401-未经授权。
有人能够使用GET
dag_run端点来工作吗?
答案 0 :(得分:0)
这是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
创建一个用户