气流加密变量

Ale*_*hov 9 airflow airflow-scheduler

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

是否可以禁用加密?

小智 1

1、克鲁兹的方式……

 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()
Run Code Online (Sandbox Code Playgroud)

2-正确的方法是使用变量模型中的 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
Run Code Online (Sandbox Code Playgroud)

但我不知道怎么做,那是家庭作业。