配置参考

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

不同的 Airflow 组件可能需要不同的配置参数,为了提高安全性,您应该将敏感配置限制在仅需要的组件中。某些配置值必须在特定组件间共享才能正常工作——例如,JWT 签名密钥([api_auth] jwt_secret[api_auth] jwt_private_key_path)在所有生成或验证 JWT 令牌的组件(调度器、API 服务器)中必须保持一致。但是,其他敏感参数(如数据库连接字符串或 Fernet 密钥)应仅提供给需要的组件。

对于对安全性敏感的部署,请通过针对各个组件限定作用域的环境变量传递配置值,而不是在所有组件间共享单个配置文件。有关哪些配置参数应限制在哪些组件中的详细信息,请参阅 Airflow 安全模型

请确保运行 Airflow 组件的所有机器上的时间是同步的(例如使用 ntpd),否则当访问日志或进行 API 调用时,您可能会收到“禁止(forbidden)”错误。

注意

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

提供商特定的配置选项

一些提供商有其自己的配置选项,您将在提供商的文档中找到其配置的详细信息。

您可以在 提供商特定配置 中找到所有提供商的配置。

Airflow 配置选项

[api]

access_control_allow_headers

添加于版本 2.1.0。

在预检请求(preflight request)的响应中使用,用于指示进行实际请求时可以使用哪些 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 版本。

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

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__ACCESS_CONTROL_ALLOW_ORIGINS

auto_refresh_interval

添加于 2.2.0 版本。

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

类型:

整数

默认值:

3

环境变量:

AIRFLOW__API__AUTO_REFRESH_INTERVAL

base_url

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

类型:

字符串

默认值:

环境变量:

AIRFLOW__API__BASE_URL

示例:

https://my-airflow.company.com

client_ssl_cert

Task SDK 连接到 Airflow 执行 API 时使用的 PEM 编码客户端 SSL 证书路径。必须与 client_ssl_key 一起设置。

类型:

字符串

默认值:

环境变量:

AIRFLOW__API__CLIENT_SSL_CERT

示例:

/etc/airflow/certs/client.crt

client_ssl_key

对应 client_ssl_cert 的 PEM 编码私钥路径。必须与 client_ssl_cert 一起设置。

类型:

字符串

默认值:

环境变量:

AIRFLOW__API__CLIENT_SSL_KEY

示例:

/etc/airflow/certs/client.key

default_wrap

添加于版本 1.10.4。

DAG 代码和 TI 日志视图中自动换行(wrap)切换的默认设置。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__API__DEFAULT_WRAP

enable_swagger_ui

添加于版本 2.6.0。

用于在 web 服务器中运行 SwaggerUI 的布尔值。

类型:

布尔值

默认值:

True

环境变量:

AIRFLOW__API__ENABLE_SWAGGER_UI

expose_config

在 web 服务器中公开配置文件。设置为 True 以公开配置文件,其中敏感值始终被屏蔽。出于向后兼容性考虑,已弃用的值 non-sensitive-only 被视为与 True 相同。False 将完全隐藏配置。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__API__EXPOSE_CONFIG

expose_stacktrace

在 web 服务器中公开堆栈跟踪

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__API__EXPOSE_STACKTRACE

fallback_page_limit

添加于版本 2.0.0。

用于在 API 请求中限制参数为零或未提供时设置默认页面限制。否则,如果 API 请求中传入了正整数作为限制,则会采用用户给定的限制或最大页面限制中的最小值作为限制。

类型:

整数

默认值:

50

环境变量:

AIRFLOW__API__FALLBACK_PAGE_LIMIT

grid_view_sorting_order

添加于 2.7.0 版本。

网格视图中的排序顺序。有效值为:topological(拓扑顺序), hierarchical_alphabetical(层级字母顺序)

类型:

字符串

默认值:

topological

环境变量:

AIRFLOW__API__GRID_VIEW_SORTING_ORDER

hide_paused_dags_by_default

默认情况下,web 服务器会显示已暂停的 DAG。切换此项以默认隐藏已暂停的 DAG

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__API__HIDE_PAUSED_DAGS_BY_DEFAULT

host

启动 API 服务器时指定的 IP

类型:

字符串

默认值:

0.0.0.0

环境变量:

AIRFLOW__API__HOST

instance_name

添加于版本 2.1.0。

为所有 Airflow UI 页面设置自定义主页标题和站点标题。如果设置,仪表板将显示此值,而不是默认的“Welcome”消息。

类型:

字符串

默认值:

环境变量:

AIRFLOW__API__INSTANCE_NAME

log_config

uvicorn 服务器的日志配置文件路径。如果未设置,将使用默认的 uvicorn 日志配置。

类型:

字符串

默认值:

环境变量:

AIRFLOW__API__LOG_CONFIG

示例:

path/to/logging_config.yaml

log_fetch_timeout_sec

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

类型:

字符串

默认值:

5

环境变量:

AIRFLOW__API__LOG_FETCH_TIMEOUT_SEC

log_stream_buffer_size

添加于版本 3.2.0。

以 NDJSON 格式流式传输任务日志时,刷新到客户端之前要缓冲的日志行数。较大的值可以减少 HTTP 开销,但会增加首字节时间(time-to-first-byte)。

类型:

整数

默认值:

500

环境变量:

AIRFLOW__API__LOG_STREAM_BUFFER_SIZE

maximum_page_limit

添加于版本 2.0.0。

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

类型:

整数

默认值:

100

环境变量:

AIRFLOW__API__MAXIMUM_PAGE_LIMIT

port

运行 api 服务器的端口

类型:

字符串

默认值:

8080

环境变量:

AIRFLOW__API__PORT

require_confirmation_dag_change

添加于版本 2.9.0。

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

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__API__REQUIRE_CONFIRMATION_DAG_CHANGE

secret_key

用于运行 api 服务器的密钥。它应该尽可能随机。但是,当运行超过 1 个 api 实例时,请确保它们都使用相同的 secret_key,否则其中一个会报“CSRF session token is missing”错误。当检索日志时,api 密钥还用于授权对 Celery 工作节点的请求。不过,使用密钥生成的令牌具有较短的过期时间——请确保运行 airflow 组件的所有机器上的时间是同步的(例如使用 ntpd),否则当访问日志时,您可能会收到“禁止(forbidden)”错误。

类型:

字符串

默认值:

{SECRET_KEY}

环境变量:

AIRFLOW__API__SECRET_KEY

AIRFLOW__API__SECRET_KEY_CMD

AIRFLOW__API__SECRET_KEY_SECRET

server_type

添加于版本 3.2.0。

