我在Oracle机器上运行Airflow 2.3.0,当我在两个不同的终端上运行命令(命令airflow scheduler和airflow webserver)时,一切正常。但是,当我尝试以守护进程(命令airflow scheduler -D和airflow webserver -D)的形式运行服务时,只有调度程序命令才能工作。webserver命令生成以下错误。

我配置了气流(因此也是webserver_conf.py文件),通过OAuth身份验证来工作,添加了自己的提供程序并扩展了AirflowSecurityManager类,这样它就可以验证新的提供程序。正如我前面提到的,如果我正常运行这些服务,一切正常工作(甚至是登录到应用程序的身份验证)。我在Apache文档之后配置了webserver_conf.py文件,下面是对webserver_conf.py文件的配置。
from airflow.www.security import AirflowSecurityManager
class BaseSecurityManagerTQ(AirflowSecurityManager):
def get_oauth_user_info(self, provider, resp):
if provider == "TQ":
me = self.appbuilder.sm.oauth_remotes[provider].get('/connect/userinfo')
data = me.json()
ans = {
"username": "tq_" + data.get('name', ""),
"email": data.get("email", ""),
}
return ans
else:
return {}
FAB_SECURITY_MANAGER_CLASS = "webserver_config.BaseSecurityManagerTQ"我尝试使用importlib库导入新的安全模块,但是它没有工作。我也尝试过这些解决方案-- 1,2 --但它们也没有工作。
关于如何解决这个问题,有什么建议吗?
发布于 2022-06-30 14:27:33
我已经设法解决了,我不得不将webserver_config.py文件所在的文件夹添加到PYTHON_PATH中。另外,添加一个__init__.py文件以便能够导入模块。
https://stackoverflow.com/questions/72806995
复制相似问题