Airflow 峰会 2025 将于 10 月 07-09 日举行。立即注册,享早鸟票!

配置参考

本页包含所有可用 Airflow 配置的列表,您可以在 airflow.cfg 文件或使用环境变量进行设置。

在所有 Airflow 组件中使用相同的配置。虽然每个组件不需要所有配置,但有些配置必须相同,否则它们将无法按预期工作。一个很好的例子是 secret_key,它在 Webserver 和 Worker 上必须相同,以允许 Webserver 从 Worker 获取日志。

webserver 密钥也用于在检索日志时授权对 Celery worker 的请求。使用密钥生成的令牌有效期很短——请确保运行 Airflow 组件的所有机器上的时间同步(例如使用 ntpd),否则在访问日志时可能会出现“forbidden”错误。

注意

更多信息请参阅 设置配置选项

Provider 特定配置选项

部分 providers 有自己的配置选项,您可以在 provider 的文档中找到其配置详情。

您可以在 configurations specific to providers 中找到所有 provider 配置。

Airflow 配置选项

[api]

access_control_allow_headers

添加于版本 2.1.0。

用于响应预检请求,指示在进行实际请求时可以使用哪些 HTTP 头。此头是服务器端对浏览器 Access-Control-Request-Headers 头的响应。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__ACCESS_CONTROL_ALLOW_HEADERS

access_control_allow_methods

添加于版本 2.1.0。

指定访问资源时允许的方法。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__ACCESS_CONTROL_ALLOW_METHODS

access_control_allow_origins

添加于版本 2.2.0。

指示响应是否可以与来自给定源的请求代码共享。用空格分隔 URL。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__ACCESS_CONTROL_ALLOW_ORIGINS

access_logfile

API 服务器的日志文件。‘-’ 表示日志输出到 stderr。

类型:

字符串

默认值:

-

环境变量:

AIRFLOW__API__ACCESS_LOGFILE

base_url

API 服务器的基本 URL。Airflow 无法猜测您使用的是哪个域名或 CNAME。如果 Airflow 控制台(前端)和 API 服务器位于不同的域名下,此配置应包含 API 服务器端点。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API__BASE_URL

示例:

https://my-airflow.company.com

enable_xcom_deserialize_support

添加于版本 2.7.0。

指示 **xcomEntries** 端点是否支持 **deserialize** 标志。如果设置为 False,在请求中设置此标志将导致 400 Bad Request 错误。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__API__ENABLE_XCOM_DESERIALIZE_SUPPORT

fallback_page_limit

添加于版本 2.0.0。

用于在 API 请求中 limit 参数为零或未提供时设置默认页面限制。否则,如果在 API 请求中将正整数作为 limit 传递,则将用户给定的 limit 或最大页面限制中较小的那个数字作为限制。

类型:

整数

默认值:

50

环境变量:

AIRFLOW__API__FALLBACK_PAGE_LIMIT

host

启动 API 服务器时指定的 IP

类型:

字符串

默认值:

0.0.0.0

环境变量:

AIRFLOW__API__HOST

maximum_page_limit

添加于版本 2.0.0。

用于设置 API 请求的最大页面限制。如果作为参数传递的 limit 大于最大页面限制,则将被忽略,最大页面限制值将设置为 limit。

类型:

整数

默认值:

100

环境变量:

AIRFLOW__API__MAXIMUM_PAGE_LIMIT

port

运行 API 服务器的端口

类型:

字符串

默认值:

8080

环境变量:

AIRFLOW__API__PORT

ssl_cert

API 服务器 SSL 证书和密钥的路径。同时提供这两个路径时将启用 SSL。这不会更改 API 服务器端口。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__SSL_CERT

ssl_key

API 服务器 SSL 证书和密钥的路径。同时提供这两个路径时将启用 SSL。这不会更改 API 服务器端口。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__SSL_KEY

worker_timeout

API 服务器在 worker 上超时前等待的秒数

类型:

字符串

默认值:

120

环境变量:

AIRFLOW__API__WORKER_TIMEOUT

workers

在 API 服务器上运行的 worker 数量

类型:

字符串

默认值:

4

环境变量:

AIRFLOW__API__WORKERS

[api_auth]

与 Airflow API 身份验证相关的设置

jwt_algorithm

添加于版本 3.0.0。

生成和验证 JWT Task Identities 时使用的算法名称。

此值必须适合给定的私钥类型。

如果未指定,Airflow 会根据密钥类型猜测最适合的算法。

(如果设置了 jwt_secret 则为 "HS512",否则根据密钥类型猜测)

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API_AUTH__JWT_ALGORITHM

示例:

"EdDSA" "HS512"

jwt_audience

添加于版本 3.0.0。

生成和验证 API 的 JWT 时使用的 audience claim。

此变量可以是单个值,也可以是逗号分隔的字符串;如果是字符串,则第一个值用于生成,其他值在验证时接受。

非必需,但强烈建议设置。

另请参阅 jwt_audience

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API_AUTH__JWT_AUDIENCE

示例:

my-unique-airflow-id

jwt_cli_expiration_time

添加于版本 3.0.0。

用于 CLI 命令身份验证的 JWT 过期时间(秒)。令牌过期后,所有使用此令牌的 CLI 调用将因身份验证失败而失败。

确保运行 Airflow 组件的所有机器上的时间同步(例如使用 ntpd),否则可能会遇到“forbidden”错误。

类型:

整数

默认值:

3600

环境变量:

AIRFLOW__API_AUTH__JWT_CLI_EXPIRATION_TIME

jwt_expiration_time

添加于版本 3.0.0。

用于身份验证的 JWT 过期时间(秒)。令牌过期后,所有使用此令牌的 API 调用将因身份验证失败而失败。

确保运行 Airflow 组件的所有机器上的时间同步(例如使用 ntpd),否则可能会遇到“forbidden”错误。

另请参阅 jwt_expiration_time

类型:

整数

默认值:

86400

环境变量:

AIRFLOW__API_AUTH__JWT_EXPIRATION_TIME

jwt_issuer

添加于版本 3.0.0。

JWT 的颁发者。这将成为生成的令牌的 iss claim,并在传入请求时进行验证。

理想情况下,每个独立的 Airflow 部署都应该独一无二。

非必需,但强烈建议设置。

另请参阅 jwt_audience

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API_AUTH__JWT_ISSUER

示例:

http://my-airflow.mycompany.com

jwt_kid

添加于版本 3.0.0。

生成 JWT 时放在 header 中的 Key ID。不在验证路径中使用。

如果未指定,将使用私钥的 RFC7638 thumbprint。

使用 jwt_secret 时忽略。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API_AUTH__JWT_KID

示例:

my-key-id

jwt_leeway

添加于版本 3.0.0。

验证 JWT 过期时间时的秒数容差,用于弥补客户端和服务器之间的时钟偏差。

类型:

整数

默认值:

10

环境变量:

AIRFLOW__API_AUTH__JWT_LEEWAY

jwt_private_key_path

添加于版本 3.0.0。

包含 PEM 编码私钥的文件路径,用于在 executor 中生成 Task Identity 令牌。

jwt_secret 互斥。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API_AUTH__JWT_PRIVATE_KEY_PATH

示例:

/path/to/private_key.pem

jwt_secret

添加于版本 3.0.0。

用于编码和解码 JWT 以向公共和私有 API 进行身份验证的密钥。

它应尽可能随机。但是,当运行多个 API 服务实例时,请确保它们都使用相同的 jwt_secret,否则调用将因身份验证失败而失败。

jwt_private_key_path 互斥。

类型:

字符串

默认值:

{JWT_SECRET_KEY}

环境变量:

AIRFLOW__API_AUTH__JWT_SECRET

AIRFLOW__API_AUTH__JWT_SECRET_CMD

AIRFLOW__API_AUTH__JWT_SECRET_SECRET

trusted_jwks_url

添加于版本 3.0.0。

要信任的 Task Execution 令牌颁发者的公共签名密钥。它必须包含与 jwt_private_key_path 相关的公钥,否则任务不太可能成功执行。