用于 API 服务器的服务器类型。选项为

  • uvicorn:默认。直接使用 uvicorn。设置简单,但不支持使用 worker_refresh_interval 进行滚动工作节点重启,因为当 workers=1 时 uvicorn 的多进程模式没有主进程,且 SIGTTOU 会杀死最新的工作节点(LIFO),而不是最旧的。

  • gunicorn:使用带有 uvicorn 工作节点的 gunicorn。支持通过 worker_refresh_interval 进行滚动工作节点重启。需要 apache-airflow-core[gunicorn] 扩展。Gunicorn 始终具有主/从架构,SIGTTOU 会杀死最旧的工作节点(FIFO),这对于滚动重启是正确的。

注意:使用 gunicorn 时,工作节点在 fork 后通过写时复制(copy-on-write)共享内存,从而减少整体内存使用。在 uvicorn 多进程模式下,每个工作节点独立加载所有内容,不共享内存。

类型:

字符串

默认值:

uvicorn

环境变量:

AIRFLOW__API__SERVER_TYPE

示例:

gunicorn

ssl_cert

api 服务器的 SSL 证书和密钥路径。同时提供两者时,将启用 SSL。这不会更改 api 服务器端口。相同的 SSL 证书也会被加载到工作节点中,以便在使用自签名证书时能够被信任。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__SSL_CERT

ssl_key

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

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__API__SSL_KEY

theme

用于自定义 Chakra UI 主题的 JSON 配置。支持 brand 颜色自定义、globalCss,以及可选的导航图标 icon(用于浅色模式)和 icon_dark_mode(用于深色模式)。图标必须是 SVG 文件,可以是绝对 http(s) URL,也可以是以 / 开头的应用相对路径。

必须为 brand 颜色提供 50-950 的 OKLCH 颜色值。

关于使用方法,请参阅 自定义 UI 主题

重要提示

oklch(l c h) 必须遵循以下格式

  • l (亮度) : float 必须在 0 和 1 之间

  • c (色度) : float 必须在 0 和 0.5 之间

  • h (色相) : float 必须在 0 和 360 之间

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

类型:

字符串

默认值:

环境变量:

AIRFLOW__API__THEME

示例:
{
  "tokens": {
    "colors": {
      "brand": {
        "50": { "value": "oklch(0.971 0.013 17.38)" },
        "100": { "value": "oklch(0.936 0.032 17.717)" },
        "200": { "value": "oklch(0.885 0.062 18.334)" },
        "300": { "value": "oklch(0.808 0.114 19.571)" },
        "400": { "value": "oklch(0.704 0.191 22.216)" },
        "500": { "value": "oklch(0.637 0.237 25.331)" },
        "600": { "value": "oklch(0.577 0.245 27.325)" },
        "700": { "value": "oklch(0.505 0.213 27.518)" },
        "800": { "value": "oklch(0.444 0.177 26.899)" },
        "900": { "value": "oklch(0.396 0.141 25.723)" },
        "950": { "value": "oklch(0.258 0.092 26.042)" }
      }
    }
  }
}

worker_refresh_batch_size

添加于版本 3.2.0。

滚动重启期间一次刷新工作节点的数量。较高的值刷新速度更快,但会暂时使用更多资源。

仅在 worker_refresh_interval > 0server_type = gunicorn 时使用。

类型:

整数

默认值:

1

环境变量:

AIRFLOW__API__WORKER_REFRESH_BATCH_SIZE

worker_refresh_interval

添加于版本 3.2.0。

API 服务器滚动工作节点刷新之间的秒数。启用后,工作节点将定期使用滚动重启模式(在新工作节点生成之后杀死旧工作节点)重新启动,以防止内存累积,同时保持零停机时间。

设置为 0 以禁用工作节点刷新(默认)。

此选项仅在 server_type = gunicorn 时有效。使用 uvicorn 时,此设置被忽略,因为 uvicorn 的 SIGTTOU 杀死的是最新的工作节点(LIFO 顺序)而不是最旧的,这违背了滚动重启的目的。

类型:

整数

默认值:

0

环境变量:

AIRFLOW__API__WORKER_REFRESH_INTERVAL

示例:

43200

worker_timeout

API 服务器在工作节点超时前等待的秒数

类型:

整数

默认值:

120

环境变量:

AIRFLOW__API__WORKER_TIMEOUT

workers

要在 API 服务器上运行的工作节点数量。应该大致等于可用的 CPU 核心数。如果您需要扩展 API 服务器,强烈建议部署多个 API 服务器而不是增加工作节点数量;请参阅 https://github.com/apache/airflow/issues/52270

类型:

整数

默认值:

1

环境变量:

AIRFLOW__API__WORKERS

access_logfile (已弃用)

自 3.1.0 版本起弃用:此选项已移动至 api.log_config

page_size (已弃用)

自 3.2.0 版本起弃用:此选项已移动至 api.fallback_page_limit

[api_auth]

与 Airflow API 认证相关的设置

jwt_algorithm

添加于 3.0.0 版本。

生成和验证 JWT 任务标识时使用的算法名称。

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

如果未指定此项,Airflow 将根据密钥类型猜测最佳算法。

(如果设置了 jwt_secret,则为“HS512”,否则为基于密钥类型的猜测)

类型:

字符串

默认值:

环境变量:

AIRFLOW__API_AUTH__JWT_ALGORITHM

示例:

"EdDSA" "HS512"

jwt_audience

添加于 3.0.0 版本。

为 API 生成和验证 JWT 时使用的受众(audience)声明。

此变量可以是一个单一值,也可以是以逗号分隔的字符串,在这种情况下,第一个值将用于生成,其余值在验证时被接受。

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

另请参阅 jwt_audience

类型:

字符串

默认值:

环境变量:

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 的颁发者(Issuer)。这成为生成令牌的 iss 声明,并在传入的请求中进行验证。

理想情况下,这应该是每个 airflow 部署唯一的

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

另请参阅 jwt_audience

类型:

字符串

默认值:

环境变量:

AIRFLOW__API_AUTH__JWT_ISSUER

示例:

http://my-airflow.mycompany.com

jwt_kid

添加于 3.0.0 版本。

生成 JWT 时放在标头中的密钥 ID(Key ID)。不用于验证路径。

如果未指定此项,将使用私钥的 RFC7638 指纹(thumbprint)。

使用 jwt_secret 时忽略此项。

类型:

字符串

默认值:

环境变量:

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 编码私钥文件路径。

jwt_secret 互斥。

类型:

字符串

默认值:

环境变量:

AIRFLOW__API_AUTH__JWT_PRIVATE_KEY_PATH

示例:

/path/to/private_key.pem

jwt_secret

添加于 3.0.0 版本。

用于编码和解码 JWT 以对公共和私有 API 进行认证的密钥。

