跳到主要内容

任务运行器环境变量

信息

通过文件配置

与 n8n 主镜像不同,任务运行器镜像不支持通过文件配置密钥。因此,添加 _FILE 后缀的变量不会被识别。

任务运行器执行 Code 节点中定义的代码。

n8n 实例环境变量 ​

变量类型默认值说明
N8N_RUNNERS_ENABLED (已弃用)Booleanfalse是否启用任务运行器。自 n8n 2.0 起弃用。
N8N_RUNNERS_MODE枚举字符串: internal (已弃用), externalinternal任务运行器的启动和运行方式。internal 表示由 n8n 以子进程方式启动运行器。已弃用:内部模式将在未来版本移除。external 表示由外部编排器启动运行器。参阅外部模式。
N8N_RUNNERS_AUTH_TOKENString随机字符串任务运行器向 n8n 验证身份所用的共享密钥。使用 external 模式时必需。
N8N_RUNNERS_BROKER_PORTNumber5679任务代理监听运行器连接的端口。
N8N_RUNNERS_BROKER_LISTEN_ADDRESSString127.0.0.1任务代理监听的地址。
N8N_RUNNERS_MAX_PAYLOADNumber1 073 741 824任务代理与运行器之间通信的负载大小上限,单位为字节。
N8N_RUNNERS_MAX_OLD_SPACE_SIZEString任务运行器使用的 --max-old-space-size 选项,单位为 MB。Node.js 默认根据可用内存设置。
N8N_RUNNERS_MAX_CONCURRENCYNumber5单个任务运行器同时执行的任务数量。
N8N_RUNNERS_TASK_TIMEOUTNumber300任务最长运行时长,单位为秒。超过后运行器停止任务并重启。必须大于 0。
N8N_RUNNERS_HEARTBEAT_INTERVALNumber30运行器向任务代理发送心跳的间隔,单位为秒。未及时发送心跳时,任务停止,运行器重启。必须大于 0。
N8N_RUNNERS_INSECURE_MODEBooleanfalse是否关闭任务运行器的全部安全措施,以兼容依赖不安全 JavaScript 特性的模块。不建议在生产环境使用。
N8N_RUNNERS_TASK_REQUEST_TIMEOUTNumber60任务请求等待可用运行器的最长时长,单位为秒,超过后超时,避免无运行器可用时工作流无限挂起。必须大于 0。

任务运行器启动器环境变量 ​

变量类型默认值说明
N8N_RUNNERS_LAUNCHER_LOG_LEVEL枚举字符串: debug, info, warn, errorinfo显示哪些日志消息。
N8N_RUNNERS_AUTH_TOKENString-向 n8n 验证身份所用的共享密钥。
N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUTNumber15空闲运行器关闭前等待的秒数。
N8N_RUNNERS_TASK_BROKER_URIStringhttp://127.0.0.1:5679任务代理服务器,即 n8n 实例的 URI。
N8N_RUNNERS_LAUNCHER_HEALTH_CHECK_PORTNumber5680启动器健康检查服务器的端口。
N8N_RUNNERS_MAX_PAYLOADNumber1 073 741 824任务代理与运行器之间通信的负载大小上限,单位为字节。
N8N_RUNNERS_MAX_CONCURRENCYNumber5单个任务运行器同时执行的任务数量。

任务运行器环境变量(所有语言) ​

变量类型默认值说明
N8N_RUNNERS_GRANT_TOKENString随机字符串运行器向任务代理验证身份所用的令牌,由启动器自动提供。
N8N_RUNNERS_IDString随机字符串运行器向任务代理标识自身的 ID。在 internal 模式下,由 n8n 为每个启动的运行器设置。在 external 模式下,除非需要代理日志中的 ID 稳定,否则请勿设置。每个运行器必须使用唯一值,两个运行器共用 ID 会不断互相挤掉连接。应按运行器类型设置为 env-override,放在运行器配置文件(/etc/n8n-task-runners.json)中,不要作为容器环境变量设置。自 n8n 2.35.0 起提供。
N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUTNumber15空闲运行器关闭前等待的秒数。
N8N_RUNNERS_TASK_BROKER_URIStringhttp://127.0.0.1:5679任务代理服务器,即 n8n 实例的 URI。
N8N_RUNNERS_LAUNCHER_HEALTH_CHECK_PORTNumber5680启动器健康检查服务器的端口。
N8N_RUNNERS_MAX_PAYLOADNumber1 073 741 824任务代理与运行器之间通信的负载大小上限,单位为字节。
N8N_RUNNERS_MAX_CONCURRENCYNumber5单个任务运行器同时执行的任务数量。

