首页 > 解决方案 > 是否可以在 SSHHook 气流中动态设置主机?

问题描述

我从 API 获取参数以连接到远程主机。它们每次都不一样,我事先不知道哪些。我可以将这些参数传递给 SSHHook 吗?代码如下:

    for index, conn in enumerate(get_connections(url=CONFIG.gater_url, vendor=OSS_VENDOR)):
        ssh_hook = SSHHook(
            ssh_conn_id=CONFIG.ssh.ssh_conn_id,
            remote_host=conn.ip,
            username=conn.login,
            password=conn.password,
            port=conn.port
        )

从任务日志来看,它尝试连接到 localhost,而实际上连接地址来自不同的地址(已记录)。在气流连接中,我从 ssh 连接中删除了所有参数,只留下conn_id.

标签: pythonsshairflow-schedulerairflow

解决方案


是的,这是可能的,而且你几乎做对了。虽然,你应该设置ssh_conn_id=None. 否则,您作为参数传递的凭据将被连接中的值覆盖(您也传递给挂钩的 ID)。


推荐阅读