它应该尽可能随机。此密钥必须在所有生成或验证 JWT 令牌的组件(调度器、API 服务器)中保持一致。为了提高安全性,请考虑改用非对称密钥(jwt_private_key_path),这允许您将签名密钥限制在仅需要生成令牌的组件中。

对于对安全性敏感的部署,请通过环境变量(AIRFLOW__API_AUTH__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 版本。

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

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

如果提供了远程 URL,它将被定期轮询以获取更改。

jwt_secret 互斥。

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

类型:

字符串

默认值:

环境变量:

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 版本。

允许在反序列化期间导入的类的空格分隔列表。项可以是通配符表达式。Python 内置类(如 dict)始终被允许。

类型:

字符串

默认值:

airflow.*

环境变量:

AIRFLOW__CORE__ALLOWED_DESERIALIZATION_CLASSES

示例:

airflow.* my_mod.my_other_mod.TheseClasses*

allowed_deserialization_classes_regexp

添加于 2.8.2 版本。

允许在反序列化期间导入的类的空格分隔列表。项被处理为正则表达式。Python 内置类(如 dict)始终被允许。这是 [core] allowed_deserialization_classes 的次要选项。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__ALLOWED_DESERIALIZATION_CLASSES_REGEXP

asset_manager_class

添加于 3.0.0 版本。

用作资产管理器的类。

类型:

字符串

默认值:

环境变量:

AIRFLOW__CORE__ASSET_MANAGER_CLASS

示例:

airflow.assets.manager.AssetManager

asset_manager_kwargs

添加于 3.0.0 版本。

提供给资产管理器的关键字参数(Kwargs)。

类型:

字符串

默认值:

环境变量:

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 应使用的认证管理器类。认证管理器类的完整导入路径。

类型:

字符串

默认值:

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 版本。

以守护进程模式(调度器、工作节点等)运行时进程使用的默认 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 文件使用的模式语法。有效值为 regexp(正则)或 glob(通配符)。

类型:

字符串

默认值:

glob

环境变量:

AIRFLOW__CORE__DAG_IGNORE_FILE_SYNTAX

dag_run_conf_overrides_params

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

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__CORE__DAG_RUN_CONF_OVERRIDES_PARAMS

dagbag_import_error_traceback_depth

添加于版本 2.0.0。

如果显示堆栈跟踪,应显示堆栈跟踪中的多少个条目

类型:

整数

默认值:

2

环境变量:

AIRFLOW__CORE__DAGBAG_IMPORT_ERROR_TRACEBACK_DEPTH

dagbag_import_error_tracebacks

添加于版本 2.0.0。

是否在 UI 中显示 dagbag 导入错误的堆栈跟踪,而不是仅仅显示异常消息

类型:

布尔值

默认值:

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

default_impersonation

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

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__DEFAULT_IMPERSONATION

default_pool_task_slot_count

添加于 2.2.0 版本。

default_pool 的任务槽位计数。此设置在已创建 default_pool 的现有部署中不起作用。对于现有部署,用户可以使用 Web 服务器、API 或 CLI 更改槽位数量

类型:

整数

默认值:

128

环境变量:

AIRFLOW__CORE__DEFAULT_POOL_TASK_SLOT_COUNT

default_task_execution_timeout

添加于 2.3.0 版本。

操作符的默认 task execution_timeout 值。预期传入 timedelta 的整数值,单位为秒。如果未指定,则该值被视为 None,意味着操作符默认情况下永远不会超时。

类型:

整数

默认值:

''

环境变量:

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

execute_tasks_new_python_interpreter

添加于版本 2.0.0。

是否应通过父进程的 fork 来执行任务

  • False:通过父进程的 fork 执行

  • True:生成一个新的 python 进程,比 fork 慢,但意味着插件更改会被任务立即感知到

另请参阅

可用的构建块

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__CORE__EXECUTE_TASKS_NEW_PYTHON_INTERPRETER

execution_api_server_url

添加于 3.0.0 版本。

执行 api 服务器的 url。默认值为 {BASE_URL}/execution/,其中 {BASE_URL} 是 API 服务器的基础 URL。如果未设置 {BASE_URL},它将使用 https://:8080 作为默认基础 URL。

类型:

字符串

默认值:

环境变量:

AIRFLOW__CORE__EXECUTION_API_SERVER_URL

executor

Airflow 应使用的执行器类。选择包括 LocalExecutorCeleryExecutorKubernetesExecutor 或使用自定义执行器时的类完整导入路径。

类型:

字符串

默认值:

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 和任务日志中隐藏敏感的 Variables(变量)Connection extra json keys(连接额外 JSON 键)

注意

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

类型:

布尔值

默认值:

True

环境变量:

AIRFLOW__CORE__HIDE_SENSITIVE_VAR_CONN_FIELDS

hostname_callable

通过提供可调用对象(callable)的路径来获取主机名,该对象将解析主机名。格式为“包名.函数名”。

例如,默认值 airflow.utils.net.getfqdn 表示使用修补后的 socket.getfqdn() 结果,详见相关的 CPython Issue

指定的函数不需要任何参数。如果更倾向于使用 IP 地址作为主机名,请使用值 airflow.utils.net.get_host_ip_address

类型:

字符串

默认值:

airflow.utils.net.getfqdn

环境变量:

AIRFLOW__CORE__HOSTNAME_CALLABLE

killed_task_cleanup_time

当任务被强制终止时,这是在发送 SIGTERM 后,发送 SIGKILL 之前,任务清理所需的秒数

类型:

整数

默认值:

60

环境变量:

AIRFLOW__CORE__KILLED_TASK_CLEANUP_TIME

lazy_discover_providers

添加于版本 2.0.0。

默认情况下,Airflow 提供程序是延迟发现的(仅在需要时进行发现和导入)。如果您希望在通过 CLI 调用或从模块加载‘airflow’时发现提供程序,请将其设置为 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

注意

如果您使用的是官方 Airflow Docker 镜像,此值会通过环境变量 AIRFLOW__CORE__LOAD_EXAMPLES 默认设置为 False。若要在使用官方镜像时启用示例 DAG,必须在环境中显式设置 AIRFLOW__CORE__LOAD_EXAMPLES=True

类型:

字符串

默认值:

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 级别使用 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 失败次数。这也可以在每个 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_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 DAG。如果定义了 DAG,则应返回 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_update_interval

在 1.10.7 版本中添加。

为了减少数据库写入频率,更新序列化 DAG 的间隔不得快于最小间隔。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__CORE__MIN_SERIALIZED_DAG_UPDATE_INTERVAL

multi_team

添加于版本 3.2.0。

是否在多团队模式下运行 Airflow 环境。在此模式下,不同的团队可以对其自身资源进行受限访问,同时仍共享相同的底层部署。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__CORE__MULTI_TEAM

num_dag_runs_to_retain_rendered_fields

添加于版本 3.2.0。

保留渲染后任务实例字段的近期 DAG 运行次数。较旧运行的记录将在任务执行期间被删除。保持此数字较小可能会导致您在尝试查看较旧任务的 TaskInstance 视图中的 Rendered 选项卡时出现错误。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__CORE__NUM_DAG_RUNS_TO_RETAIN_RENDERED_FIELDS

parallelism

这定义了 Airflow 中每个调度程序可以并发运行的最大任务实例数,与工作节点(worker)数量无关。通常,该值乘以集群中的调度程序数量,即元数据数据库中处于运行状态的任务实例的最大数量。该值必须大于或等于 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。

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

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__CORE__SENSITIVE_VAR_CONN_NAMES

simple_auth_manager_all_admins

添加于 3.0.0 版本。

是否禁用身份验证并允许环境中的每个人都拥有管理员权限。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_ALL_ADMINS

simple_auth_manager_passwords_file

添加于 3.0.0 版本。

简单身份验证管理器存储已配置用户密码的 JSON 文件。默认情况下,这是 AIRFLOW_HOME/simple_auth_manager_passwords.json.generated

类型:

字符串

默认值:

环境变量:

AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_PASSWORDS_FILE

示例:

/path/to/passwords.json

simple_auth_manager_users

添加于 3.0.0 版本。

简单身份验证管理器中用户及其相关角色的列表。如果在您的环境中使用简单身份验证管理器,此列表将控制谁可以访问该环境。

以逗号分隔的用户-角色列表。每个用户-角色是一个冒号分隔的用户名和角色对。角色在简单身份验证管理器中预定义:viewer(查看者)、user(用户)、op(操作员)、admin(管理员)。

您还可以通过将团队列表(用“|”分隔)作为用户-角色定义的第三个项目来将用户关联到团队。例如:bob:admin:marketing|hr。这仅在 [core] multi_team 设置为 True 时有效。

类型:

字符串

默认值:

admin:admin

环境变量:

AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_USERS

示例:

bob:admin,peter:viewer

task_success_overtime

在 2.10.0 版本中添加。

在任务被标记为成功后,任务执行辅助进程(如监听器、小型调度程序等)所能使用的最大可能时间(以秒为单位)。

类型:

整数

默认值:

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

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

max_num_rendered_ti_fields_per_task (Deprecated)

自 3.2.0 版本起已弃用:此选项已移至 core.num_dag_runs_to_retain_rendered_fields

[dag_processor]

Airflow DAG 处理器的配置。这包括,例如:
  • DAG 束(DAG bundles),允许 Airflow 从不同源加载 DAG

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

    • 并发解析的文件数量

bundle_refresh_check_interval

DAG 处理器检查是否有任何 DAG 束准备好刷新的频率,这可能是通过达到束的刷新间隔(refresh_interval),或者因为另一个 DAG 处理器看到了该束的更新版本。低值意味着我们检查得更频繁,并且 DAG 处理器彼此不同步的时间窗口更小,从而减少了并行解析同一束的不同版本的情况。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__DAG_PROCESSOR__BUNDLE_REFRESH_CHECK_INTERVAL

dag_bundle_config_list

添加于 3.0.0 版本。

后端配置列表。必须为每个后端提供名称、类路径(classpath)和关键字参数(kwargs)。

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

默认值是 dags 文件夹 DAG 束。

注意:如下所示,您可以通过缩进来跨多行拆分 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 束可以在本地存储文件的文件夹路径字符串。不支持模板化。如果未提供路径,Airflow 将使用 Path(tempfile.gettempdir()) / "airflow"。此路径必须是绝对路径。

类型:

字符串

默认值:

环境变量:

AIRFLOW__DAG_PROCESSOR__DAG_BUNDLE_STORAGE_PATH

示例:

/tmp/some-place

dag_file_processor_timeout

DagFileProcessor(处理 DAG 文件)的超时时间

类型:

整数

默认值:

50

环境变量:

AIRFLOW__DAG_PROCESSOR__DAG_FILE_PROCESSOR_TIMEOUT

dag_version_inflation_check_level

添加于版本 3.2.0。

控制 DAG 处理器在 DAG 解析前执行的 DAG 稳定性检查行为。该检查旨在检测可能导致 DAG 版本膨胀(version inflation)的问题,例如在 DAG/任务构造函数中存在随运行时变化的值。

  • off:完全禁用 DAG 稳定性检查。不生成错误或警告。

  • warning:DAG 正常加载,但在检测到问题时会在 UI 中显示警告。

  • error:将 DAG 稳定性失败视为 DAG 导入错误,防止 DAG 加载。

默认为“warning”,以便在不阻塞 DAG 执行的情况下提醒用户潜在的问题。

类型:

字符串

默认值:

warning

环境变量:

AIRFLOW__DAG_PROCESSOR__DAG_VERSION_INFLATION_CHECK_LEVEL

disable_bundle_versioning

始终运行使用最新代码的任务。如果设置为 True,束版本将不会存储在 DAG 运行中,因此将始终使用最新代码。

注意

此设置仅适用于支持版本控制的束,不会影响 UI 中显示的 DAG 版本。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__DAG_PROCESSOR__DISABLE_BUNDLE_VERSIONING

file_parsing_sort_mode

选项之一:modified_timerandom_seeded_by_hostalphabetical。DAG 处理器将列出并对 DAG 文件进行排序,以决定解析顺序。

  • modified_time:按文件的修改时间排序。在大规模场景中,这对于优先解析最近修改的 DAG 非常有用。

  • random_seeded_by_host:在多个 DAG 处理器之间随机排序,但在同一主机上具有相同的顺序,允许每个处理器以不同的顺序解析文件。

  • alphabetical:按文件名排序

类型:

字符串

默认值:

modified_time

环境变量:

AIRFLOW__DAG_PROCESSOR__FILE_PARSING_SORT_MODE

health_check_threshold

添加于版本 3.2.0。

如果上一次 DAG 处理器心跳发生时间超过 [dag_processor] health_check_threshold(秒),则认为 DAG 处理器不健康。这由 /health 端点中的健康检查以及 DagProcessorJob 的 airflow jobs check CLI 使用。

类型:

整数

默认值:

30

环境变量:

AIRFLOW__DAG_PROCESSOR__HEALTH_CHECK_THRESHOLD

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_pre_import_modules

添加于版本 2.6.0。

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

类型:

布尔值

默认值:

True

环境变量:

AIRFLOW__DAG_PROCESSOR__PARSING_PRE_IMPORT_MODULES

parsing_processes

DAG 处理器可以并行运行多个进程来解析 DAG。这定义了将运行多少个进程。

类型:

整数

默认值:

2

环境变量:

AIRFLOW__DAG_PROCESSOR__PARSING_PROCESSES

refresh_interval

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

类型:

整数

默认值:

300

环境变量:

AIRFLOW__DAG_PROCESSOR__REFRESH_INTERVAL

stale_bundle_cleanup_age_threshold

使用时间比此阈值更新的束版本将不会被删除。使用的新近度由任务在工作节点上开始运行的时间决定,该年龄与此设置(以秒为单位的时间增量)进行比较。

类型:

整数

默认值:

21600

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_BUNDLE_CLEANUP_AGE_THRESHOLD

stale_bundle_cleanup_interval

在共享工作节点上,随着任务运行和束版本更改,束副本会积聚在本地存储中。此设置表示检查这些过期束的间隔(秒)。比 stale_bundle_cleanup_age_threshold 更旧的束可能会被删除。但我们始终在本地保留 stale_bundle_cleanup_min_versions 个版本。设置为 0 或负数以禁用。

类型:

整数

默认值:

1800

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_BUNDLE_CLEANUP_INTERVAL

stale_bundle_cleanup_min_versions

在磁盘上保留的本地束版本的最小数量。仅当我们在工作节点上积累的版本超过 stale_bundle_cleanup_min_versions 时,比 stale_bundle_cleanup_age_threshold 更旧的本地束版本才会被删除。

类型:

整数

默认值:

10

环境变量:

AIRFLOW__DAG_PROCESSOR__STALE_BUNDLE_CLEANUP_MIN_VERSIONS

stale_dag_threshold

在重新解析 DAG 文件后,等待多久(秒)才停用过期的 DAG(不再存在于预期文件中的 DAG)。我们需要此阈值的原因是为了考虑从文件被解析到 DAG 被加载之间的时间。这可能花费的绝对最大值是 [dag_processor] dag_file_processor_timeout,但当您配置了较长的超时时间时,会导致过期 DAG 的停用出现明显延迟。

类型:

整数

默认值:

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 数据库中迁移外部表时要包含的附加数据库管理器,除了从已安装提供程序中自动发现的管理器之外。这些管理器必须继承自 BaseDBManager。

类型:

字符串

默认值:

环境变量:

AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS

示例:

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

max_db_retries

添加于 2.3.0 版本。

在数据库操作错误(Operational Errors)发生时,代码应该重试的次数。并非所有事务都会重试,因为这可能导致不期望的状态。目前它仅在 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_conn_async

在 3.1.0 版本中添加。

用于异步连接的元数据数据库的 SQLAlchemy 连接字符串。如果未设置,Airflow 会通过转换 sql_alchemy_conn 自动派生一个字符串。不幸的是,由于同步和异步数据库驱动程序实现之间的各种不兼容性,这种转换逻辑并不总是有效。此设置可以直接设置连接字符串,无需任何转换。

类型:

字符串

默认值:

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_CONN_ASYNC

AIRFLOW__DATABASE__SQL_ALCHEMY_CONN_ASYNC_CMD

AIRFLOW__DATABASE__SQL_ALCHEMY_CONN_ASYNC_SECRET

示例:

postgresql+asyncpg://postgres:airflow@postgres/airflow

sql_alchemy_connect_args

添加于 2.3.0 版本。

SQLAlchemy 中连接参数的导入路径。默认为空字典。当您想要配置 SQLAlchemy 不会在连接字符串中解析的数据库引擎参数时,这非常有用。可以通过传递包含 create_engine 参数的字典来设置此项。有关在 Postgres 数据库后端中传递 create_engine 参数(keepalives 变量、超时等)的详细信息,请参阅 设置 PostgreSQL 数据库,例如 connect_args={"timeout":30} 可以在 airflow_local_settings.py 中定义,并按如下所示导入。

3.1.0 更改:此配置仅应用于同步引擎,例如 psycopg2。请参阅 sql_alchemy_connect_args_async

类型:

字符串

默认值:

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_CONNECT_ARGS

示例:

airflow_local_settings.connect_args

sql_alchemy_connect_args_async

在 3.1.0 版本中添加。

SQLAlchemy 中连接参数的导入路径。默认为空字典。这与 sql_alchemy_connect_args 类似,但仅适用于异步连接。

此配置仅应用于异步引擎,例如 asyncpg。

类型:

字符串

默认值:

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_CONNECT_ARGS_ASYNC

示例:

airflow_local_settings.connect_args_async

sql_alchemy_engine_args

添加于 2.3.0 版本。

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

类型:

字符串

默认值:

环境变量:

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_sizemax_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 池回收(pool recycle)是指连接在池中处于空闲状态多长时间(秒)后被失效。此配置不适用于 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 支持具有多模式概念的数据库。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_SCHEMA

sql_alchemy_session_maker

在 2.10.0 版本中添加。

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

类型:

字符串

默认值:

环境变量:

AIRFLOW__DATABASE__SQL_ALCHEMY_SESSION_MAKER

示例:

airflow_local_settings._sessionmaker

sql_engine_collation_for_ids

添加于 2.3.0 版本。

dag_idtask_idkeyexternal_executor_id 列具有不同编码时,用于这些列的排序规则(collation)。默认情况下,此排序规则与数据库排序规则相同,但对于 mysqlmariadb,默认值为 utf8mb3_bin,以便当排序规则设置为 utf8mb4 变体时,索引键的索引大小不会超过允许的索引最大大小,详细信息请参见 GitHub Issue Comment

类型:

字符串

默认值:

环境变量:

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> 的完整地址。

类型:

字符串

默认值:

环境变量:

AIRFLOW__EMAIL__FROM_EMAIL

示例:

Airflow <airflow@example.com>

html_content_template

在 2.0.1 版本中添加。

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

另请参阅

电子邮件配置

类型:

字符串

默认值:

环境变量:

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 使用基础模板。

另请参阅

电子邮件配置

类型:

字符串

默认值:

环境变量:

AIRFLOW__EMAIL__SUBJECT_TEMPLATE

示例:

/path/to/my_subject_template_file

[execution_api]

与 Execution API 服务器相关的设置。

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

jwt_audience

添加于 3.0.0 版本。

生成和验证 Execution API 的 JWT 时使用的受众(audience)声明。

此变量可以是一个单一值,也可以是以逗号分隔的字符串,在这种情况下,第一个值将用于生成,其余值在验证时被接受。

非强制,但强烈建议设置

另请参阅 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 密钥表文件路径

类型:

字符串

默认值:

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]

