Я пытаюсь настроить приложение на использование Экспериментального API Airflow.Я использую apache-airflow==1.10.2
.
Используя конфигурацию прямо из коробки (аутентификация не включена), я могу создавать прогоны DAG с использованием конечной точки POST /api/experimental/dags/<DAG_ID>/dag_runs
.Однако, когда я пытаюсь использовать GET /api/experimental/dags/<DAG_ID>/dag_runs
, я получаю 405 с.
Я попытался включить аутентификацию, когда заметил, что эта конечная точка 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
Я создал пользователя с помощью воздушного потокакли.Затем я смог войти на веб-сервер, используя эти учетные данные.Проблема в том, что когда я пытаюсь использовать те же учетные данные, которые проходят аутентификацию в 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 -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 для работы?