Airflow 如何向气流添加新的连接类型?

Airflow 如何向气流添加新的连接类型?,airflow,Airflow,查看plugin文档(),很清楚如何添加新的钩子和操作符,但我正在添加一个需要连接信息的新钩子。此信息似乎是在aiffort/models.py中硬编码的。有没有办法在不改变Airflow源代码的情况下将我自己的连接类型添加到列表中?。所以,如果您不关心为自定义钩子指定唯一的类型名称,那么您可以在钩子实现中指定默认连接值 从airflow.Exception导入AirflowException 从afflow.hooks.base\u hook导入BaseHook 从airflow.utils.

查看plugin文档(),很清楚如何添加新的钩子和操作符,但我正在添加一个需要连接信息的新钩子。此信息似乎是在
aiffort/models.py
中硬编码的。有没有办法在不改变Airflow源代码的情况下将我自己的连接类型添加到列表中?

。所以,如果您不关心为自定义钩子指定唯一的类型名称,那么您可以在钩子实现中指定默认连接值

从airflow.Exception导入AirflowException
从afflow.hooks.base\u hook导入BaseHook
从airflow.utils.db导入提供\u会话
类MyHook(BaseHook):
# ... 无论你想要什么。
@类方法
@提供会话
def get_hook(cls,conn_id='myhook\u default',session=None):
尝试:
conn=cls.get\u连接(conn\u id)
除航空例外:
#创建默认连接。只跑一次。
连接=连接(
连接id=连接id,
#conn_type='string500',#您可以在这里提供新的类型string。但是没有适合您的UI组件。只需保留它。
host='default.example.com',
端口=80,
login='default\u login',
密码=“默认值”,
extra=json.dumps({…您需要的额外结果…}),
)
会话.添加(康涅狄格州)
session.commit()
返回MyHook(conn=conn)

为什么要添加新的连接类型?我也想知道这个问题的答案。例如,一个用例是编写利用特定API包装器的操作符。一、 首先,我愿意编写操作符,但不想修改基本气流安装以添加新连接