max_assets_per_collector

添加于版本 3.2.0。

单个 Hook 血缘采集器实例可以采集的最大资产输入或输出数量。输入资产和输出资产分别计数。一旦达到最大值,任何额外的资产都将被丢弃。

类型:

整数

默认值:

100

环境变量:

AIRFLOW__LINEAGE__MAX_ASSETS_PER_COLLECTOR

max_extras_per_collector

添加于版本 3.2.0。

单个 Hook 血缘采集器实例可以采集的最大额外元数据条目数。一旦达到最大值,任何额外的元数据都将被丢弃。

类型:

整数

默认值:

200

环境变量:

AIRFLOW__LINEAGE__MAX_EXTRAS_PER_COLLECTOR

[logging]

base_log_folder

添加于版本 2.0.0。

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

类型:

字符串

默认值:

{AIRFLOW_HOME}/logs

环境变量:

AIRFLOW__LOGGING__BASE_LOG_FOLDER

callsite_parameters

在 3.1.0 版本中添加。

包含在每条消息中的 logger 调用点信息(例如行号、文件名等)的逗号分隔列表。

有关可能的值,请参见 structlog.processors.CallsiteParameter。值应该是常量名称(FUNC_NAME)或具体的值(func_name)。

在日志消息中包含这些信息会大大提高日志的可用性,但收集这些信息有极小的开销——如果您非常关注压榨每一丁点性能,可以将它们关闭(通过将此值设置为空字符串)。

