Airflow - экспериментальный API возвращает 405 для некоторых конечных точек - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь настроить приложение на использование Экспериментального 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 для работы?

1 Ответ

0 голосов
/ 10 апреля 2019

Это ошибка в 1.10.2, исправленная для 1.10.3, которая будет выпущена на этой неделе.

До этого момента вы можете использовать пользовательский интерфейс rbac:

Включить RBACПользовательский интерфейс путем изменения файла airflow.cfg.

В разделе [webserver] измените rbac = False на rbac = True

Обратите внимание, что вам придется создать пользователя в соответствии с https://airflow.apache.org/security.html?highlight=rbac#password

...