此错误是因为缺少Airflow的加密密钥FERNET_KEY导致的。可以按照下列方法解决此问题。
1.首先,在Airflow的配置文件中(通常是airflow.cfg)添加或更新FERNET_KEY参数。这个参数必须是一个32个字符长度的字符串,可以使用Python的Fernet库生成。
例如:
from cryptography.fernet import Fernet
key = Fernet.generate_key()
print(key.decode())
将生成一个32个字符长度的密钥,将其复制并将其添加到Airflow的配置文件中:
# airflow.cfg
...
FERNET_KEY = "yourencryptedkey"
...
2.如果您使用的是Docker或Kubernetes等容器平台,可以通过设置环境变量来配置FERNET_KEY。例如,在Docker Compose文件中添加以下行:
# docker-compose.yml
...
services:
webserver:
environment:
- FERNET_KEY=yourencryptedkey
...
3.重启Airflow服务以使更改生效。
注意:如果已经在使用Airflow并且有任务正在运行,更改FERNET_KEY可能导致无法解密存储在数据库中的密码,因此,请谨慎更改。