类型:

字符串

默认值:

filename,lineno

环境变量:

AIRFLOW__LOGGING__CALLSITE_PARAMETERS

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

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)名称列表,这些记录器将被配置为将消息打印到控制台。

类型:

字符串

默认值:

''

环境变量:

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 可理解的八进制字符串形式表示的权限。当您使用模拟(impersonation)功能,且日志由 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 文件的路径。如果省略,将使用基于 应用程序默认凭据 (Application Default Credentials) 的授权。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__GOOGLE_KEY_PATH

interleave_timestamp_parser

添加于版本 2.6.0。

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

类型:

字符串

默认值:

环境变量:

AIRFLOW__LOGGING__INTERLEAVE_TIMESTAMP_PARSER

示例:

path.to.my_func

json_logs

添加于版本 3.2.0。

为所有输出启用 JSON 结构化日志记录。当设为 True 时,进程发出的每一行日志都是一个单行 JSON 对象(包括来自 API 服务器的 HTTP 访问日志)。建议在由日志聚合器收集日志的生产环境/云原生部署中使用。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__LOGGING__JSON_LOGS

示例:

True

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。

日志行的格式

3.1.0 版本变更:现在可以包含颜色转义序列(如 %(blue)s 等),仅当 colored_console_log 为 true 时才会产生颜色效果。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__LOG_FORMAT