可以是本地文件路径(不带 file:// 前缀)或 http/https URL。

如果给出远程 URL,它将定期轮询以获取更改。

jwt_secret 互斥。

如果提供了 jwt_private_key_path 但未设置此项,则私钥将被信任。如果提供了此项,您有责任确保用于生成的私钥在此列表中。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__API_AUTH__TRUSTED_JWKS_URL

示例:

"/path/to/public-jwks.json" "https://my-issuer/.well-known/jwks.json"

[core]

allowed_deserialization_classes

添加于版本 2.5.0。

反序列化过程中可以导入的类的空格分隔列表。项目可以是 glob 表达式。Python 内置类(如 dict)始终允许。

类型:

字符串

默认值:

airflow.*

环境变量:

AIRFLOW__CORE__ALLOWED_DESERIALIZATION_CLASSES

示例:

airflow.* my_mod.my_other_mod.TheseClasses*

allowed_deserialization_classes_regexp

添加于版本 2.8.2。

反序列化过程中可以导入的类的空格分隔列表。项目按 regex 表达式处理。Python 内置类(如 dict)始终允许。这是 [core] allowed_deserialization_classes 的次要选项。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__ALLOWED_DESERIALIZATION_CLASSES_REGEXP

asset_manager_class

添加于版本 3.0.0。

用作资产管理器的类。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__CORE__ASSET_MANAGER_CLASS

示例:

airflow.assets.manager.AssetManager

asset_manager_kwargs

添加于版本 3.0.0。

提供给资产管理器的 Kwargs。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__CORE__ASSET_MANAGER_KWARGS

AIRFLOW__CORE__ASSET_MANAGER_KWARGS_CMD

AIRFLOW__CORE__ASSET_MANAGER_KWARGS_SECRET

示例:

{"some_param": "some_value"}

auth_manager

添加于版本 2.7.0。

Airflow 应使用的 auth manager 类。auth manager 类的完整导入路径。

类型:

字符串

默认值:

airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager

环境变量:

AIRFLOW__CORE__AUTH_MANAGER

compress_serialized_dags

添加于版本 2.3.0。

如果为 True,则在写入数据库前压缩序列化的 DAG。

注意

这将禁用 DAG 依赖关系视图

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__CORE__COMPRESS_SERIALIZED_DAGS

daemon_umask

添加于版本 2.3.4。

在守护进程模式(scheduler、worker 等)下运行时使用的默认 umask。

这控制文件创建模式掩码,决定新创建文件的初始文件权限位值。

此值被视为八进制整数。

类型:

字符串

默认值:

0o077

环境变量:

AIRFLOW__CORE__DAEMON_UMASK

dag_discovery_safe_mode

添加于版本 1.10.3。

如果启用,Airflow 将只扫描包含 DAGairflow (不区分大小写) 的文件。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__CORE__DAG_DISCOVERY_SAFE_MODE

dag_ignore_file_syntax

添加于版本 2.3.0。

DAG 目录中 .airflowignore 文件中使用的模式语法。有效值为 regexpglob

类型:

字符串

默认值:

glob

环境变量:

AIRFLOW__CORE__DAG_IGNORE_FILE_SYNTAX

dag_run_conf_overrides_params

是否用 dag_run.conf 覆盖 params。如果您通过 airflow dags backfill -cairflow dags trigger -c 传递一些键值对,这些键值对将覆盖 params 中已有的项。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__CORE__DAG_RUN_CONF_OVERRIDES_PARAMS

dagbag_import_error_traceback_depth

添加于版本 2.0.0。

如果显示 traceback,应显示 traceback 中的多少项。

类型:

整数

默认值:

2

环境变量:

AIRFLOW__CORE__DAGBAG_IMPORT_ERROR_TRACEBACK_DEPTH

dagbag_import_error_tracebacks

添加于版本 2.0.0。

对于 dagbag 导入错误,UI 中是否应显示 traceback,而不仅仅是异常消息。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__CORE__DAGBAG_IMPORT_ERROR_TRACEBACKS

dagbag_import_timeout

Python 文件导入超时前的时间。

类型:

浮点数

默认值:

30.0

环境变量:

AIRFLOW__CORE__DAGBAG_IMPORT_TIMEOUT

dags_are_paused_at_creation

DAG 在创建时是否默认暂停。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION

dags_folder

您的 Airflow 管道所在的文件夹,很可能是代码仓库中的一个子文件夹。此路径必须是绝对路径。

类型:

字符串

默认值:

{AIRFLOW_HOME}/dags

环境变量:

AIRFLOW__CORE__DAGS_FOLDER

database_access_isolation

添加于版本 2.6.0。

(实验性)组件是否应使用 Airflow Internal API 进行数据库连接。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__CORE__DATABASE_ACCESS_ISOLATION

default_impersonation

如果设置,没有 run_as_user 参数的任务将以此用户身份运行。可用于在执行任务时降低运行 Airflow 的 sudo 用户的权限。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__DEFAULT_IMPERSONATION

default_pool_task_slot_count

添加于版本 2.2.0。

default_pool 的任务槽计数。此设置对于已经创建 default_pool 的现有部署无效。对于现有部署,用户可以使用 Webserver、API 或 CLI 更改槽数。

类型:

字符串

默认值:

128

环境变量:

AIRFLOW__CORE__DEFAULT_POOL_TASK_SLOT_COUNT

default_task_execution_timeout

添加于版本 2.3.0。

operators 的默认任务执行超时值。期望一个整数值作为秒传递给 timedelta。如果未指定,则该值被视为 None,意味着 operators 默认永不超时。

类型:

整数

默认值:

''

环境变量:

AIRFLOW__CORE__DEFAULT_TASK_EXECUTION_TIMEOUT

default_task_retries

添加于版本 1.10.6。

每个任务默认重试次数。可以在 dag 或任务级别覆盖。

类型:

字符串

默认值:

0

环境变量:

AIRFLOW__CORE__DEFAULT_TASK_RETRIES

default_task_retry_delay

添加于版本 2.4.0。

每个任务默认在重试之间等待的秒数。可以在 dag 或任务级别覆盖。

类型:

整数

默认值:

300

环境变量:

AIRFLOW__CORE__DEFAULT_TASK_RETRY_DELAY

default_task_weight_rule

添加于版本 2.2.0。

用于计算任务有效总优先级权重的方法。

类型:

字符串

默认值:

downstream

环境变量:

AIRFLOW__CORE__DEFAULT_TASK_WEIGHT_RULE

default_timezone

在提供的日期时间是朴素(naive)时使用的默认时区,可以是 UTC(默认)、system,或任何 IANA <https://www.iana.org/time-zones> 时区字符串(例如 Europe/Amsterdam)。

类型:

字符串

默认值:

utc

环境变量:

AIRFLOW__CORE__DEFAULT_TIMEZONE

donot_pickle

是否禁用 pickling dags。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__CORE__DONOT_PICKLE

execute_tasks_new_python_interpreter

添加于版本 2.0.0。

任务是否应通过父进程的 forking 执行。

  • False:通过父进程 forking 执行

  • True:生成新的 Python 进程,比 forking 慢,但意味着任务立即拾取插件更改

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__CORE__EXECUTE_TASKS_NEW_PYTHON_INTERPRETER

execution_api_server_url

添加于版本 3.0.0。

execution api 服务器的 URL。默认是 {BASE_URL}/execution/,其中 {BASE_URL} 是 API 服务器的基本 URL。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__CORE__EXECUTION_API_SERVER_URL

executor

Airflow 应使用的 executor 类。选项包括 LocalExecutorCeleryExecutorKubernetesExecutor 或使用自定义 executor 时的类的完整导入路径。

类型:

字符串

默认值:

LocalExecutor

环境变量:

AIRFLOW__CORE__EXECUTOR

fernet_key

用于在数据库中保存连接密码的密钥。

类型:

字符串

默认值:

{FERNET_KEY}

环境变量:

AIRFLOW__CORE__FERNET_KEY

AIRFLOW__CORE__FERNET_KEY_CMD

AIRFLOW__CORE__FERNET_KEY_SECRET

hide_sensitive_var_conn_fields

添加于版本 2.1.0。

当设置为 True 时,在 UI 和任务日志中隐藏敏感的 VariablesConnection extra json keys

注意

连接密码在日志中始终隐藏。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__CORE__HIDE_SENSITIVE_VAR_CONN_FIELDS

hostname_callable

通过提供可调用对象的路径来获取主机名。格式为“package.function”。

例如,默认值 airflow.utils.net.getfqdn 意味着使用 socket.getfqdn() 的修补版本的结果,请参阅相关的 CPython Issue

指定函数中不应要求任何参数。如果首选使用 IP 地址作为主机名,请使用值 airflow.utils.net.get_host_ip_address

类型:

字符串

默认值:

airflow.utils.net.getfqdn

环境变量:

AIRFLOW__CORE__HOSTNAME_CALLABLE

internal_api_secret_key

新增于 2.10.0 版本。

用于核心系统认证内部 API 客户端的密钥。它应尽可能随机。但是,当运行超过 1 个 Webserver / 内部 API 服务实例时,请确保所有实例都使用相同的 secret_key,否则调用将因认证失败而失败。使用密钥生成的认证令牌过期时间很短 - 请确保运行 Airflow 组件的 ALL 机器上的时间同步(例如使用 ntpd),否则在访问日志时可能会收到“forbidden”错误。

类型:

字符串

默认值:

{SECRET_KEY}

环境变量:

AIRFLOW__CORE__INTERNAL_API_SECRET_KEY

AIRFLOW__CORE__INTERNAL_API_SECRET_KEY_CMD

AIRFLOW__CORE__INTERNAL_API_SECRET_KEY_SECRET

internal_api_url

添加于版本 2.6.0。

(实验性) Airflow 内部 API URL。仅当 [core] database_access_isolation 设置为 True 时使用。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__CORE__INTERNAL_API_URL

示例:

http://localhost:8080

killed_task_cleanup_time

当任务被强制终止时,这是在发送 SIGTERM 后,到被 SIGKILLED 之前,任务进行清理的时间(以秒为单位)。

类型:

字符串

默认值:

60

环境变量:

AIRFLOW__CORE__KILLED_TASK_CLEANUP_TIME

lazy_discover_providers

添加于版本 2.0.0。

默认情况下,Airflow provider 是延迟发现的(仅在需要时进行发现和导入)。如果您希望在每次通过 cli 调用或从模块加载 'airflow' 时都发现 provider,请将其设置为 False

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__CORE__LAZY_DISCOVER_PROVIDERS

lazy_load_plugins

添加于版本 2.0.0。

默认情况下,Airflow 插件是延迟加载的(仅在需要时加载)。如果您希望在每次通过 cli 调用或从模块加载 'airflow' 时都加载插件,请将其设置为 False

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__CORE__LAZY_LOAD_PLUGINS

load_examples

是否加载 Airflow 自带的 DAG 示例。这对于入门很有用,但在生产环境中您可能需要将其设置为 False

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__CORE__LOAD_EXAMPLES

max_active_runs_per_dag

每个 DAG 的最大活跃 DAG 运行数。如果达到此限制,调度器将不会创建更多的 DAG 运行。这可以在 DAG 级别通过 max_active_runs 进行配置,默认值为 [core] max_active_runs_per_dag

类型:

字符串

默认值:

16

环境变量:

AIRFLOW__CORE__MAX_ACTIVE_RUNS_PER_DAG

max_active_tasks_per_dag

添加于版本 2.2.0。

每个 DAG 中允许同时运行的最大任务实例数。要计算 DAG 当前正在运行的任务数量,请将该 DAG 的所有 DAG 运行中正在运行的任务数量相加。这可以在 DAG 级别通过 max_active_tasks 进行配置,默认值为 [core] max_active_tasks_per_dag

此功能的一个有用场景示例是,当您希望阻止具有较早开始日期的新 dag 占用集群中所有执行器槽位。

类型:

字符串

默认值:

16

环境变量:

AIRFLOW__CORE__MAX_ACTIVE_TASKS_PER_DAG

max_consecutive_failed_dag_runs_per_dag

新增于 2.9.0 版本。

(实验性) DAG 自动暂停前连续失败的最大次数。这也可以在每个 DAG 级别通过 max_consecutive_failed_dag_runs 进行配置,默认值为 [core] max_consecutive_failed_dag_runs_per_dag。如果未指定,则该值被视为 0,表示默认情况下 dag 永远不会被暂停。

类型:

字符串

默认值:

0

环境变量:

AIRFLOW__CORE__MAX_CONSECUTIVE_FAILED_DAG_RUNS_PER_DAG

max_map_length

添加于版本 2.3.0。

XCom 可以推送的列表/字典的最大长度,用于触发任务映射。如果推送的列表/字典的长度超过此值,推送 XCom 的任务将自动失败,以防止映射任务阻塞调度器。

类型:

整数

默认值:

1024

环境变量:

AIRFLOW__CORE__MAX_MAP_LENGTH

max_num_rendered_ti_fields_per_task

新增于 1.10.10 版本。

每个任务存储在数据库中的渲染任务实例字段(模板字段)的最大数量。每个任务实例的所有 template_fields 都存储在数据库中。保持此数量较小可能会导致在尝试查看较早任务的 TaskInstance 视图中的 Rendered 标签页时出错。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__CORE__MAX_NUM_RENDERED_TI_FIELDS_PER_TASK

max_task_retry_delay

添加于版本 2.6.0。

默认情况下,每个任务在重试之间等待的最长延迟时间(以秒为单位)。这是一个全局设置,不能在任务或 DAG 级别覆盖。

类型:

整数

默认值:

86400

环境变量:

AIRFLOW__CORE__MAX_TASK_RETRY_DELAY

max_templated_field_length

新增于 2.9.0 版本。

渲染模板字段的最大长度。如果存储在渲染模板字段中的值超过此大小,则会将其 redacted。

类型:

整数

默认值:

4096

环境变量:

AIRFLOW__CORE__MAX_TEMPLATED_FIELD_LENGTH

might_contain_dag_callable

添加于版本 2.6.0。

一个可调用对象,用于检查 python 文件是否定义了 airflow dags,如果包含 dags 则应返回 True,否则返回 False。如果未提供此参数,Airflow 将使用其自身的启发式规则。

该函数应具有以下签名

def func_name(file_path: str, zip_file: zipfile.ZipFile | None = None) -> bool: ...
类型:

字符串

默认值:

airflow.utils.file.might_contain_dag_via_default_heuristic

环境变量:

AIRFLOW__CORE__MIGHT_CONTAIN_DAG_CALLABLE

min_serialized_dag_fetch_interval

新增于 1.10.12 版本。

为降低数据库读取速率,获取序列化 DAG 的速度不能快于最小间隔。此配置控制您的 DAG 在 Webserver 中的更新频率。

类型:

字符串

默认值:

10

环境变量:

AIRFLOW__CORE__MIN_SERIALIZED_DAG_FETCH_INTERVAL

min_serialized_dag_update_interval

新增于 1.10.7 版本。

为降低数据库写入速率,更新序列化 DAG 的速度不能快于最小间隔。

类型:

字符串

默认值:

30

环境变量:

AIRFLOW__CORE__MIN_SERIALIZED_DAG_UPDATE_INTERVAL

mp_start_method

添加于版本 2.0.0。

用于通过 multiprocessing 模块启动 Python 进程的方法名称。这直接对应于 Python 文档中可用的选项:multiprocessing.set_start_method 必须是 multiprocessing.get_all_start_methods() 返回的值之一。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__CORE__MP_START_METHOD

示例:

fork

parallelism

这定义了每个 Airflow 调度器可以同时运行的最大任务实例数量,与 worker 数量无关。通常,此值乘以集群中调度器的数量,就是元数据数据库中处于 running 状态的任务实例的最大数量。该值必须大于或等于 1。

类型:

字符串

默认值:

32

环境变量:

AIRFLOW__CORE__PARALLELISM

plugins_folder

包含 Airflow 插件的文件夹路径

类型:

字符串

默认值:

{AIRFLOW_HOME}/plugins

环境变量:

AIRFLOW__CORE__PLUGINS_FOLDER

security

要使用的安全模块(例如 kerberos)

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__SECURITY

sensitive_var_conn_names

添加于版本 2.1.0。

一个逗号分隔的额外敏感关键字列表,用于在变量名称或连接的 extra JSON 中查找。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__SENSITIVE_VAR_CONN_NAMES

simple_auth_manager_all_admins

添加于版本 3.0.0。

是否禁用身份验证并允许环境中的所有用户作为 admin。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_ALL_ADMINS

simple_auth_manager_passwords_file

添加于版本 3.0.0。

simple auth manager 存储已配置用户密码的 json 文件。默认是 AIRFLOW_HOME/simple_auth_manager_passwords.json.generated

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_PASSWORDS_FILE

示例:

/path/to/passwords.json

simple_auth_manager_users

添加于版本 3.0.0。

simple auth manager 中用户及其关联角色的列表。如果在您的环境中使用 simple auth manager,此列表控制谁可以访问环境。

用户-角色列表,以逗号分隔。每个用户-角色都是由用户名和角色组成的冒号分隔对。角色在 simple auth managers 中预定义:viewer, user, op, admin。

类型:

字符串

默认值:

admin:admin

环境变量:

AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_USERS

示例:

bob:admin,peter:viewer

task_success_overtime

新增于 2.10.0 版本。

任务标记为成功后,执行辅助进程(如 listener、mini scheduler 等)可能的最长耗时(以秒为单位)。

类型:

整数

默认值:

20

环境变量:

AIRFLOW__CORE__TASK_SUCCESS_OVERTIME

test_connection

添加于版本 2.7.0。

允许在 Airflow UI、API 和 CLI 中测试连接的功能。支持的选项:Disabled, Enabled, Hidden。默认值:Disabled Disabled - 禁用测试连接功能并禁用 UI 中的“测试连接”按钮。Enabled - 启用测试连接功能并在 UI 中显示“测试连接”按钮。Hidden - 禁用测试连接功能并在 UI 中隐藏“测试连接”按钮。在将其设置为 Enabled 之前,请确保您审核能够添加/编辑连接的用户,并确保他们是受信任的。恶意进行连接测试可能导致不期望和不安全的结果。更多详情请参阅 Airflow 安全模型:认证 UI 用户的能力

类型:

字符串

默认值:

Disabled

环境变量:

AIRFLOW__CORE__TEST_CONNECTION

unit_test_mode

开启单元测试模式(运行时将许多配置选项覆盖为测试值)

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__CORE__UNIT_TEST_MODE

xcom_backend

新增于 1.10.12 版本。

用于存储和解析操作符结果的自定义 XCom 类的路径

类型:

字符串

默认值:

airflow.sdk.execution_time.xcom.BaseXCom

环境变量:

AIRFLOW__CORE__XCOM_BACKEND

示例:

path.to.CustomXCom

[dag_processor]

Airflow DAG processor 的配置。例如,这包括
  • DAG bundles,它允许 Airflow 从不同来源加载 DAG

  • 解析配置,例如
    • 从这些来源刷新 DAG 的频率

    • 同时解析的文件数量

bundle_refresh_check_interval

DAG processor 应多久检查一次是否有任何 DAG bundles 已准备好刷新,无论是达到 bundles 的 refresh_interval 还是因为另一个 DAG processor 看到了 bundle 的较新版本。较低的值意味着我们更频繁地检查,并且 DAG processor 之间因解析相同 bundle 的不同版本而不同步的时间窗口更小。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__DAG_PROCESSOR__BUNDLE_REFRESH_CHECK_INTERVAL

dag_bundle_config_list

添加于版本 3.0.0。

后端配置列表。必须为每个后端提供 name, classpath 和 kwargs。

默认情况下,refresh_interval 设置为 [dag_processor] refresh_interval,但如果需要,也可以在 kwargs 中覆盖它。

默认是 dags 文件夹的 dag bundle。

注意:如下所示,您可以通过缩进将 json 配置分割到多行。请参阅 configparser 文档中的示例:https://docs.pythonlang.cn/3/library/configparser.html#supported-ini-file-structure

类型:

字符串

默认值:
[
  {
    "name": "dags-folder",
    "classpath": "airflow.dag_processing.bundles.local.LocalDagBundle",
    "kwargs": {}
  }
]
环境变量:

AIRFLOW__DAG_PROCESSOR__DAG_BUNDLE_CONFIG_LIST

示例:
[
  {
    "name": "my-git-repo",
    "classpath": "airflow.providers.git.bundles.git.GitDagBundle",
    "kwargs": {
      "subdir": "dags",
      "tracking_ref": "main",
      "refresh_interval": 0
    }
  }
]

dag_bundle_storage_path

添加于版本 3.0.0。

字符串路径,指向 Airflow bundles 可以在本地存储文件的文件夹。不可模板化。如果未提供路径,Airflow 将使用 Path(tempfile.gettempdir()) / "airflow"。此路径必须是绝对路径。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__DAG_PROCESSOR__DAG_BUNDLE_STORAGE_PATH

示例:

/tmp/some-place

dag_file_processor_timeout

DagFileProcessor 处理 dag 文件超时前的时间

类型:

字符串

默认值:

50

环境变量:

AIRFLOW__DAG_PROCESSOR__DAG_FILE_PROCESSOR_TIMEOUT

disable_bundle_versioning

始终使用最新代码运行任务。如果设置为 True,bundle 版本将不会存储在 dag run 上,因此始终使用最新代码。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__DAG_PROCESSOR__DISABLE_BUNDLE_VERSIONING

file_parsing_sort_mode

modified_time, random_seeded_by_hostalphabetical 之一。DAG processor 将列出并排序 dag 文件以决定解析顺序。

  • modified_time: 按文件的修改时间排序。这在大规模环境中很有用,可以优先解析最近修改的 DAG。

  • random_seeded_by_host: 在多个 DAG processor 中随机排序,但在同一主机上顺序相同,允许每个 processor 以不同的顺序解析文件。

  • alphabetical: 按文件名排序

类型:

字符串

默认值:

modified_time

环境变量:

AIRFLOW__DAG_PROCESSOR__FILE_PARSING_SORT_MODE

max_callbacks_per_loop

单个循环中获取的最大回调数。

类型:

整数

默认值:

20

环境变量:

AIRFLOW__DAG_PROCESSOR__MAX_CALLBACKS_PER_LOOP

min_file_process_interval

解析 DAG 文件后的秒数。DAG 文件每隔 [dag_processor] min_file_process_interval 秒解析一次。DAG 的更新在此间隔后反映。将此数字设置得较低会增加 CPU 使用率。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__DAG_PROCESSOR__MIN_FILE_PROCESS_INTERVAL

parsing_processes

DAG processor 可以并行运行多个进程来解析 dags。这定义了将运行的进程数量。

类型:

整数

默认值:

2

环境变量:

AIRFLOW__DAG_PROCESSOR__PARSING_PROCESSES

refresh_interval

刷新或查找 DAG bundle 中新文件的频率(以秒为单位)。

类型:

整数

默认值:

300

环境变量:

AIRFLOW__DAG_PROCESSOR__REFRESH_INTERVAL

stale_bundle_cleanup_age_threshold

比此阈值更新的 bundle 版本将不会被移除。使用的近况取决于任务在 worker 上开始运行的时间,该年龄与此设置进行比较,以秒为单位的时间差表示。

类型:

整数

默认值:

21600

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_BUNDLE_CLEANUP_AGE_THRESHOLD

stale_bundle_cleanup_interval

在共享 worker 上,随着任务运行和 bundle 版本更改,bundle 副本会在本地存储中积累。此设置表示检查这些陈旧 bundle 之间的时间差(以秒为单位)。早于 stale_bundle_cleanup_age_threshold 的 bundle 可能会被移除。但我们始终在本地保留 stale_bundle_cleanup_min_versions 个版本。设置为 0 或负数以禁用。

类型:

整数

默认值:

1800

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_BUNDLE_CLEANUP_INTERVAL

stale_bundle_cleanup_min_versions

在磁盘上保留的本地 bundle 版本的最小数量。早于 stale_bundle_cleanup_age_threshold 的本地 bundle 版本仅在我们积累了超过 stale_bundle_cleanup_min_versions 个版本时才会被删除。

类型:

整数

默认值:

10

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_BUNDLE_CLEANUP_MIN_VERSIONS

stale_dag_threshold

在重新解析 DAG 文件后,在停用陈旧 DAG(预期文件中不再存在的 DAG)之前等待的时间(以秒为单位)。需要此阈值的原因是为了考虑文件被解析和 DAG 加载之间的时间。这绝对最大可能花费的时间是 [dag_processor] dag_file_processor_timeout,但如果配置了较长的超时时间,会导致停用陈旧 dags 的显著延迟。

类型:

整数

默认值:

50

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_DAG_THRESHOLD

[database]

alembic_ini_file_path

添加于版本 2.7.0。

指向 alembic.ini 文件的路径。您可以提供相对于 Airflow 主目录的文件路径,或者如果它位于其他位置,则提供绝对路径。

类型:

字符串

默认值:

alembic.ini

环境变量:

AIRFLOW__DATABASE__ALEMBIC_INI_FILE_PATH

check_migrations

添加于版本 2.6.0。

Airflow 启动期间是否运行 alembic 迁移。有时此操作可能很耗时,用户可以通过其他方式(例如通过 Helm chart)确保正确的版本。接受 TrueFalse

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__DATABASE__CHECK_MIGRATIONS

external_db_managers

添加于版本 3.0.0。

用于在 airflow 数据库中迁移外部表的 DB 管理器列表。管理器必须继承自 BaseDBManager。如果在环境中配置了 FabAuthManager,则会自动添加 airflow.providers.fab.auth_manager.models.db.FABDBManager

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS

示例:

airflow.providers.fab.auth_manager.models.db.FABDBManager

max_db_retries

添加于版本 2.3.0。

在发生 DB 操作错误时,代码应重试的次数。并非所有事务都会重试,因为它可能导致非期望状态。目前仅在 DagFileProcessor.process_file 中用于重试 dagbag.sync_to_db

类型:

整数

默认值:

3

环境变量:

AIRFLOW__DATABASE__MAX_DB_RETRIES

migration_batch_size

添加于版本 3.0.0。

执行迁移时,每个批次处理的行数。这对于大型表很有用,可以避免锁定以及由于查询超时导致的失败。

类型:

整数

默认值:

10000

环境变量:

AIRFLOW__DATABASE__MIGRATION_BATCH_SIZE

sql_alchemy_conn

添加于版本 2.3.0。

到元数据数据库的 SQLAlchemy 连接字符串。SQLAlchemy 支持许多不同的数据库引擎。更多详情请参阅:设置数据库后端:数据库 URI

类型:

字符串

默认值:

sqlite:///{AIRFLOW_HOME}/airflow.db

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_CONN

AIRFLOW__DATABASE__SQL_ALCHEMY_CONN_CMD

AIRFLOW__DATABASE__SQL_ALCHEMY_CONN_SECRET

sql_alchemy_connect_args

添加于版本 2.3.0。

SQLAlchemy 中连接参数的导入路径。默认为空字典。当您想配置 SQLAlchemy 在连接字符串中无法解析的 db 引擎参数时,此设置很有用。可以通过传递包含创建引擎参数的字典来设置此参数。有关在 Postgres DB 后端传递创建引擎参数(保持连接变量、超时等)的更多详情,请参阅设置 PostgreSQL 数据库,例如 connect_args={"timeout":30} 可以在 airflow_local_settings.py 中定义,并如下所示导入

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_CONNECT_ARGS

示例:

airflow_local_settings.connect_args

sql_alchemy_engine_args

添加于版本 2.3.0。

传递给 SQLAlchemy 的 create_engine 的额外引擎特定关键字参数,作为 JSON 编码的值

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_ENGINE_ARGS

AIRFLOW__DATABASE__SQL_ALCHEMY_ENGINE_ARGS_CMD

AIRFLOW__DATABASE__SQL_ALCHEMY_ENGINE_ARGS_SECRET

示例:

{"arg1": true}

sql_alchemy_max_overflow

添加于版本 2.3.0。

连接池的最大溢出大小。当检出的连接数达到 pool_size 设置的大小时,将返回额外的连接直到达到此限制。当这些额外的连接返回到连接池时,它们将被断开并丢弃。因此,连接池允许的总并发连接数是 pool_size + max_overflow,而连接池允许的总“休眠”连接数是 pool_size。max_overflow 可以设置为 -1,表示没有溢出限制;对并发连接总数没有限制。默认为 10

类型:

字符串

默认值:

10

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_MAX_OVERFLOW

sql_alchemy_pool_enabled

添加于版本 2.3.0。

SQLAlchemy 是否应该对数据库连接进行连接池。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_POOL_ENABLED

sql_alchemy_pool_pre_ping

添加于版本 2.3.0。

在每次连接池取出连接时检查连接。通常,这是一个简单的语句,例如“SELECT 1”。有关更多详细信息,请参阅SQLAlchemy 连接池:断开连接处理 - 悲观方式

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_POOL_PRE_PING

sql_alchemy_pool_recycle

添加于版本 2.3.0。

SQLAlchemy 连接池回收是连接在连接池中可以空闲多少秒后失效的秒数。此配置不适用于 sqlite。如果数据库连接数超出限制,较低的配置值将使系统更快恢复。

类型:

字符串

默认值:

1800

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_POOL_RECYCLE

sql_alchemy_pool_size

添加于版本 2.3.0。

SQLAlchemy 连接池大小是连接池中数据库连接的最大数量。0 表示没有限制。

类型:

字符串

默认值:

5

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_POOL_SIZE

sql_alchemy_schema

添加于版本 2.3.0。

用于元数据数据库的 schema。SQLAlchemy 支持具有多个 schema 概念的数据库。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_SCHEMA

sql_alchemy_session_maker

新增于 2.10.0 版本。

重要警告:强烈不建议使用 sql_alchemy_session_maker 返回 'sqlalchemy.orm.sessionmaker' 函数的导入路径。不正确的 sql_alchemy_session_maker 配置可能导致严重问题,包括数据损坏、无法恢复的应用程序崩溃。请查阅 SQLAlchemy 文档,获取有关正确配置和最佳实践的详细指南。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_SESSION_MAKER

示例:

airflow_local_settings._sessionmaker

sql_engine_collation_for_ids

添加于版本 2.3.0。

dag_id, task_id, key, external_executor_id 列的排序规则,以防它们的编码不同。默认情况下,此排序规则与数据库排序规则相同,但对于 mysqlmariadb,默认值为 utf8mb3_bin,以便在排序规则设置为 utf8mb4 变体时,索引键的索引大小不会超过允许的最大索引大小,更多详情请参阅GitHub Issue Comment

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__DATABASE__SQL_ENGINE_COLLATION_FOR_IDS

sql_engine_encoding

添加于版本 2.3.0。

数据库的编码

类型:

字符串

默认值:

utf-8

环境变量:

AIRFLOW__DATABASE__SQL_ENGINE_ENCODING

[email]

电子邮件后端配置以及是否在重试或失败时发送电子邮件警报

default_email_on_failure

添加于版本 2.0.0。

任务失败时是否应发送电子邮件警报

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__EMAIL__DEFAULT_EMAIL_ON_FAILURE

default_email_on_retry

添加于版本 2.0.0。

任务重试时是否应发送电子邮件警报

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__EMAIL__DEFAULT_EMAIL_ON_RETRY

email_backend

要使用的电子邮件后端

类型:

字符串

默认值:

airflow.utils.email.send_email_smtp

环境变量:

AIRFLOW__EMAIL__EMAIL_BACKEND

email_conn_id

添加于版本 2.1.0。

要使用的电子邮件连接

类型:

字符串

默认值:

smtp_default

环境变量:

AIRFLOW__EMAIL__EMAIL_CONN_ID

from_email

新增于 2.2.4 版本。

将用作发件人地址的电子邮件地址。它可以是原始电子邮件地址,也可以是 Sender Name <sender@email.com> 格式的完整地址

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__EMAIL__FROM_EMAIL

示例:

Airflow <airflow@example.com>

html_content_template

新增于 2.0.1 版本。

将用作电子邮件内容模板的文件(将使用 Jinja2 渲染)。如果未设置,Airflow 将使用基本模板。

另请参阅

电子邮件配置

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__EMAIL__HTML_CONTENT_TEMPLATE

示例:

/path/to/my_html_content_template_file

ssl_context

添加于版本 2.7.0。

使用 SMTP 和 IMAP SSL 连接时使用的 SSL 上下文。默认情况下,上下文为“default”,这将其设置为 ssl.create_default_context(),它在兼容性和安全性之间提供了适当的平衡,但这要求您的操作系统中的证书是最新的,并且您的 SMTP/IMAP 服务器具有有效的证书,并在您的机器上安装了相应的公钥。如果您想禁用证书检查,可以将其切换为“none”,但不建议这样做,因为如果您的基础设施安全性不足,这会允许 MITM(中间人)攻击。仅在您修复证书配置期间临时设置此项。这通常可以通过升级运行 Airflow 组件的操作系统到较新版本、升级/刷新操作系统中的相应证书或更新您的邮件服务器的证书来完成。

类型:

字符串

默认值:

default

环境变量:

AIRFLOW__EMAIL__SSL_CONTEXT

示例:

default

subject_template

新增于 2.0.1 版本。

将用作电子邮件主题模板(将使用 Jinja2 渲染)的文件。如果未设置,Airflow 将使用基础模板。

另请参阅

电子邮件配置

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__EMAIL__SUBJECT_TEMPLATE

示例:

/path/to/my_subject_template_file

[execution_api]

与执行 API 服务器相关的设置。

ExecutionAPI 也使用了 [api_auth] 部分中的许多设置。

jwt_audience

添加于版本 3.0.0。

为 Execution API 生成和验证 JWT 时使用的 audience claim。

此变量可以是单个值,也可以是逗号分隔的字符串;如果是字符串,则第一个值用于生成,其他值在验证时接受。

非必需,但强烈建议

另请参阅 jwt_audience

类型:

字符串

默认值:

urn:airflow.apache.org:task

环境变量:

AIRFLOW__EXECUTION_API__JWT_AUDIENCE

jwt_expiration_time

添加于版本 3.0.0。

用于身份验证的 JWT 的过期时间(以秒为单位)。令牌过期后,使用此令牌的所有 API 调用都将验证失败。

确保运行 Airflow 组件的所有机器上的时间同步(例如使用 ntpd),否则可能会遇到“forbidden”错误。

类型:

整数

默认值:

600

环境变量:

AIRFLOW__EXECUTION_API__JWT_EXPIRATION_TIME

[kerberos]

ccache

执行 kinit 后 ccache 文件的位置。

类型:

字符串

默认值:

/tmp/airflow_krb5_ccache

环境变量:

AIRFLOW__KERBEROS__CCACHE

forwardable

添加于版本 2.2.0。

允许禁用票据可转发性。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__KERBEROS__FORWARDABLE

include_ip

添加于版本 2.2.0。

允许从令牌中移除源 IP,在使用经过 NAT 处理的 Docker 主机后面的令牌时很有用。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__KERBEROS__INCLUDE_IP

keytab

指定 Airflow 用户 Kerberos keytab 文件的路径

类型:

字符串

默认值:

airflow.keytab

环境变量:

AIRFLOW__KERBEROS__KEYTAB

kinit_path

kinit 可执行文件的路径

类型:

字符串

默认值:

kinit

环境变量:

AIRFLOW__KERBEROS__KINIT_PATH

principal

会与 FQDN 合并

类型:

字符串

默认值:

airflow

环境变量:

AIRFLOW__KERBEROS__PRINCIPAL

reinit_frequency

确定初始化或重新初始化过程发生的频率。

类型:

字符串

默认值:

3600

环境变量:

AIRFLOW__KERBEROS__REINIT_FREQUENCY

[lineage]

backend

使用何种 lineage 后端

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LINEAGE__BACKEND

[logging]

base_log_folder

添加于版本 2.0.0。

Airflow 应该存储其日志文件的文件夹。此路径必须是绝对路径。有一些现有配置假定此项设置为默认值。如果您选择覆盖此项,可能还需要更新 [logging] dag_processor_manager_log_location[logging] dag_processor_child_process_log_directory settings

类型:

字符串

默认值:

{AIRFLOW_HOME}/logs

环境变量:

AIRFLOW__LOGGING__BASE_LOG_FOLDER

celery_logging_level

添加于版本 2.3.0。

Celery 的日志级别。如果未设置,则使用 logging_level 的值。

支持的值:CRITICALERRORWARNINGINFODEBUG

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__CELERY_LOGGING_LEVEL

celery_stdout_stderr_separation

添加于版本 2.7.0。

默认情况下,Celery 将所有日志发送到 stderr。如果启用此选项,任何先前的日志处理程序将被移除。启用此选项后,AirFlow 将创建新的处理程序,并将 INFO 和 WARNING 等低级别日志发送到 stdout,同时将更高级别的严重性日志发送到 stderr。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__LOGGING__CELERY_STDOUT_STDERR_SEPARATION

color_log_error_keywords

新增于 2.10.0 版本。

一个逗号分隔的关键字列表,与错误相关,当其存在时,UI 中的日志行将显示为红色。

类型:

字符串

默认值:

error,exception

环境变量:

AIRFLOW__LOGGING__COLOR_LOG_ERROR_KEYWORDS

color_log_warning_keywords

新增于 2.10.0 版本。

一个逗号分隔的关键字列表,与警告相关,当其存在时,UI 中的日志行将显示为黄色。

类型:

字符串

默认值:

warn

环境变量:

AIRFLOW__LOGGING__COLOR_LOG_WARNING_KEYWORDS

colored_console_log

添加于版本 2.0.0。

在控制台中启用/禁用彩色日志的标志。当控制终端是 TTY 时,日志将着色。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__LOGGING__COLORED_CONSOLE_LOG

colored_formatter_class

添加于版本 2.0.0。

指定 Airflow 用于实现彩色日志记录的类。

类型:

字符串

默认值:

airflow.utils.log.colored_log.CustomTTYColoredFormatter

环境变量:

AIRFLOW__LOGGING__COLORED_FORMATTER_CLASS

colored_log_format

添加于版本 2.0.0。

启用彩色日志时的日志格式。

类型:

字符串

默认值:

[%%(blue)s%%(asctime)s%%(reset)s] {%%(blue)s%%(filename)s:%%(reset)s%%(lineno)d} %%(log_color)s%%(levelname)s%%(reset)s - %%(log_color)s%%(message)s%%(reset)s

环境变量:

AIRFLOW__LOGGING__COLORED_LOG_FORMAT

dag_processor_child_process_log_directory

确定 dag 处理器子进程的日志将存储在哪个目录。

类型:

字符串

默认值:

{AIRFLOW_HOME}/logs/dag_processor

环境变量:

AIRFLOW__LOGGING__DAG_PROCESSOR_CHILD_PROCESS_LOG_DIRECTORY

dag_processor_log_format

添加于版本 2.4.0。

Dag 处理器日志行的格式。

类型:

字符串

默认值:

[%%(asctime)s] [SOURCE:DAG_PROCESSOR] {%%(filename)s:%%(lineno)d} %%(levelname)s - %%(message)s

环境变量:

AIRFLOW__LOGGING__DAG_PROCESSOR_LOG_FORMAT

dag_processor_log_target

添加于版本 2.4.0。

发送 dag 解析器日志的位置。如果设置为“file”,日志将发送到由 child_process_log_directory 定义的日志文件。

类型:

字符串

默认值:

file

环境变量:

AIRFLOW__LOGGING__DAG_PROCESSOR_LOG_TARGET

delete_local_logs

添加于版本 2.6.0。

对于 GCS、S3、WASB、HDFS 和 OSS 远程日志记录,在将本地日志文件上传到远程位置后是否应将其删除。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__LOGGING__DELETE_LOCAL_LOGS

encrypt_s3_logs

添加于版本 2.0.0。

对存储在 S3 中的日志使用服务器端加密。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__LOGGING__ENCRYPT_S3_LOGS

extra_logger_names

添加于版本 2.0.0。

一个逗号分隔的第三方 logger 名称列表,这些 logger 将被配置为向控制台打印消息。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__EXTRA_LOGGER_NAMES

示例:

fastapi,sqlalchemy

fab_logging_level

添加于版本 2.0.0。

Flask-appbuilder UI 的日志级别。

支持的值:CRITICALERRORWARNINGINFODEBUG

类型:

字符串

默认值:

WARNING

环境变量:

AIRFLOW__LOGGING__FAB_LOGGING_LEVEL

file_task_handler_new_file_permissions

添加于版本 2.6.0。

权限采用八进制字符串形式,如 chmod 所理解。当您使用模拟时(日志由与 airflow 不同的用户写入),权限非常重要。在这种情况下,最安全的配置方法是将两个用户添加到同一个组,并使其成为两个用户的默认组。组可写入日志是 airflow 的默认设置,但您可能认为允许其他人可写入日志是可以接受的,在这种情况下,您应将其设置为 0o666。如果您不使用模拟,并且想增加安全性,可以将其更改为 0o644,使其仅所有者可写。如果您的所有日志访问(读/写)都来自同一个用户,您也可以将其更改为 0o600,使其仅所有者可读。

类型:

字符串

默认值:

0o664

环境变量:

AIRFLOW__LOGGING__FILE_TASK_HANDLER_NEW_FILE_PERMISSIONS

示例:

0o664

file_task_handler_new_folder_permissions

添加于版本 2.6.0。

权限采用八进制字符串形式,如 chmod 所理解。当您使用模拟时(日志由与 airflow 不同的用户写入),权限非常重要。在这种情况下,最安全的配置方法是将两个用户添加到同一个组,并使其成为两个用户的默认组。组可写入日志是 airflow 的默认设置,但您可能认为允许其他人可写入日志是可以接受的,在这种情况下,您应将其设置为 0o777。如果您不使用模拟,并且想增加安全性,可以将其更改为 0o755,使其仅所有者可写。如果您的所有日志访问(读/写)都来自同一个用户,您也可以将其更改为 0o700,使其仅所有者可读。

类型:

字符串

默认值:

0o775

环境变量:

AIRFLOW__LOGGING__FILE_TASK_HANDLER_NEW_FOLDER_PERMISSIONS

示例:

0o775

google_key_path

添加于版本 2.0.0。

Google 凭据 JSON 文件的路径。如果省略,将使用应用程序默认凭据进行授权。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__GOOGLE_KEY_PATH

interleave_timestamp_parser

添加于版本 2.6.0。

我们必须解析时间戳以在触发器和任务之间交错日志。为此,我们需要解析日志文件中的时间戳。如果您的日志格式非标准,您可以提供一个可调用对象的导入路径,该对象接受一个字符串日志行并返回时间戳(与 datetime.datetime 兼容)。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__LOGGING__INTERLEAVE_TIMESTAMP_PARSER

示例:

path.to.my_func

log_filename_template

添加于版本 2.0.0。

Airflow 为每个任务运行生成文件名/路径的格式。

类型:

字符串

默认值:

dag_id={ ti.dag_id }/run_id={ ti.run_id }/task_id={ ti.task_id }/{%% if ti.map_index >= 0 %%}map_index={ ti.map_index }/{%% endif %%}attempt={ try_number|default(ti.try_number) }.log

环境变量:

AIRFLOW__LOGGING__LOG_FILENAME_TEMPLATE

log_format

添加于版本 2.0.0。

日志行的格式

类型:

字符串

默认值:

[%%(asctime)s] {%%(filename)s:%%(lineno)d} %%(levelname)s - %%(message)s

环境变量:

AIRFLOW__LOGGING__LOG_FORMAT

log_formatter_class

添加于版本 2.3.4。

确定 Airflow 用于构建其日志消息的格式化程序类。默认的格式化程序类是时区感知的,这意味着附加到日志条目的时间戳将调整以反映 Airflow 实例的本地时区。

类型:

字符串

默认值:

airflow.utils.log.timezone_aware.TimezoneAware

环境变量:

AIRFLOW__LOGGING__LOG_FORMATTER_CLASS

logging_config_class

添加于版本 2.0.0。

日志记录类。指定将指定日志记录配置的类。此类必须在 python classpath 上。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__LOGGING_CONFIG_CLASS

示例:

my.path.default_local_settings.LOGGING_CONFIG

logging_level

添加于版本 2.0.0。

日志级别。

支持的值:CRITICALERRORWARNINGINFODEBUG

类型:

字符串

默认值:

INFO

环境变量:

AIRFLOW__LOGGING__LOGGING_LEVEL

min_length_masked_secret

添加于版本 3.0.0。

在日志消息中需要被屏蔽的秘密的最小长度。短于此长度的秘密将不会被屏蔽。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__LOGGING__MIN_LENGTH_MASKED_SECRET

remote_base_log_folder

添加于版本 2.0.0。

远程日志记录的存储桶 URL。S3 存储桶应以 s3:// 开头。Cloudwatch 日志组应以 cloudwatch:// 开头。GCS 存储桶应以 gs:// 开头。WASB 存储桶应以 wasb 开头,以帮助 Airflow 选择正确的处理程序。Stackdriver 日志应以 stackdriver:// 开头。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__REMOTE_BASE_LOG_FOLDER

remote_log_conn_id

添加于版本 2.0.0。

用户必须提供一个 Airflow 连接 ID,该 ID 提供对存储位置的访问。根据您的远程日志记录服务,此 ID 可能仅用于读取日志,而不是写入日志。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__REMOTE_LOG_CONN_ID

remote_logging

添加于版本 2.0.0。

Airflow 可以将日志远程存储在 AWS S3、Google Cloud Storage 或 Elastic Search 中。如果您想启用远程日志记录,请将此设置为 True

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__LOGGING__REMOTE_LOGGING

remote_task_handler_kwargs

添加于版本 2.6.0。

remote_task_handler_kwargs 参数被加载到一个字典中,并传递给远程任务处理程序的 __init__ 方法,它会覆盖 Airflow 配置提供的值。例如,如果您设置 delete_local_logs=False 并提供 {"delete_local_copy": true},则本地日志文件在上传到远程位置后将被删除。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__REMOTE_TASK_HANDLER_KWARGS

AIRFLOW__LOGGING__REMOTE_TASK_HANDLER_KWARGS_CMD

AIRFLOW__LOGGING__REMOTE_TASK_HANDLER_KWARGS_SECRET

示例:

{"delete_local_copy": true}

secret_mask_adapter

添加于版本 2.6.0。

一个导入路径,指向一个函数,该函数为使用 airflow.sdk.execution_time.secrets_masker.mask_secret 添加的每个秘密添加适配项,以便在日志消息中进行屏蔽。期望给定的函数需要一个参数:要适配的秘密。它可以返回秘密的单个适配项或一个适配项的可迭代对象,每个适配项都将被屏蔽为秘密。原始秘密以及返回的任何适配项都将被屏蔽。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__SECRET_MASK_ADAPTER

示例:

urllib.parse.quote

simple_log_format

添加于版本 2.0.0。

定义简单日志记录配置的日志消息格式。

类型:

字符串

默认值:

%%(asctime)s %%(levelname)s - %%(message)s

环境变量:

AIRFLOW__LOGGING__SIMPLE_LOG_FORMAT

task_log_prefix_template

添加于版本 2.0.0。

指定如下所示带有流处理程序 TaskHandlerWithCustomFormatter 的前缀模式。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__TASK_LOG_PREFIX_TEMPLATE

示例:

{ti.dag_id}-{ti.task_id}-{logical_date}-{ti.try_number}

task_log_reader

添加于版本 2.0.0。

读取任务实例日志的处理程序名称。默认为使用 task 处理程序。

类型:

字符串

默认值:

task

环境变量:

AIRFLOW__LOGGING__TASK_LOG_READER

trigger_log_server_port

添加于版本 2.6.0。

用于从 triggerer 提供日志的端口。更多信息请参阅 [logging] worker_log_server_port 的描述。

类型:

字符串

默认值:

8794

环境变量:

AIRFLOW__LOGGING__TRIGGER_LOG_SERVER_PORT

worker_log_server_port

添加于版本 2.2.0。

启动 Airflow worker 时,Airflow 会启动一个微型 web 服务器子进程,用于向 Airflow 主 web 服务器提供 worker 的本地日志文件,然后主 web 服务器构建页面并将其发送给用户。此项定义了日志服务的端口。它需要是未被使用的,并且从主 web 服务器到 worker 可见可连接。

类型:

字符串

默认值:

8793

环境变量:

AIRFLOW__LOGGING__WORKER_LOG_SERVER_PORT

[metrics]

StatsD 集成设置。

metrics_allow_list

添加于版本 2.6.0。

配置一个允许列表(逗号分隔的正则表达式模式),以仅发送特定指标。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__METRICS__METRICS_ALLOW_LIST

示例:

"scheduler,executor,dagrun,pool,triggerer,celery" or "^scheduler,^executor,heartbeat|timeout"

metrics_block_list

添加于版本 2.6.0。

配置一个阻止列表(逗号分隔的正则表达式模式),以阻止发送特定指标。如果同时配置了 [metrics] metrics_allow_list[metrics] metrics_block_list,则 [metrics] metrics_block_list 将被忽略。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__METRICS__METRICS_BLOCK_LIST

示例:

"scheduler,executor,dagrun,pool,triggerer,celery" or "^scheduler,^executor,heartbeat|timeout"

otel_debugging_on

添加于版本 2.7.0。

如果为 True,所有指标也将发送到控制台。默认为 False

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__METRICS__OTEL_DEBUGGING_ON

otel_host

添加于版本 2.6.0。

指定 Airflow 发送指标和追踪到的 OpenTelemetry Collector 的主机名或 IP 地址。

类型:

字符串

默认值:

localhost

环境变量:

AIRFLOW__METRICS__OTEL_HOST

otel_interval_milliseconds

添加于版本 2.6.0。

定义 Airflow 向配置的 OpenTelemetry Collector 发送批量指标和追踪的间隔(以毫秒为单位)。

类型:

整数

默认值:

60000

环境变量:

AIRFLOW__METRICS__OTEL_INTERVAL_MILLISECONDS

otel_on

添加于版本 2.6.0。

启用向 OpenTelemetry 发送指标。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__METRICS__OTEL_ON

otel_port

添加于版本 2.6.0。

指定 OpenTelemetry Collector 正在监听的端口。

类型:

字符串

默认值:

8889

环境变量:

AIRFLOW__METRICS__OTEL_PORT

otel_prefix

添加于版本 2.6.0。

Airflow 指标的前缀。

类型:

字符串

默认值:

airflow

环境变量:

AIRFLOW__METRICS__OTEL_PREFIX

otel_service

在版本 2.10.3 中添加。

追踪的默认服务名称。

类型:

字符串

默认值:

Airflow

环境变量:

AIRFLOW__METRICS__OTEL_SERVICE

otel_ssl_active

添加于版本 2.7.0。

如果为 True,将启用 SSL。默认为 False。要与 OpenTelemetry collector 建立 HTTPS 连接,您需要在 OpenTelemetry collector 的 config.yml 文件中配置 SSL 证书和密钥。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__METRICS__OTEL_SSL_ACTIVE

stat_name_handler

添加于版本 2.0.0。

一个用于验证 StatsD stat 名称、必要时对其应用更改并返回转换后的 stat 名称的函数。

该函数应具有以下签名

def func_name(stat_name: str) -> str: ...
类型:

字符串

默认值:

''

环境变量:

AIRFLOW__METRICS__STAT_NAME_HANDLER

statsd_custom_client_path

添加于版本 2.0.0。

如果您想使用自己的自定义 StatsD 客户端,请在下方设置相关的模块路径。注意:模块路径必须存在于您的 PYTHONPATH <https://docs.pythonlang.cn/3/using/cmdline.html#envvar-PYTHONPATH> 中,Airflow 才能找到它。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__METRICS__STATSD_CUSTOM_CLIENT_PATH

statsd_datadog_enabled

添加于版本 2.0.0。

启用 datadog 集成以发送 airflow 指标。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__METRICS__STATSD_DATADOG_ENABLED

statsd_datadog_metrics_tags

添加于版本 2.6.0。

设置为 False 以禁用部分已发送指标的元数据标签。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__METRICS__STATSD_DATADOG_METRICS_TAGS

statsd_datadog_tags

添加于版本 2.0.0。

附加到所有指标的 datadog 标签列表(例如:key1:value1,key2:value2)。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__METRICS__STATSD_DATADOG_TAGS

statsd_disabled_tags

添加于版本 2.6.0。

如果您想避免向 StatsD 发送所有可用的指标标签,您可以配置一个阻止前缀列表(逗号分隔)来过滤掉以列表中元素开头的指标标签(例如:job_id,run_id)。

类型:

字符串

默认值:

job_id,run_id

环境变量:

AIRFLOW__METRICS__STATSD_DISABLED_TAGS

示例:

job_id,run_id,dag_id,task_id

statsd_host

添加于版本 2.0.0。

指定 StatsD 守护进程(或服务器)运行的主机地址。

类型:

字符串

默认值:

localhost

环境变量:

AIRFLOW__METRICS__STATSD_HOST

statsd_influxdb_enabled

添加于版本 2.6.0。

启用使用 StatsD-Influxdb 标签约定发送 Airflow 指标。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__METRICS__STATSD_INFLUXDB_ENABLED

statsd_ipv6

添加于版本 3.0.0。

允许将 statsd 主机解析为 IPv6 地址。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__METRICS__STATSD_IPV6

statsd_on

添加于版本 2.0.0。

启用向 StatsD 发送指标。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__METRICS__STATSD_ON

statsd_port

添加于版本 2.0.0。

指定 StatsD 守护进程(或服务器)正在监听的端口。

类型:

字符串

默认值:

8125

环境变量:

AIRFLOW__METRICS__STATSD_PORT

statsd_prefix

添加于版本 2.0.0。

定义从 Airflow 发送到 StatsD 的所有指标的命名空间。

类型:

字符串

默认值:

airflow

环境变量:

AIRFLOW__METRICS__STATSD_PREFIX

[operators]

default_cpus

指示在操作符配置中未指定特定 CPU 请求时,分配给每个操作符的默认 CPU 单位数量。

类型:

字符串

默认值:

1

环境变量:

AIRFLOW__OPERATORS__DEFAULT_CPUS

default_deferrable

添加于版本 2.7.0。

操作符和传感器中属性“deferrable”的默认值。

类型:

布尔型

默认值:

false

环境变量:

AIRFLOW__OPERATORS__DEFAULT_DEFERRABLE

default_disk

指示在操作符配置中未指定特定磁盘请求时,分配给每个操作符的默认磁盘存储空间。

类型:

字符串

默认值:

512

环境变量:

AIRFLOW__OPERATORS__DEFAULT_DISK

default_gpus

指示在操作符配置中未指定特定 GPU 请求时,分配给每个操作符的默认 GPU 数量。

类型:

字符串

默认值:

0

环境变量:

AIRFLOW__OPERATORS__DEFAULT_GPUS

default_owner

分配给每个新操作符的默认所有者,除非显式提供或通过 default_args 传递。

类型:

字符串

默认值:

airflow

环境变量:

AIRFLOW__OPERATORS__DEFAULT_OWNER

default_queue

添加于版本 2.1.0。

任务分配到以及 worker 监听的默认队列。

类型:

字符串

默认值:

default

环境变量:

AIRFLOW__OPERATORS__DEFAULT_QUEUE

default_ram

指示在操作符配置中未指定特定 RAM 请求时,分配给每个操作符的默认 RAM 数量。

类型:

字符串

默认值:

512

环境变量:

AIRFLOW__OPERATORS__DEFAULT_RAM

[scheduler]

allowed_run_id_pattern

在版本 2.6.3 中添加。

用于在触发 DAG 时验证用户输入 run_id 参数的有效性的 run_id 模式。此模式不能更改调度程序为计划运行的 DAG 或未更改 run_id 参数而触发的 DAG 生成 run_id 的模式。

类型:

字符串

默认值:

^[A-Za-z0-9_.~:+-]+$

环境变量:

AIRFLOW__SCHEDULER__ALLOWED_RUN_ID_PATTERN

catchup_by_default

通过将此设置为 True 来开启调度程序追赶 (catchup)。默认行为不变,命令行回填 (Backfills) 仍然有效,但如果此项为 False,调度程序将不执行调度程序追赶,不过可以在 DAG 定义中(通过 catchup 参数)按每个 DAG 进行设置。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__SCHEDULER__CATCHUP_BY_DEFAULT

create_cron_data_intervals

新增于 2.9.0 版本。

当为 DAG 的 schedule 参数提供 cron 字符串时,是否为 cron 计划创建跨越一个间隔的 DAG 运行,或仅创建一个时间点的 DAG 运行。

  • True:使用 CronDataIntervalTimetable,这适用于具有明确数据间隔的 DAG。您可以获得从上一个间隔结束到计划时间点的连续间隔。

  • False:使用 CronTriggerTimetable,这更接近 cron 本身的行为。

值得注意的是,对于 CronTriggerTimetable,逻辑日期与 DAG 运行尝试计划的时间相同,而对于 CronDataIntervalTimetable,逻辑日期是数据间隔的开始,但 DAG 运行将在数据间隔结束时尝试计划。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__SCHEDULER__CREATE_CRON_DATA_INTERVALS

create_delta_data_intervals

在版本 2.11.0 中添加。

当为 DAG 的 schedule 参数提供 timedelta 或 relativedelta 时,是否创建跨越间隔的 DAG 运行,或仅创建单个时间点的 DAG 运行。

  • True:使用 DeltaDataIntervalTimetable,这适用于具有明确数据间隔的 DAG。您可以获得从上一个间隔结束到计划时间点的连续间隔。

  • False:使用 DeltaTriggerTimetable,这适用于仅希望说明例如“每天运行一次”且不关心数据间隔的 DAG。

值得注意的是,对于 DeltaTriggerTimetable,逻辑日期与 DAG 运行尝试计划的时间相同,而对于 DeltaDataIntervalTimetable,逻辑日期是数据间隔的开始,但 DAG 运行将在数据间隔结束时尝试计划。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__SCHEDULER__CREATE_DELTA_DATA_INTERVALS

dag_stale_not_seen_duration

添加于版本 2.4.0。

经过此秒数后,未被 Dag 处理器更新的 DAG 将被停用。

类型:

整数

默认值:

600

环境变量:

AIRFLOW__SCHEDULER__DAG_STALE_NOT_SEEN_DURATION

enable_health_check

添加于版本 2.4.0。

当您启动调度程序时,如果此项设置为 True,Airflow 会启动一个微型 web 服务器子进程以提供健康检查。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__SCHEDULER__ENABLE_HEALTH_CHECK

enable_tracemalloc

添加于版本 3.0.0。

是否在调度程序中启用内存分配追踪。如果启用,Airflow 将开始追踪内存分配,并在接收到信号 SIGUSR1 时以错误级别记录前 10 个内存使用情况。这是一项开销很大的操作,通常不应使用,除非用于调试目的。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__SCHEDULER__ENABLE_TRACEMALLOC

ignore_first_depends_on_past_by_default

添加于版本 2.3.0。

将此设置为 True 将使任务的第一个任务实例忽略 depends_on_past 设置。当数据库中没有早于它的 logical_date 的任务实例时,该任务实例将被视为任务的第一个任务实例,即对于新添加的任务,将无需手动标记成功即可进行调度。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__SCHEDULER__IGNORE_FIRST_DEPENDS_ON_PAST_BY_DEFAULT

job_heartbeat_sec

任务实例监听外部终止信号(当您从 CLI 或 UI 清除任务时),此项定义了它们监听的频率(以秒为单位)。

类型:

浮点数

默认值:

5

环境变量:

AIRFLOW__SCHEDULER__JOB_HEARTBEAT_SEC

max_dagruns_per_loop_to_schedule

添加于版本 2.0.0。

调度程序在调度和排队任务时应检查(并锁定)多少个 DagRun。

类型:

整数

默认值:

20

环境变量:

AIRFLOW__SCHEDULER__MAX_DAGRUNS_PER_LOOP_TO_SCHEDULE

max_dagruns_to_create_per_loop

添加于版本 2.0.0。

每个调度程序循环中为多少个 DAG 创建 DagRun 的最大数量。

类型:

整数

默认值:

10

环境变量:

AIRFLOW__SCHEDULER__MAX_DAGRUNS_TO_CREATE_PER_LOOP

max_tis_per_query

此项确定在每个调度程序循环中评估多少个任务实例进行调度。将其设置为 0 以使用 [core] parallelism 的值。

类型:

整数

默认值:

16

环境变量:

AIRFLOW__SCHEDULER__MAX_TIS_PER_QUERY

num_runs

添加于版本 1.10.6。

尝试调度每个 DAG 文件的次数 -1 表示无限次数

类型:

整数

默认值:

-1

环境变量:

AIRFLOW__SCHEDULER__NUM_RUNS

orphaned_tasks_check_interval

添加于版本 2.0.0。

调度程序应多久(以秒为单位)检查一次孤立任务和 SchedulerJobs。

类型:

浮点数

默认值:

300.0

环境变量:

AIRFLOW__SCHEDULER__ORPHANED_TASKS_CHECK_INTERVAL

parsing_cleanup_interval

添加于版本 2.5.0。

检查陈旧 DAG(预期文件不再存在、应被停用的 DAG)以及不再被引用并应被标记为孤立的资产的频率(以秒为单位)。

类型:

整数

默认值:

60

环境变量:

AIRFLOW__SCHEDULER__PARSING_CLEANUP_INTERVAL

parsing_pre_import_modules

添加于版本 2.6.0。

调度器读取 dag 文件以提取将要使用的 airflow 模块,并提前导入它们,以避免在每个解析过程中重复此操作。如果某个 airflow 模块每次都需要重新导入,可以将此标志设置为 False 来禁用此行为(代价是增加 DAG 解析时间)。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__SCHEDULER__PARSING_PRE_IMPORT_MODULES

pool_metrics_interval

添加于版本 2.0.0。

将池使用情况统计信息发送到 StatsD(如果 statsd_on 已启用)的频率(以秒为单位)

类型:

浮点数

默认值:

5.0

环境变量:

AIRFLOW__SCHEDULER__POOL_METRICS_INTERVAL

running_metrics_interval

添加于版本 3.0.0。

将正在运行的任务实例统计信息发送到 StatsD(如果 statsd_on 已启用)的频率(以秒为单位)

类型:

浮点数

默认值:

30.0

环境变量:

AIRFLOW__SCHEDULER__RUNNING_METRICS_INTERVAL

scheduler_health_check_server_host

添加到版本 2.8.0。

当您启动调度器时,airflow 会启动一个微小的 Web 服务器子进程,在此主机上提供健康检查服务。

类型:

字符串

默认值:

0.0.0.0

环境变量:

AIRFLOW__SCHEDULER__SCHEDULER_HEALTH_CHECK_SERVER_HOST

scheduler_health_check_server_port

添加于版本 2.4.0。

当您启动调度器时,airflow 会启动一个微小的 Web 服务器子进程,在此端口上提供健康检查服务。

类型:

整数

默认值:

8974

环境变量:

AIRFLOW__SCHEDULER__SCHEDULER_HEALTH_CHECK_SERVER_PORT

scheduler_health_check_threshold

添加到版本 1.10.2。

如果上次调度器心跳发生在 [scheduler] scheduler_health_check_threshold(以秒为单位)之前,则认为调度器不健康。这用于 /health 端点中的健康检查以及 SchedulerJob 的 airflow jobs check CLI 中。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__SCHEDULER__SCHEDULER_HEALTH_CHECK_THRESHOLD

scheduler_heartbeat_sec

调度器不断尝试触发新任务(有关更多信息,请参阅文档中的调度器部分)。这定义了调度器应多久运行一次(以秒为单位)。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__SCHEDULER__SCHEDULER_HEARTBEAT_SEC

scheduler_idle_sleep_time

添加于版本 2.2.0。

控制调度器在循环之间休眠多长时间,但前提是循环中没有可做的事情。也就是说,如果它调度了某个任务,那么它将立即开始下一个循环迭代。

类型:

浮点数

默认值:

1

环境变量:

AIRFLOW__SCHEDULER__SCHEDULER_IDLE_SLEEP_TIME

task_instance_heartbeat_sec

添加于版本 2.7.0。

LocalTaskJob 向调度器发送心跳信号以通知其仍处于活动状态的频率(以秒为单位)。如果此值设置为 0,则心跳间隔将默认为 [scheduler] task_instance_heartbeat_timeout 的值。

类型:

整数

默认值:

0

环境变量:

AIRFLOW__SCHEDULER__TASK_INSTANCE_HEARTBEAT_SEC

task_instance_heartbeat_timeout

本地任务作业会定期向数据库发送心跳。如果作业在此秒数内未发送心跳,调度器将把关联的任务实例标记为失败并重新调度该任务。

类型:

整数

默认值:

300

环境变量:

AIRFLOW__SCHEDULER__TASK_INSTANCE_HEARTBEAT_TIMEOUT

task_instance_heartbeat_timeout_detection_interval

添加于版本 2.3.0。

调度器应多久检查一次心跳超时的任务实例(以秒为单位)。

类型:

浮点数

默认值:

10.0

环境变量:

AIRFLOW__SCHEDULER__TASK_INSTANCE_HEARTBEAT_TIMEOUT_DETECTION_INTERVAL

task_queued_timeout

添加于版本 2.6.0。

任务在被重试或设置为失败之前可以处于排队状态的时间量。

类型:

浮点数

默认值:

600.0

环境变量:

AIRFLOW__SCHEDULER__TASK_QUEUED_TIMEOUT

task_queued_timeout_check_interval

添加于版本 2.6.0。

多久检查一次处于排队状态时间长于 [scheduler] task_queued_timeout 的任务。

类型:

浮点数

默认值:

120.0

环境变量:

AIRFLOW__SCHEDULER__TASK_QUEUED_TIMEOUT_CHECK_INTERVAL

trigger_timeout_check_interval

添加于版本 2.2.0。

多久检查一次尚未运行的过期触发器请求。

类型:

浮点数

默认值:

15

环境变量:

AIRFLOW__SCHEDULER__TRIGGER_TIMEOUT_CHECK_INTERVAL

use_job_schedule

添加到版本 1.10.2。

将此设置为 False 可关闭调度器对 cron 间隔的使用。通过 Web UI 手动提交或使用 trigger_dag 提交的 DAG 仍将运行。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__SCHEDULER__USE_JOB_SCHEDULE

use_row_level_locking

添加于版本 2.0.0。

调度器是否应在相关查询中发出 SELECT ... FOR UPDATE。如果此设置为 False,则不应同时运行多个调度器实例。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__SCHEDULER__USE_ROW_LEVEL_LOCKING

dag_dir_list_interval (已弃用)

自版本 3.0 起已弃用:此选项已移至 dag_processor.refresh_interval

[secrets]

backend

新增于 1.10.10 版本。

要启用的 secrets 后端的完整类名(在搜索路径中将优先于环境变量和元数据库)

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__SECRETS__BACKEND

示例:

airflow.providers.amazon.aws.secrets.systems_manager.SystemsManagerParameterStoreBackend

backend_kwargs

新增于 1.10.10 版本。

backend_kwargs 参数被加载到一个字典中,并传递给 secrets 后端类的 __init__ 方法。请参阅您正在使用的 secrets 后端的文档。预期格式为 JSON。

AWS Systems Manager ParameterStore 示例:{"connections_prefix": "/airflow/connections", "profile_name": "default"}

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__SECRETS__BACKEND_KWARGS

AIRFLOW__SECRETS__BACKEND_KWARGS_CMD

AIRFLOW__SECRETS__BACKEND_KWARGS_SECRET

cache_ttl_seconds

添加于版本 2.7.0。

注意

这是一项 实验性功能

启用缓存后,这是我们认为缓存中的条目有效的时间长度。如果条目旧于此秒数,则会刷新。这意味着在启用缓存时,这是您需要等待变量更改生效的最长时间。

类型:

整数

默认值:

900

环境变量:

AIRFLOW__SECRETS__CACHE_TTL_SECONDS

use_cache

添加于版本 2.7.0。

注意

这是一项 实验性功能

仅在解析 DAG 时启用变量的本地缓存。如果在顶级代码中使用变量,使用此选项可以加快 dag 解析速度,但代价是更改传播时间更长。请注意,此缓存仅涉及 DAG 解析步骤。在运行 DAG 任务时不会进行缓存。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__SECRETS__USE_CACHE

[sensors]

default_timeout

添加于版本 2.3.0。

传感器默认超时,默认为 7 天(7 * 24 * 60 * 60)。

类型:

浮点数

默认值:

604800

环境变量:

AIRFLOW__SENSORS__DEFAULT_TIMEOUT

[sentry]

Sentry 集成。您可以在此处根据 Python 平台提供额外的配置选项。有关更多详细信息,请参阅 Python / 配置 / 基本选项。不支持的选项包括:integrationsin_app_includein_app_excludeignore_errorsbefore_breadcrumbtransport

before_send

添加于版本 2.2.0。

用于配置 sentry SDK 的 before_send 函数的点分路径。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__SENTRY__BEFORE_SEND

sentry_dsn

添加于版本 1.10.6。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__SENTRY__SENTRY_DSN

AIRFLOW__SENTRY__SENTRY_DSN_CMD

AIRFLOW__SENTRY__SENTRY_DSN_SECRET

sentry_on

添加于版本 2.0.0。

启用向 Sentry 报告错误

类型:

字符串

默认值:

false

环境变量:

AIRFLOW__SENTRY__SENTRY_ON

[smtp]

如果您希望 airflow 在重试和失败时发送电子邮件,并且您希望使用 airflow.utils.email.send_email_smtp 函数,则必须在此处配置一个 smtp 服务器。

smtp_host

指定 Airflow 通过 SMTP 发送电子邮件通知时使用的主机服务器地址。

类型:

字符串

默认值:

localhost

环境变量:

AIRFLOW__SMTP__SMTP_HOST

smtp_mail_from

指定 Airflow 发送电子邮件通知时使用的默认 发件人 电子邮件地址。

类型:

字符串

默认值:

airflow@example.com

环境变量:

AIRFLOW__SMTP__SMTP_MAIL_FROM

smtp_port

定义 Airflow 连接到 SMTP 服务器发送电子邮件通知时使用的端口号。

类型:

字符串

默认值:

25

环境变量:

AIRFLOW__SMTP__SMTP_PORT

smtp_retry_limit

添加于版本 2.0.0。

定义 Airflow 尝试连接到 SMTP 服务器的最大次数。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__SMTP__SMTP_RETRY_LIMIT

smtp_ssl

确定与 SMTP 服务器通信时是否使用 SSL 连接。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__SMTP__SMTP_SSL

smtp_starttls

确定连接到 SMTP 服务器时是否使用 STARTTLS 命令。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__SMTP__SMTP_STARTTLS

smtp_timeout

添加于版本 2.0.0。

确定 Apache Airflow 系统等待与 SMTP 服务器建立连接的最大时间(以秒为单位)。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__SMTP__SMTP_TIMEOUT

[traces]

分布式跟踪集成设置。

otel_debugging_on

新增于 2.10.0 版本。

如果为 True,所有跟踪也会发送到控制台。默认为 False。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_DEBUGGING_ON

otel_host

新增于 2.10.0 版本。

指定 Airflow 发送跟踪的 OpenTelemetry Collector 的主机名或 IP 地址。

类型:

字符串

默认值:

localhost

环境变量:

AIRFLOW__TRACES__OTEL_HOST

otel_on

新增于 2.10.0 版本。

启用向 OpenTelemetry 发送跟踪。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_ON

otel_port

新增于 2.10.0 版本。

指定 OpenTelemetry Collector 正在监听的端口。

类型:

字符串

默认值:

8889

环境变量:

AIRFLOW__TRACES__OTEL_PORT

otel_service

新增于 2.10.0 版本。

追踪的默认服务名称。

类型:

字符串

默认值:

Airflow

环境变量:

AIRFLOW__TRACES__OTEL_SERVICE

otel_ssl_active

新增于 2.10.0 版本。

如果为 True,将启用 SSL。默认为 False。要与 OpenTelemetry collector 建立 HTTPS 连接,您需要在 OpenTelemetry collector 的 config.yml 文件中配置 SSL 证书和密钥。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_SSL_ACTIVE

[triggerer]

capacity

添加于版本 2.2.0。

单个 Triggerer 默认同时运行的触发器数量。

类型:

字符串

默认值:

1000

环境变量:

AIRFLOW__TRIGGERER__CAPACITY

job_heartbeat_sec

在版本 2.6.3 中添加。

Triggerer 作业发送心跳信号的频率,以确保其未被终止。

类型:

浮点数

默认值:

5

环境变量:

AIRFLOW__TRIGGERER__JOB_HEARTBEAT_SEC

triggerer_health_check_threshold

添加于版本 2.7.0。

如果上次 Triggerer 心跳发生在 [triggerer] triggerer_health_check_threshold(以秒为单位)之前,则认为 Triggerer 不健康。这用于 /health 端点中的健康检查以及 TriggererJob 的 airflow jobs check CLI 中。

类型:

浮点数

默认值:

30

环境变量:

AIRFLOW__TRIGGERER__TRIGGERER_HEALTH_CHECK_THRESHOLD

default_capacity (已弃用)

自版本 3.0 起已弃用:此选项已移至 triggerer.capacity

[webserver]

access_denied_message

添加于版本 2.7.0。

用户尝试执行超出其授权权限的操作时显示的消息。

类型:

字符串

默认值:

访问被拒绝

环境变量:

AIRFLOW__WEBSERVER__ACCESS_DENIED_MESSAGE

audit_view_excluded_events

添加于版本 2.3.0。

逗号分隔的视图事件字符串,用于从 dag 审计视图中排除。此处传递的事件将被排除,所有其他事件都将被添加。数据库中的审计日志不受此参数影响。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__WEBSERVER__AUDIT_VIEW_EXCLUDED_EVENTS

示例:

cli_task_run,running,success

audit_view_included_events

添加于版本 2.3.0。

逗号分隔的视图事件字符串,用于包含在 dag 审计视图中。如果传递此参数,只有这些事件将填充 dag 审计视图。数据库中的审计日志不受此参数影响。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__WEBSERVER__AUDIT_VIEW_INCLUDED_EVENTS

示例:

dagrun_cleared,failed

auto_refresh_interval

添加于版本 2.2.0。

在启用自动刷新时,DAG 数据在图形或网格视图中自动刷新的频率(以秒为单位)。

类型:

整数

默认值:

3

环境变量:

AIRFLOW__WEBSERVER__AUTO_REFRESH_INTERVAL

default_wrap

添加到版本 1.10.4。

DAG 代码和 TI 日志视图上的换行切换的默认设置。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__WEBSERVER__DEFAULT_WRAP

enable_swagger_ui

添加于版本 2.6.0。

是否在 Web 服务器中运行 SwaggerUI 的布尔值。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__WEBSERVER__ENABLE_SWAGGER_UI

expose_config

在 Web 服务器中公开配置文件。设置为 non-sensitive-only 以显示除具有安全隐患的值之外的所有值。True 显示所有值。False 完全隐藏配置。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__WEBSERVER__EXPOSE_CONFIG

expose_hostname

添加到版本 1.10.8。

在 Web 服务器中公开主机名

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__WEBSERVER__EXPOSE_HOSTNAME

grid_view_sorting_order

添加于版本 2.7.0。

网格视图中的排序顺序。有效值为:topologicalhierarchical_alphabetical

类型:

字符串

默认值:

topological

环境变量:

AIRFLOW__WEBSERVER__GRID_VIEW_SORTING_ORDER

hide_paused_dags_by_default

默认情况下,Web 服务器显示暂停的 DAG。将其翻转以默认隐藏暂停的 DAG。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__WEBSERVER__HIDE_PAUSED_DAGS_BY_DEFAULT

instance_name

添加于版本 2.1.0。

为 DAG 概述页面设置自定义页面标题,并为所有页面设置站点标题。

类型:

字符串

默认值:

None

环境变量:

AIRFLOW__WEBSERVER__INSTANCE_NAME

instance_name_has_markup

添加于版本 2.3.0。

DAG 概述页面的自定义页面标题是否包含任何标记语言。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__WEBSERVER__INSTANCE_NAME_HAS_MARKUP

log_fetch_timeout_sec

Web 服务器从其他工作机器获取日志时等待初始握手的时间(以秒为单位)。

类型:

字符串

默认值:

5

环境变量:

AIRFLOW__WEBSERVER__LOG_FETCH_TIMEOUT_SEC

page_size

UI 中所有列表视图的一致页面大小。

类型:

字符串

默认值:

50

环境变量:

AIRFLOW__WEBSERVER__PAGE_SIZE

require_confirmation_dag_change

新增于 2.9.0 版本。

在 Web UI 中更改 DAG 时需要确认。这是为了防止在生产等敏感环境中意外更改正在运行的 DAG。当设置为 True 时,当用户尝试暂停/取消暂停、触发 DAG 时将显示确认对话框。

类型:

布尔型

默认值:

False

环境变量:

AIRFLOW__WEBSERVER__REQUIRE_CONFIRMATION_DAG_CHANGE

secret_key

用于运行 API 服务器的密钥。它应该尽可能随机。但是,当运行多个 Web 服务器实例时,请确保所有实例使用相同的 secret_key,否则其中一个实例将因“CSRF session token is missing”而出错。Web 服务器密钥也用于授权请求 Celery workers 获取日志。使用密钥生成的令牌具有较短的有效期 - 确保您运行 airflow 组件的所有机器上的时间都已同步(例如使用 ntpd),否则在访问日志时可能会出现“forbidden”错误。

类型:

字符串

默认值:

{SECRET_KEY}

环境变量:

AIRFLOW__WEBSERVER__SECRET_KEY

AIRFLOW__WEBSERVER__SECRET_KEY_CMD

AIRFLOW__WEBSERVER__SECRET_KEY_SECRET

warn_deployment_exposure

添加于版本 2.3.0。

是否显示公开可见部署警告的布尔值。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__WEBSERVER__WARN_DEPLOYMENT_EXPOSURE

x_frame_enabled

添加到版本 1.10.8。

允许 UI 在框架中渲染。

类型:

布尔型

默认值:

True

环境变量:

AIRFLOW__WEBSERVER__X_FRAME_ENABLED

access_logfile (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.access_logfile

web_server_host (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.host

web_server_port (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.port

web_server_ssl_cert (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.ssl_cert

web_server_ssl_key (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.ssl_key

web_server_worker_timeout (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.worker_timeout

workers (已弃用)

自版本 3.0 起已弃用:此选项已移至 api.workers

[workers]

与运行 Airflow 任务的工作节点相关的配置。

execution_api_retries

添加于版本 3.0.0。

对 execution API 服务器的最大重试次数。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__WORKERS__EXECUTION_API_RETRIES

execution_api_retry_wait_max

添加于版本 3.0.0。

在重试失败的 API 请求之前等待的最大时间量(以秒为单位)。

类型:

浮点数

默认值:

90.0

环境变量:

AIRFLOW__WORKERS__EXECUTION_API_RETRY_WAIT_MAX

execution_api_retry_wait_min

添加于版本 3.0.0。

在重试失败的 API 请求之前等待的最小时间量(以秒为单位)。

类型:

浮点数

默认值:

1.0

环境变量:

AIRFLOW__WORKERS__EXECUTION_API_RETRY_WAIT_MIN

max_failed_heartbeats

添加于版本 3.0.0。

终止任务实例进程之前连续失败心跳的最大次数。

类型:

整数

默认值:

3

环境变量:

AIRFLOW__WORKERS__MAX_FAILED_HEARTBEATS

min_heartbeat_interval

添加于版本 3.0.0。

工作节点与 API 服务器检查任务实例心跳状态以确认其仍然处于活动状态的最小间隔(以秒为单位)。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__WORKERS__MIN_HEARTBEAT_INTERVAL

secrets_backend

添加于版本 3.0.0。

为工作节点启用的 secrets 后端的完整类名(将优先于环境变量后端)

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__WORKERS__SECRETS_BACKEND

示例:

airflow.providers.amazon.aws.secrets.systems_manager.SystemsManagerParameterStoreBackend

secrets_backend_kwargs

添加于版本 3.0.0。

secrets_backend_kwargs 参数被加载到一个字典中,并传递给 secrets 后端类的 __init__ 方法。请参阅您正在使用的 secrets 后端的文档。预期格式为 JSON。

AWS Systems Manager ParameterStore 示例:{"connections_prefix": "/airflow/connections", "profile_name": "default"}

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS

AIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS_CMD

AIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS_SECRET

此条目有帮助吗?