我尝试使用 ENV 变量来配置连接 url,我有一个预先配置了 alchemy_conn 和 broker_url 等的 ami,我已经将环境变量写入 /etc/environment 在从 amis 启动的实例中以覆盖 airflow.cfg 中的属性文件。我也能够从 python 代码访问变量。
但是在运行ariflow时似乎没有生效,也尝试重新启动进程但没有奏效,它仍然指向airflow.cfg文件中的那个
我尝试使用 ENV 变量来配置连接 url,我有一个预先配置了 alchemy_conn 和 broker_url 等的 ami,我已经将环境变量写入 /etc/environment 在从 amis 启动的实例中以覆盖 airflow.cfg 中的属性文件。我也能够从 python 代码访问变量。
但是在运行ariflow时似乎没有生效,也尝试重新启动进程但没有奏效,它仍然指向airflow.cfg文件中的那个
问题可能是系统服务不会自动从中获取/etc/environment
仅用于交互式会话的环境。
如果您使用的是 systemd,则可以添加EnvironmentFile=/etc/environment
,尽管更“典型”的是将服务特定配置放入/etc/default/airflow
(在 Debian/Ubuntu 上)或/etc/sysconfig/airflow
(在 Centos/Redhat 上)
Airflow 的示例 systemd 脚本已经为 Centos 提供了这个:https ://github.com/apache/incubator-airflow/blob/faa9a5266c0b2e68693dd106b5cb46d30770dadc/scripts/systemd/airflow-webserver.service#L20