示例:

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

log_formatter_class

添加于 2.3.4 版本。

确定 Airflow 用于构建日志消息的格式化类。默认的格式化类是时区感知的,这意味着附加到日志条目的时间戳将根据 Airflow 实例的本地时区进行调整。注意:此设置不会影响组件日志(调度程序、API 服务器、触发器等),因为这些组件直接使用 structlog。使用 log_timestamp_format 来控制这些日志的时间戳。

类型:

字符串

默认值:

airflow.utils.log.timezone_aware.TimezoneAware

环境变量:

AIRFLOW__LOGGING__LOG_FORMATTER_CLASS

log_timestamp_format

3.0.4 版本新增。

组件日志(调度程序、API 服务器、触发器等)的时间戳格式。使用 iso 表示 ISO 8601 格式(默认),或者使用 Python strftime 格式字符串,例如 %Y-%m-%d %H:%M:%S。注意:此设置仅适用于通过 structlog 渲染的组件日志。任务/DAG 日志改用 log_format

类型:

字符串

默认值:

iso

环境变量:

AIRFLOW__LOGGING__LOG_TIMESTAMP_FORMAT

示例:

%Y-%m-%d %H:%M:%S

logging_config_class

添加于版本 2.0.0。

日志记录类。指定将定义日志记录配置的类。该类必须位于 Python 类路径上。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__LOGGING__LOGGING_CONFIG_CLASS

示例:

my.path.default_local_settings.LOGGING_CONFIG

logging_level

添加于版本 2.0.0。

日志级别。

各个记录器可以使用 namespace_levels 选项设置不同的级别。

支持的值:CRITICALERRORWARNINGINFODEBUG

类型:

字符串

默认值:

INFO

环境变量:

AIRFLOW__LOGGING__LOGGING_LEVEL

min_length_masked_secret

添加于 3.0.0 版本。

日志消息中需要被掩码处理的秘密(secret)的最小长度。短于此长度的秘密将不会被掩码。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__LOGGING__MIN_LENGTH_MASKED_SECRET

namespace_levels

添加于版本 3.2.0。

为个别命名记录器设置日志级别。

Python 中的一个非常普遍的惯例是使用模块名称作为记录器的名称,日志消息就是从该记录器产生的。此配置选项使我们能够轻松地为这些记录器设置日志级别。

此变量的格式是一系列 <logger>=<level> 对,以空格或逗号分隔。

每个级别都是 logging_level 的可能值之一。

记录器名称可在任务日志中查看(作为“source”属性),或者通过在格式字符串中包含 %(name)s,或在默认格式的消息后的 [] 中查看。

类型:

字符串

默认值:

环境变量:

AIRFLOW__LOGGING__NAMESPACE_LEVELS

示例:

sqlalchemy=INFO sqlalchemy.engine=DEBUG, botocor

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 提供对存储位置的访问权限。根据您的远程日志记录服务,这可能仅用于读取日志,而不用于写入日志。

类型:

字符串

默认值:

''

环境变量:

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。

触发器提供日志服务的端口。有关更多信息,请参阅 [logging] worker_log_server_port 的描述。

类型:

字符串

默认值:

8794

环境变量:

AIRFLOW__LOGGING__TRIGGER_LOG_SERVER_PORT

uvicorn_logging_level

添加于版本 3.2.0。

uvicorn 的日志级别(API 服务器和日志服务)。

支持的值:CRITICALERRORWARNINGINFODEBUG

类型:

字符串

默认值:

INFO

环境变量:

AIRFLOW__LOGGING__UVICORN_LOGGING_LEVEL

worker_log_server_port

添加于 2.2.0 版本。

当您启动 Airflow 工作进程时,Airflow 会启动一个微型 Web 服务器子进程,将工作进程的本地日志文件提供给 Airflow 主 Web 服务器,后者随后构建页面并将其发送给用户。此设置定义了日志服务的端口。该端口必须处于未使用状态,并且能够被主 Web 服务器访问以连接到工作进程。

类型:

字符串

默认值:

8793

环境变量:

AIRFLOW__LOGGING__WORKER_LOG_SERVER_PORT

