我一直在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的示例将不胜感激。
您的Connection.extra
数据应为JSON字符串,其中包含ssl
对象,该对象适合根据mysql_ssl_set
上的“函数和属性”部分进行传递:]]
此参数采用字典或映射,其中键是mysql_ssl_set MySQL C API调用使用的参数名称。如果设置了此选项,它将启动与服务器的SSL连接;如果客户端中没有SSL支持,则会引发异常。这必须是关键字参数。
大概是这样的:
mysql_ssl_set