气流加密变量

问题描述 投票:7回答:1

Airflow更新为1.9后,所有变量都创建为加密。

是否可以禁用加密?

airflow airflow-scheduler
1个回答
1
投票

1-The Croods方式......

 from airflow.models import get_fernet
    from airflow.models import Variable
    var_to_decryp = Variable.get("var_name",deserialize_json=True)
    fernet = get_fernet()
    decryp_value = fernet.decrypt(bytes(var_to_decryp, 'utf-8')).decode()

2 - 正确的方法是使用Variable模型中的get_val():

def get_val(self):
    log = LoggingMixin().log
    if self._val and self.is_encrypted:
        try:
            fernet = get_fernet()
            return fernet.decrypt(bytes(self._val, 'utf-8')).decode()
        except InvalidFernetToken:
            log.error("Can't decrypt _val for key={}, invalid token "
                      "or value".format(self.key))
            return None
        except Exception:
            log.error("Can't decrypt _val for key={}, FERNET_KEY "
                      "configuration missing".format(self.key))
            return None
    else:
        return self._val

但我不知道如何,这是家庭作业。

© www.soinside.com 2019 - 2024. All rights reserved.