配置参考
本页面包含可在 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_KEYAIRFLOW__API__SECRET_KEY_CMDAIRFLOW__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 > 0 且 server_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_SECRETAIRFLOW__API_AUTH__JWT_SECRET_CMDAIRFLOW__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_KWARGSAIRFLOW__CORE__ASSET_MANAGER_KWARGS_CMDAIRFLOW__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 将仅扫描同时包含 DAG 和 airflow(不区分大小写)的文件。
- 类型:
字符串
- 默认值:
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 -c 或 airflow 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 应使用的执行器类。选择包括 LocalExecutor、CeleryExecutor、KubernetesExecutor 或使用自定义执行器时的类完整导入路径。
- 类型:
字符串
- 默认值:
LocalExecutor- 环境变量:
AIRFLOW__CORE__EXECUTOR
fernet_key
用于在数据库中保存连接密码的密钥
- 类型:
字符串
- 默认值:
{FERNET_KEY}- 环境变量:
AIRFLOW__CORE__FERNET_KEYAIRFLOW__CORE__FERNET_KEY_CMDAIRFLOW__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_time、random_seeded_by_host 和 alphabetical。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
print_stats_interval
DAG 处理器统计信息打印到日志的频率。设置为 0 将禁用统计信息打印。
- 类型:
整数
- 默认值:
30- 环境变量:
AIRFLOW__DAG_PROCESSOR__PRINT_STATS_INTERVAL
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)确认版本正确。接受 True 或 False。
- 类型:
字符串
- 默认值:
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_CONNAIRFLOW__DATABASE__SQL_ALCHEMY_CONN_CMDAIRFLOW__DATABASE__SQL_ALCHEMY_CONN_SECRET
sql_alchemy_conn_async
在 3.1.0 版本中添加。
用于异步连接的元数据数据库的 SQLAlchemy 连接字符串。如果未设置,Airflow 会通过转换 sql_alchemy_conn 自动派生一个字符串。不幸的是,由于同步和异步数据库驱动程序实现之间的各种不兼容性,这种转换逻辑并不总是有效。此设置可以直接设置连接字符串,无需任何转换。
- 类型:
字符串
- 默认值:
无- 环境变量:
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN_ASYNCAIRFLOW__DATABASE__SQL_ALCHEMY_CONN_ASYNC_CMDAIRFLOW__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_ARGSAIRFLOW__DATABASE__SQL_ALCHEMY_ENGINE_ARGS_CMDAIRFLOW__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 池回收(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_id、task_id、key、external_executor_id 列具有不同编码时,用于这些列的排序规则(collation)。默认情况下,此排序规则与数据库排序规则相同,但对于 mysql 和 mariadb,默认值为 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 的值。
支持的值:CRITICAL、ERROR、WARNING、INFO、DEBUG。
- 类型:
字符串
- 默认值:
''- 环境变量:
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 的日志级别。
支持的值:CRITICAL、ERROR、WARNING、INFO、DEBUG。
- 类型:
字符串
- 默认值:
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 选项设置不同的级别。
支持的值:CRITICAL、ERROR、WARNING、INFO、DEBUG。
- 类型:
字符串
- 默认值:
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_KWARGSAIRFLOW__LOGGING__REMOTE_TASK_HANDLER_KWARGS_CMDAIRFLOW__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 服务器和日志服务)。
支持的值:CRITICAL、ERROR、WARNING、INFO、DEBUG。
- 类型:
字符串
- 默认值:
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_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_KWARGSAIRFLOW__SECRETS__BACKEND_KWARGS_CMDAIRFLOW__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_DSNAIRFLOW__SENTRY__SENTRY_DSN_CMDAIRFLOW__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_KWARGSAIRFLOW__WORKERS__SECRETS_BACKEND_KWARGS_CMDAIRFLOW__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