要解决Airflow变量加密不显示的问题,可以按照以下步骤进行:
cryptography
库。可以使用以下命令安装:pip install cryptography
airflow.cfg
中,找到并确保以下配置项设置为True
:[core]
...
enable_xcom_pickling = True
这将确保变量的加密信息可以正确地传递和存储。
Variable
和VariableSaver
类:from airflow.models import Variable, VariableSaver
from airflow.models import Variable, VariableSaver
# 加密变量
encrypted_value = Variable.set("my_variable", "my_value", serialize_json=True, serialize_fn=VariableSaver.serialize_value)
# 解密变量
decrypted_value = Variable.get("my_variable", deserialize_json=True, deserialize_fn=VariableSaver.deserialize_value)
print(decrypted_value)
在上述代码中,Variable.set
方法用于加密变量,并将加密的值存储在Airflow的数据库中。serialize_json=True
和serialize_fn=VariableSaver.serialize_value
确保变量以JSON格式进行序列化和存储。
Variable.get
方法用于解密变量,并返回解密后的值。deserialize_json=True
和deserialize_fn=VariableSaver.deserialize_value
确保从数据库中获取的加密值以JSON格式进行反序列化。
请注意,上述代码中的"my_variable"
和"my_value"
是示例值,你需要根据自己的实际情况进行替换。
通过以上步骤,你应该能够正确地加密和解密Airflow的变量,并在控制台上显示解密后的值。