管理 Apache Airflow 中的变量2025年6月11日 | 阅读4分钟 引言Apache Airflow 提供了一种使用变量存储和检索配置值的方法。 当您需要存储动态或特定于环境的值(例如 API 密钥、数据库连接字符串或配置设置)时,这些变量非常有用。 变量允许更好的灵活性和安全性,而不是将这些值硬编码到 DAG 中。 Airflow 变量可以通过多种方法进行管理,包括
将变量存储在环境变量中存储 Apache Airflow 变量的推荐方法之一是使用环境变量。 这种方法简化了配置管理,增强了安全性,并允许将动态值注入到 DAG 中,而无需修改代码或与 Airflow UI 交互。 为什么使用环境变量?将变量存储在环境变量中具有多个优点
如何在环境变量中存储变量Airflow 提供了一种内置方法,可以通过环境变量定义变量,遵循特定的命名约定。 命名约定 每个变量应以 AIRFLOW_VAR_ 为前缀,后跟大写的变量名。 语法是 AIRFLOW_VAR_<VARIABLE_NAME> 其中
在不同环境中设置环境变量在本地系统 (Linux/macOS) 中设置变量您可以使用终端会话中的 export 命令来设置环境变量 为了使这些更改在重启后仍然有效,请将它们添加到您的 shell 配置文件(~/.bashrc 或 ~/.zshrc)中 在本地系统 (Windows) 中设置变量在 Windows 上,使用 set 命令 要验证变量是否已设置,请使用 在 Docker 中设置环境变量如果在 Docker Compose 中运行 Airflow,请在 docker-compose.yml 文件中的 environment 部分下定义变量 或者,您可以使用 .env 文件 .env 文件 在 Kubernetes 中设置环境变量如果在 Kubernetes 上运行 Airflow,请在 ConfigMap 或 Secret 中定义变量。 示例 ConfigMap: 将 ConfigMap 挂载到 Airflow 部署 在 Airflow DAG 中访问环境变量设置环境变量后,可以使用 airflow.models.Variable 中的 Variable.get() 方法在 DAG 中访问它。 注意:由于 Airflow 会自动将环境变量映射到变量,因此您无需在 Airflow 元数据数据库中定义它们。管理环境变量的最佳实践
保护变量由于变量通常存储敏感信息(如 API 密钥、凭据和令牌),因此保护它们至关重要。 使用环境变量而不是元数据数据库
使用秘密管理系统
启用基于角色的访问控制 (RBAC)
使用加密连接
限制对 Airflow 配置文件的访问
在 UI 中屏蔽敏感变量
审计日志和监控
在 Apache Airflow 中有效管理变量对于安全性和可维护性至关重要。 将变量存储在环境变量中有助于将敏感信息保留在元数据数据库之外,同时使用 Secrets Managers、RBAC 和加密对其进行保护可增强安全性。 通过遵循最佳实践,您可以防止 Airflow 环境中关键配置的泄漏和未经授权的访问。 下一主题Airflow 的公共接口 |
我们请求您订阅我们的新闻通讯以获取最新更新。