[metrics]

StatsD 集成设置。

legacy_names_on

添加于版本 3.2.0。

如果为 true,则导出新旧度量名称。旧名称包含变量如 dag_id 和 task_id,而新名称则将这些变量设置在标签(tags)中。

类型:

字符串

默认值:

True

环境变量:

AIRFLOW__METRICS__LEGACY_NAMES_ON

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

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__METRICS__OTEL_DEBUGGING_ON

otel_host

添加于版本 2.6.0。

指定 OpenTelemetry 收集器的主机名或 IP 地址,Airflow 将度量指标和追踪信息发送到该地址。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

字符串

默认值:

localhost

环境变量:

AIRFLOW__METRICS__OTEL_HOST

otel_interval_milliseconds

添加于版本 2.6.0。

定义 Airflow 发送度量指标和追踪信息批次到已配置的 OpenTelemetry 收集器的时间间隔(毫秒)。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

整数

默认值:

60000

环境变量:

AIRFLOW__METRICS__OTEL_INTERVAL_MILLISECONDS

otel_on

添加于版本 2.6.0。

启用向 OpenTelemetry 发送度量指标。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__METRICS__OTEL_ON

otel_port

添加于版本 2.6.0。

指定 OpenTelemetry 收集器正在监听的端口。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

整数

默认值:

8889

环境变量:

AIRFLOW__METRICS__OTEL_PORT

otel_prefix

添加于版本 2.6.0。

Airflow 度量指标的前缀。

类型:

字符串

默认值:

airflow

环境变量:

AIRFLOW__METRICS__OTEL_PREFIX

otel_service

2.10.3 版本新增。

追踪信息的默认服务名称。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

字符串

默认值:

Airflow

环境变量:

AIRFLOW__METRICS__OTEL_SERVICE

otel_ssl_active

添加于 2.7.0 版本。

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

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__METRICS__OTEL_SSL_ACTIVE

stat_name_handler

添加于版本 2.0.0。

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

该函数应具有以下签名

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 才能获取到它。

类型:

字符串

默认值:

环境变量:

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。

任务被分配到的默认队列,以及工作进程监听的默认队列。

类型:

字符串

默认值:

default

环境变量:

AIRFLOW__OPERATORS__DEFAULT_QUEUE

default_ram

当操作符的配置中未指定特定的内存请求时,分配给每个操作符的默认内存量

类型:

字符串

默认值:

512

环境变量:

AIRFLOW__OPERATORS__DEFAULT_RAM

[profiling]

Airflow 组件中内存分析的配置。目前,我们使用 Memray 提供分析,未来可能会添加其他工具。另请参阅链接中的指南(待定)

memray_trace_components

添加于版本 3.2.0。

要使用 memray 进行分析的 Airflow 组件的逗号分隔列表。有效组件为:scheduler, api, dag_processor

此选项仅在未设置为空白(默认选项)时生效。开始追踪内存分配并将度量指标存储在 “$AIRFLOW_HOME/<component>_memory.bin” 中。要生成分析视图,请在生成 bin 文件的基本目录中运行此命令:` # 另请参阅 https://bloomberg.github.io/memray/run.html#aggregated-capture-files memray flamegraph $AIRFLOW_HOME/<component>_memory.bin `。这是一项开销较大的操作,通常除了调试目的外不应使用。

类型:

字符串

默认值:

环境变量:

AIRFLOW__PROFILING__MEMRAY_TRACE_COMPONENTS

示例:

scheduler,api,dag_processor

