以编程方式创建气流池

Sno*_*ire 2 docker airflow

我已经airflow在 docker 容器上运行。我正在使用气流version 2.0.2

我知道我实际上可以通过 UI 创建池。但我正在寻找一种通过文件在 docker build 上以编程方式创建池的方法pools.json。有什么办法可以帮忙吗?

Bas*_*lak 5

您可以通过REST APICLI以编程方式执行此操作。REST API 允许通过 HTTP 逐一添加池。CLI 有一个用于从 JSON 文件导入池的命令:

airflow pools import [-h] [-v] FILEPATH
Run Code Online (Sandbox Code Playgroud)

例如:

{
    "pool_1": {"slots": 5, "description": ""},
    "pool_2": {"slots": 5, "description": "test"}
}
Run Code Online (Sandbox Code Playgroud)

格式为:"[pool name]": {"slots": [nr of slots], "description": "[description]"}

airflow pools import pools.json
Run Code Online (Sandbox Code Playgroud)

该命令具有幂等性,因此您可以根据需要多次运行它。对现有池的更改会导致更新,并将创建新池。从中删除池pools.json并不会删除 Airflow 中的池 - 您必须手动执行此操作。

由于它是幂等的,因此您可以pools.json在 Airflow 映像中构建一个文件并airflow pools import在容器进程开始时运行,以便在每个 Airflow 容器开始时检查池。