从Airflow连接中提取额外参数
我在Airflow中定义了一个连接到Snowflake的设置。
我使用下面的代码来选择用户、密码和模式:
conn = BaseHook.get_connection("snowflake_conn")
conn.login
这段代码返回登录信息(在这个例子中是登录名)。
但是如果我尝试访问“额外”的参数,就不行了。
conn = BaseHook.get_connection("snowflake_conn")
conn.role
这时会出现一个AttributeError: 'Connection' object has no attribute 'role'的错误。
有没有其他方法可以从Airflow的连接设置中获取这些额外的参数呢?
1 个回答
1
额外的参数会存储在 extra
字段里。如果你想访问这些参数,首先需要把它从字符串转换成 Python 字典。你可以使用 Connection.extra_dejson
这个属性来完成这个转换。
conn = BaseHook.get_connection("snowflake_conn")
conn.extra_dejson.get("role")