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

Я использую Airflow.Я хотел не импортировать какие-либо функции экспериментального API.Поэтому я следовал инструкциям и отредактировал мой конфигурационный файл airflow.cfg.

[api]
# How to authenticate users of the API
auth_backend = airflow.api.auth.backend.deny_all

Но у меня возникла следующая ошибка при запуске веб-сервера airflow.

Cannot import airflow.api.auth.backend.deny_all for API authentication due to: No module named 'airflow.api.auth.backend.deny_all'

Помогите мне, ребята.моя версия воздушного потока v1.8.0

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Поскольку deny_all бэкэнд доступен только начиная с v1.10, у вас есть два варианта:

  1. Обновление воздушного потока до v1.10 ( рекомендуется )
  2. Если по какой-либо причине вы не можете выполнить обновление, вы можете создать свой собственный бэкпорт, как описано ниже.

Backporting deny_all бэкэнд с v1.10 до v1.8

Создатьновый файл в вашем проекте, например deny_all_auth_backend.py, и скопируйте и вставьте содержимое deny_all.py внутрь:

from functools import wraps
from flask import Response

client_auth = None


def init_app(app):
    pass


def requires_authentication(function):
    @wraps(function)
    def decorated(*args, **kwargs):
        return Response("Forbidden", 403)

    return decorated

Затем настройте Airflow на использование этого бэкэнда через airflow.cfg:

[api]
auth_backend = my_app.deny_all_auth_backend  # or the actual path to your module
0 голосов
/ 27 февраля 2019

Модуль airflow.api.auth.backend.deny_all включен в версии v1-10.В airflow v1.8 этот модуль еще не разработан https://media.readthedocs.org/pdf/airflow-fork-k1/v1-8-stable/airflow-fork-k1.pdf

...