要解决Airflow无法使用本地文件系统作为密钥后端的问题,可以使用Airflow提供的airflow.contrib.secrets.file_system.FileSystemSecretsBackend类来自定义密钥后端。
以下是一个解决方法的代码示例:
custom_secrets_backend.py的文件,并将以下代码添加到文件中:from airflow.contrib.secrets.file_system import FileSystemSecretsBackend
class CustomFileSystemSecretsBackend(FileSystemSecretsBackend):
def __init__(self):
super().__init__()
def get_conn_uri(self, conn_id):
# 自定义密钥获取逻辑,可以根据需要修改
conn_uri = super().get_conn_uri(conn_id)
# 在这里可以处理密钥的逻辑
# ...
return conn_uri
airflow.cfg)找到secrets_backend配置项,并将其值设置为custom_secrets_backend.CustomFileSystemSecretsBackend[secrets]
backend = custom_secrets_backend.CustomFileSystemSecretsBackend
现在,当Airflow需要使用密钥时,会调用CustomFileSystemSecretsBackend类中的get_conn_uri方法来获取密钥。您可以根据需要修改get_conn_uri方法中的逻辑来处理密钥。