任务运行器环境变量(JavaScript) ​

变量类型默认值说明
NODE_FUNCTION_ALLOW_BUILTINString-允许用户在 Code 节点中导入指定的内置模块,使用 * 允许全部。n8n 默认禁用模块导入。在外部模式下,请在运行器配置文件(/etc/n8n-task-runners.json)中设置为 env-override,不要作为容器环境变量设置。
NODE_FUNCTION_ALLOW_EXTERNALString-允许用户在 Code 节点中导入指定的外部模块,来源为 n8n/node_modules。n8n 默认禁用模块导入。在外部模式下,请在运行器配置文件(/etc/n8n-task-runners.json)中设置为 env-override,不要作为容器环境变量设置。
N8N_RUNNERS_ALLOW_PROTOTYPE_MUTATIONBooleanfalse是否允许外部库修改原型。设为 true,可使用依赖运行时原型修改的模块,例如 puppeteer,但会降低安全限制。
GENERIC_TIMEZONE*America/New_York与 n8n 实例配置的默认时区相同。
NODE_OPTIONSString-Node.js 的选项。
N8N_RUNNERS_MAX_OLD_SPACE_SIZEString任务运行器使用的 --max-old-space-size 选项,单位为 MB。Node.js 默认根据可用内存设置。

任务运行器环境变量(Python) ​

变量类型默认值说明
N8N_RUNNERS_STDLIB_ALLOWString-Code 节点允许使用的 Python 标准库模块,包括子模块。使用 * 可允许全部标准库模块。n8n 默认禁用所有 Python 标准库导入。在外部模式下,请在运行器配置文件(/etc/n8n-task-runners.json)中设置为 env-override,不要作为容器环境变量设置。
N8N_RUNNERS_EXTERNAL_ALLOWString-Code 节点允许使用的第三方 Python 模块,包括子模块。使用 * 可允许全部外部模块。n8n 默认禁用全部第三方 Python 模块。模块必须包含在 n8nio/runners 镜像中。在外部模式下,请在运行器配置文件(/etc/n8n-task-runners.json)中设置为 env-override,不要作为容器环境变量设置。
N8N_RUNNERS_ALLOW_TRANSITIVE_IMPORTSBooleanfalse允许列表中包自身代码执行的导入,是否跳过 N8N_RUNNERS_EXTERNAL_ALLOW 和 N8N_RUNNERS_STDLIB_ALLOW 两项导入允许列表。设为 true,允许这些包加载其传递依赖和标准库,而无需逐一列出模块。适用于内部导入还会引入其他模块的包,例如 pandas 导入 pytz,或 boto3 导入 dateutil。你在 Code 节点中编写的导入仍会检查允许列表。启用后信任的是所有已安装包的导入行为,而非仅指定的包;被入侵的依赖可能引入原本会被阻止的模块,因此只有信任运行器镜像中全部已安装包时才应启用。在外部模式下,请在运行器配置文件(/etc/n8n-task-runners.json)中设置为 env-override,不要作为容器环境变量设置。
N8N_RUNNERS_BUILTINS_DENYStringeval,exec,compile,open,input,breakpoint,getattr,object,type,vars,setattr,delattr,hasattr,dir,memoryview,__build_class__,globals,localsCode 节点中禁止使用的 Python 内置项。设为空字符串可允许全部内置项。
N8N_BLOCK_RUNNER_ENV_ACCESSBooleantrue是否禁止 Python 代码任务访问运行器环境。设为 false,允许所有 Python Code 节点用户通过 os.environ 访问运行器环境。出于安全原因,默认禁止访问环境变量。

相关资源 ​

本文为社区中文翻译。查看对应英文原文