在Airflow管理网站中
当我更新http_default连接时,http传感器显示以下错误:
错误-无法创建Fernet对象:错误的填充
回溯(最近通话最近): get_fernet中的文件“ /usr/local/lib/python3.6/site-packages/airflow/models.py”,第173行 _fernet = Fernet(fernet_key.encode('utf-8')) init 中的文件“ /usr/local/lib/python3.6/site-packages/cryptography/fernet.py”,第35行 键= base64.urlsafe_b64decode(键) 网址safesafe_b64decode中的文件“ /usr/local/lib/python3.6/base64.py”,第133行 返回b64decode b64decode中的文件“ /usr/local/lib/python3.6/base64.py”,第87行 返回binascii.a2b_base64(s) binascii.Error:填充不正确
答案 0 :(得分:0)
似乎您的$ FERNET_KEY没有设置。
echo $FERNET_KEY
的输出吗?fernet_key =
中的airflow.cfg
项吗?如果这些为空,则可以使用一些Python代码生成一个新的代码:
from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())
然后在airflow.cfg
下的fernet_key =
中设置此值。
另外,您也可以通过export AIRFLOW__CORE__FERNET_KEY=your_fernet_key
进行设置(如果您动态构建环境,则可以提供更大的灵活性)。
重要的注意事项
Fernet密钥用于加密连接的凭据,因此需要确保它安全,以便以后能够对其解密。如果您之前使用另一个Fernet密钥创建了一些连接,并且如上所述生成了一个新的连接,则旧的连接将不起作用,并且一旦将新密钥设置到位,就必须重新创建。