我尝试使用ENV变量来配置连接URL,我有一个预先配置有alchemy_conn和broker_url等的ami,我已经将环境变量写入从/ ams实例中的/ etc / environment中,以覆盖airflow.cfg中的属性。文件。我也能够从python代码访问变量。
但是它在运行ariflow时似乎没有生效,也尝试重新启动该过程但没有用,它仍然指向airflow.cfg文件中的那个
注意:这不是重复的
我必须从我的Airflow DAG. 实现这一目标的直接方法是SSHHook.
问题在于远程系统是一个EMR集群,它本身是在运行时(由上游任务)使用EmrCreateJobFlowOperator. 因此,虽然我可以掌握job_flow_id已启动的 EMR 集群(usingXCOM),但我需要的是将 anssh_conn_id传递给每个下游任务。
查看文档和代码,很明显 Airflow 将尝试conn_id在db和环境变量中查找此连接(使用),因此现在问题归结为能够在运行时设置这两个属性中的任何一个(从内部一个operator)。
这似乎是一个相当普遍的问题,因为如果无法实现,那么 的效用EmrCreateJobFlowOperator将受到严重阻碍;但我还没有遇到任何证明它的例子。
我上线了
Airflow v1.10Python 3.6.6emr-5.15 (如果需要可以升级)