我正在考虑将气流从ECS移动到MWAA,显然效果很好。但是从CICD的角度来看,加载连接有一些限制。基于文档,我们不能使用命令行建立连接,因为他们在这里说:https://docs.aws.amazon.com/mwaa/latest/userguide/access-airflow-ui.html#call-mwaa-apis-cli
我知道我们可以使用UI来做这件事,但这不是我们的目的。有没有人知道如何处理这种情况,或者是否有任何方法可以通过自动化的方式进行处理?
非常感谢Xavy
发布于 2021-03-07 08:33:49
您可以在DAG中添加一个步骤,如果环境中不存在该连接,该步骤将以编程方式添加该连接:
def add_connection_callable(**kwargs):
connection: Connection = Connection(
conn_id="foo",
conn_type="HTTP",
host=kwargs['host'],
port=kwargs['port']
)
session: Session = settings.Session
db_connection: Connection = session.query(Connection) \
.filter(Connection.conn_id == "foo") \
.first()
if db_connection is None:
logging.info("Adding connection \"foo\"..")
session.add(connection)
session.commit()
else:
logging.info("Connection \"foo\" already exists.")
add_connection: PythonOperator = PythonOperator(
task_id="add_connection",
python_callable=add_connection_callable,
op_kwargs={
"host": "{{ dag_run.conf['Host'] }}",
"port": "{{ dag_run.conf['Port'] }}"
},
dag=dag)https://stackoverflow.com/questions/66461183
复制相似问题