如何在Airflow MySQLHook中支持SSL(尤其是AWS 2019CA)

问题描述 投票:0回答:1

我一直在Airflow DAG中愉快地使用MySQLHook,但是现在MySQL服务器(AWS RDS)将必须具有SSL连接。我的后端工程师告诉我,尤其应使用AWS 2019 CA.我查看了MySQLHook文档,并从https://airflow.readthedocs.io/en/stable/_modules/airflow/hooks/mysql_hook.html中找到了以下代码片段:

    if conn.extra_dejson.get('ssl', False):
        # SSL parameter for MySQL has to be a dictionary and in case
        # of extra/dejson we can get string if extra is passed via
        # URL parameters
        dejson_ssl = conn.extra_dejson['ssl']
        if isinstance(dejson_ssl, six.string_types):
            dejson_ssl = json.loads(dejson_ssl)
        conn_config['ssl'] = dejson_ssl 

看来我需要在Airflow中MySQL连接的额外部分中以JSON(“ SSL”密钥)的形式指定一些配置,但是我找不到任何这样的示例。有人可以启发我吗?任何指针或此类JSON的示例将不胜感激。

mysql airflow amazon-rds
1个回答
0
投票

您的Connection.extra数据应为JSON字符串,其中包含ssl对象,该对象适合根据mysql_ssl_set上的“函数和属性”部分进行传递:]]

此参数采用字典或映射,其中键是mysql_ssl_set MySQL C API调用使用的参数名称。如果设置了此选项,它将启动与服务器的SSL连接;如果客户端中没有SSL支持,则会引发异常。这必须是关键字参数。

大概是这样的:mysql_ssl_set

© www.soinside.com 2019 - 2024. All rights reserved.