用于许多DAG和DAG环境的Airflow配置工具
项目描述
airflow-config
Apache Airflow 的工具,用于配置许多DAG和DAG环境
概述
这个库允许通过 YAML
驱动的Airflow配置,包括DAG、操作符和声明式定义的DAG(类似于 dag-factory)。它使用 Pydantic、Hydra 和 OmegaConf 构建。
考虑以下基本的DAG
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime, timedelta
with DAG(
dag_id="test-dag",
default_args={
"depends_on_past": False,
"email": ["my.email@myemail.com"],
"email_on_failure": False,
"email_on_retry": False,
"retries": 0,
},
description="test that dag is working properly",
schedule=timedelta(minutes=1),
start_date=datetime(2024, 1, 1),
catchup=False,
tags=["utility", "test"],
):
BashOperator(
task_id="test-task",
bash_command="echo 'test'",
)
我们已看到许多可能希望通过配置集中管理的选项,例如基于某些环境概念(例如 dev
、prod
等)。
"email": ["my.email@myemail.com"]
"email_on_failure": False
"email_on_retry": False
"retries": 0
schedule=timedelta(minutes=1)
tags=["utility", "test"]
如果我们想在我们的DAG中更改这些,我们需要修改代码。现在想象一下,我们有成百上千个DAG,这会迅速变得难以控制,特别是由于Airflow DAG是Python代码,我们很容易注入语法错误或尾随逗号或其他常见问题。
现在考虑另一种配置驱动的替代方法
config/config.yaml
# @package _global_
_target_: airflow_config.Configuration
default_args:
_target_: airflow_config.DefaultArgs
owner: test
email: [myemail@myemail.com]
email_on_failure: false
email_on_retry: false
retries: 0
depends_on_past: false
all_dags:
_target_: airflow_config.DagArgs
schedule: "01:00"
start_date: "2024-01-01"
catchup: false
tags: ["utility", "test"]
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow_config import DAG, load_config
config = load_config()
with DAG(dag_id="test-dag", description="test that dag is working properly", config=config):
BashOperator(
task_id="test-task",
bash_command="echo 'test'",
)
这有几个优点
- 无需代码更改即可进行更改,具有静态类型验证
- 无需复制粘贴即可跨多个DAG进行更改
- 将DAG集合组织成组,例如通过
dev
、prod
等环境
配置
更多文档即将推出!
许可证
本软件根据Apache 2.0许可证授权。有关详细信息,请参阅LICENSE文件。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
airflow_config-0.1.3.tar.gz (23.5 kB 查看哈希)
构建分发
airflow_config-0.1.3-py3-none-any.whl (33.4 kB 查看哈希)
关闭
airflow_config-0.1.3.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 54f498daf486c757dbbbee9a0778eebb45e6d61c8bd3108677d4be2f4d4f001f |
|
MD5 | 3b1f505f0b3eab8adf9c8e3f433f7859 |
|
BLAKE2b-256 | e07275dbb1cc2b9cbba37d47ffa710e35bd2bf37a0fcff7429eabc8c60b11782 |
关闭
airflow_config-0.1.3-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0d64e759eecdaf62e11360289559baa880b07ef435e04c625500c8c9e16cb05d |
|
MD5 | e116a423672f24cb10021037cc0d0e76 |
|
BLAKE2b-256 | cd024405e4e2766731c456bee031ad4f642d99e91e40d94442914f2dc57ade0e |