气流-一些端点的实验API返回405s

时间:2019-02-22 19:43:53

标签: airflow

我正在尝试将我的应用程序设置为使用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端点来工作吗?

1 个答案:

答案 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

创建一个用户