Airflow 加密变量

标签 airflow airflow-scheduler

Airflow 更新到 1.9 后,所有变量均以加密方式创建。

是否可以禁用加密?

最佳答案

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()

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

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

关于Airflow 加密变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49074060/

相关文章:

airflow-scheduler - 如何版本控制 Airflow 变量和连接?

kubernetes - Airflow 何时使用 KubernetesExecutor 与 KubernetesPodOperator?

运行 Airflow 命令行后,sqlite3 引发错误

python - 有没有办法将任务的返回值存储在Python变量中并与下游任务共享(不使用xcom或airflow变量)

python - Airflow - 收到意外的关键字参数 'dag'

python - GCP Apache Airflow - 如何从私有(private)存储库安装 Python 包并在 DAG 上导入?

python - 重新运行失败的 SubDAG

Airflow 以编程方式取消暂停 dag?

kubernetes - Kubernetes 与 Apache Airflow 的集成

airflow - Airflow 可以扩展多少?