我有一个在 AWS ec2 实例上运行的常规 ETL 作业。
工作流程如下所示:
EC2StartInstanceOperator
运算符启动 ec2 实例。boto3
中的 PythonOperator
函数找出公共 IP。该运营商将 IP 推送到 XCOM。SSHOperator
运行远程命令。EC2StopInstanceOperator
停止 ec2 实例。上述问题是:
airflow.providers.ssh.hooks.ssh.SSHHook
)无法访问 XCOM,只有操作员可以。PythonOperator
以找出公共 IP。谢谢!
答案 0 :(得分:0)
您可以使用 SSHOperator
的 remote_host
参数来设置要连接的主机。此设置“将替换在 ssh_hook 中定义或在 ssh_conn_id 连接中预定义的 remote_host。”
remote_host
参数是模板化的,因此您可以从 XCOM using a template macro 读取 IP。