找不到气流实验API deny_all模块

时间:2019-02-27 05:16:31

标签: airflow

我正在使用Airflow。 我不想导入实验性API的任何功能。因此,我遵循了instructions并编辑了airflow.cfg配置文件。

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

但是当启动气流Web服务器时出现以下错误。

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 :(得分:2)

模块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

答案 1 :(得分:0)

由于clang后端仅从v1.10开始可用,因此您有两个选择:

  1. 将气流升级到v1.10(推荐
  2. 如果由于某些原因您无法升级,则可以按照以下说明创建自己的反向端口。

-Wall -Wextra -pedantic后端从v1.10移植到v1.8

在您的项目中创建一个新文件,例如deny_all,然后将deny_all.py的内容复制粘贴到其中:

deny_all

然后将Airflow配置为通过deny_all_auth_backend.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