[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 定义中逐个 DAG 进行设置 (catchup)。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__SCHEDULER__CATCHUP_BY_DEFAULT

create_cron_data_intervals

添加于版本 2.9.0。

当向 DAG 的 schedule 参数提供 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

dagrun_metrics_interval

在 3.1.0 版本中添加。

调度程序向 StatsD 发送关于运行中 DAG 运行的度量指标的频率(以秒为单位,如果启用了 statsd_on)

类型:

浮点数

默认值:

30.0

环境变量:

AIRFLOW__SCHEDULER__DAGRUN_METRICS_INTERVAL

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。

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

类型:

整数

默认值:

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

only_idle

添加于版本 3.2.0。

仅将调度程序空闲(没有任务排队或完成)的运行次数计入 [scheduler] num_runs 设置的运行限制。每当处理任务时,计数器会重置。

类型:

布尔值

默认值:

false

环境变量:

AIRFLOW__SCHEDULER__ONLY_IDLE

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

pool_metrics_interval

添加于版本 2.0.0。

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

类型:

浮点数

默认值:

5.0

环境变量:

AIRFLOW__SCHEDULER__POOL_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

ti_metrics_interval

添加于 3.0.0 版本。

向 StatsD 发送任务实例(已调度、排队、运行和延迟)统计信息的频率(以秒为单位,如果启用了 statsd_on)

类型:

浮点数

默认值:

30.0

环境变量:

AIRFLOW__SCHEDULER__TI_METRICS_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

parsing_pre_import_modules (已弃用)

3.0.4 版本已弃用:此选项已移动至 dag_processor.parsing_pre_import_modules

running_metrics_interval (已弃用)

3.2.0 版本已弃用:此选项已移动至 scheduler.ti_metrics_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_KWARG__<KEY>=value 环境变量来设置单个 kwargs。按键设置的变量会覆盖此 JSON 设置中对应的键。这些值是原始字符串(不会进行 JSON 解析)。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__SECRETS__BACKEND_KWARGS

AIRFLOW__SECRETS__BACKEND_KWARGS_CMD

AIRFLOW__SECRETS__BACKEND_KWARGS_SECRET

cache_ttl_seconds

添加于 2.7.0 版本。

注意

这是一个 实验性功能

启用缓存时,这是缓存条目被视为有效的持续时间。如果条目的有效期超过此秒数,则会进行刷新。这意味着当启用缓存时,这是您看到 Variable 更改生效所需等待的最长时间。

类型:

整数

默认值:

900

环境变量:

AIRFLOW__SECRETS__CACHE_TTL_SECONDS

use_cache

添加于 2.7.0 版本。

注意

这是一个 实验性功能

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

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__SECRETS__USE_CACHE

[sensors]

default_timeout

添加于 2.3.0 版本。

Sensor 默认超时时间,默认为 7 天(7 * 24 * 60 * 60 秒)。

类型:

浮点数

默认值:

604800

环境变量:

AIRFLOW__SENSORS__DEFAULT_TIMEOUT

[sentry]

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

before_send

添加于 2.2.0 版本。

应配置 Sentry SDK 使用的 before_send 函数的带点路径。

类型:

字符串

默认值:

环境变量:

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 发送电子邮件通知时使用的默认 发件人 (from) 电子邮件地址。

类型:

字符串

默认值:

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_debug_traces_on

在 3.1.0 版本中添加。

如果为 True,则会导出 Airflow 内部方法的追踪信息。默认为 False。

3.2.0 版本弃用:此参数不再使用。

类型:

字符串

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_DEBUG_TRACES_ON

otel_debugging_on

在 2.10.0 版本中添加。

如果为 True,所有追踪信息也会输出到控制台。默认为 False。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_DEBUGGING_ON

otel_host

在 2.10.0 版本中添加。

指定 Airflow 向其发送追踪信息的 OpenTelemetry Collector 的主机名或 IP 地址。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

字符串

默认值:

localhost

环境变量:

AIRFLOW__TRACES__OTEL_HOST

otel_on

在 2.10.0 版本中添加。

启用向 OpenTelemetry 发送追踪信息。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_ON

otel_port

在 2.10.0 版本中添加。

指定 OpenTelemetry 收集器正在监听的端口。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

整数

默认值:

8889

环境变量:

AIRFLOW__TRACES__OTEL_PORT

otel_service

在 2.10.0 版本中添加。

追踪信息的默认服务名称。

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

字符串

默认值:

Airflow

环境变量:

AIRFLOW__TRACES__OTEL_SERVICE

otel_ssl_active

在 2.10.0 版本中添加。

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

3.2.0 版本已弃用:根据 OpenTelemetry 规范,配置预期通过标准的 OpenTelemetry 环境变量进行,而不是项目特定的设置。

此选项已被弃用,以确保在不同环境和使用 OpenTelemetry 的部署中保持行为一致。

OpenTelemetry 应仅使用标准的 OpenTelemetry 环境变量进行配置,例如 ‘OTEL_EXPORTER_OTLP_ENDPOINT’、‘OTEL_EXPORTER_OTLP_PROTOCOL’、‘OTEL_SERVICE_NAME’ 等。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__TRACES__OTEL_SSL_ACTIVE

task_runner_flush_timeout_milliseconds

添加于版本 3.2.0。

当任务运行程序进程退出时,等待 OpenTelemetry 跨度 (span) 导出器刷新挂起跨度的时间(以毫秒为单位)。如果导出器未在此时间内完成,则缓冲的跨度可能会被丢弃。

类型:

整数

默认值:

30000

环境变量:

AIRFLOW__TRACES__TASK_RUNNER_FLUSH_TIMEOUT_MILLISECONDS

[triggerer]

capacity

添加于 2.2.0 版本。

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

类型:

整数

默认值:

1000

环境变量:

AIRFLOW__TRIGGERER__CAPACITY

job_heartbeat_sec

2.6.3 版本新增。

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

类型:

浮点数

默认值:

5

环境变量:

AIRFLOW__TRIGGERER__JOB_HEARTBEAT_SEC

max_trigger_to_select_per_loop

添加于版本 3.2.0。

每个循环中选择的最大触发器数量。将此值设置得显著低于 [triggerer] capacity,以保持高可用(HA)部署中各个 triggerer 之间的负载平衡。基准测试表明,默认情况下,两个 triggerer 仍可在 1 秒内领取约 1,000 个触发器。

类型:

整数

默认值:

50

环境变量:

AIRFLOW__TRIGGERER__MAX_TRIGGER_TO_SELECT_PER_LOOP

queues_enabled

添加于版本 3.2.0。

当设置为 True 时,延迟任务将向其源自的任务队列注册触发器,并且 triggerer 可以根据其队列分配有选择地运行触发器。仅在使用支持任务队列分配的执行程序时才相关。有关更多详细信息,请参阅 trigger 文档。

类型:

布尔值

默认值:

False

环境变量:

AIRFLOW__TRIGGERER__QUEUES_ENABLED

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

[workers]

与运行 Airflow 任务的 workers 相关的配置。

execution_api_retries

添加于 3.0.0 版本。

对执行 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

execution_api_timeout

在 3.1.1 版本中添加。

从 workers 到执行 API 服务器的 HTTP 请求的超时时间(以秒为单位)。这控制了 worker 在超时前等待 API 服务器响应的时间。如果您在高负载下遇到超时错误,请增加此值。

类型:

浮点数

默认值:

5.0

环境变量:

AIRFLOW__WORKERS__EXECUTION_API_TIMEOUT

max_failed_heartbeats

添加于 3.0.0 版本。

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

类型:

整数

默认值:

3

环境变量:

AIRFLOW__WORKERS__MAX_FAILED_HEARTBEATS

min_heartbeat_interval

添加于 3.0.0 版本。

worker 检查任务实例心跳状态以确认其仍然存活的最小时间间隔(以秒为单位)。

类型:

整数

默认值:

5

环境变量:

AIRFLOW__WORKERS__MIN_HEARTBEAT_INTERVAL

missing_dag_retries

在 3.1.7 版本中添加。

如果 worker 在启动时无法加载 DAG 或任务定义,任务将被重新安排的最大次数。

这种情况可能由于瞬时基础设施问题(例如丢失 DAG 文件、临时文件系统或网络问题,或包同步延迟)而发生。在这种情况下,重新安排不计作任务重试。

将此值设置为 0 可禁用重新安排,并在启动失败时立即标记任务失败。

类型:

整数

默认值:

3

环境变量:

AIRFLOW__WORKERS__MISSING_DAG_RETRIES

missing_dag_retry_delay

在 3.1.7 版本中添加。

当因无法加载 DAG 或任务定义导致 worker 启动失败后,重新安排任务前的延迟时间(以秒为单位)。

当任务运行程序请求调度程序将任务实例在 UP_FOR_RESCHEDULE 状态下重新安排时,应用此延迟。

类型:

整数

默认值:

60

环境变量:

AIRFLOW__WORKERS__MISSING_DAG_RETRY_DELAY

secrets_backend

添加于 3.0.0 版本。

为 workers 启用的 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_KWARG__<KEY>=value 环境变量来设置单个 kwargs。按键设置的变量会覆盖此 JSON 设置中对应的键。这些值是原始字符串(不会进行 JSON 解析)。

类型:

字符串

默认值:

''

环境变量:

AIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS

AIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS_CMD

AIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS_SECRET

socket_cleanup_timeout

在 3.0.3 版本中添加。

任务进程退出后等待强制关闭任何剩余通信套接字的时间(以秒为单位)。这有助于防止任务监控程序因错过 EOF 信号而无限期挂起。

类型:

浮点数

默认值:

60.0

环境变量:

AIRFLOW__WORKERS__SOCKET_CLEANUP_TIMEOUT

missing_dag_retires (已弃用)

3.1.8 版本弃用:此选项已移至 workers.missing_dag_retries

此条目是否有帮助?