通过Admin -> Connections
,我们可以创建/修改连接的参数,但是我想知道是否可以通过API进行相同的操作,以便可以以编程方式设置连接
airflow.models.Connection
似乎它只处理实际连接到实例,而不是将其保存到列表中。似乎应该已经实现了一个功能,但是我不确定在哪里可以找到该特定功能的文档。
注意:这不是重复的
我必须从我的Airflow
DAG
. 实现这一目标的直接方法是SSHHook
.
问题在于远程系统是一个EMR
集群,它本身是在运行时(由上游任务)使用EmrCreateJobFlowOperator
. 因此,虽然我可以掌握job_flow_id
已启动的 EMR 集群(usingXCOM
),但我需要的是将 anssh_conn_id
传递给每个下游任务。
查看文档和代码,很明显 Airflow 将尝试conn_id
在db和环境变量中查找此连接(使用),因此现在问题归结为能够在运行时设置这两个属性中的任何一个(从内部一个operator
)。
这似乎是一个相当普遍的问题,因为如果无法实现,那么 的效用EmrCreateJobFlowOperator
将受到严重阻碍;但我还没有遇到任何证明它的例子。
我上线了
Airflow v1.10
Python 3.6.6
emr-5.15
(如果需要可以升级)