本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。代码节点执行自定义 Python 或 JavaScript 来处理工作流中复杂的数据转换、计算和逻辑。当预设节点无法满足你的特定处理需求时可以使用它。

沙箱服务
代码节点依赖sandbox 服务,该服务在标准 Docker Compose 部署中定义,随整个技术栈一起自动启动:
docker/envs/core-services/sandbox.env.example 中的 SANDBOX_* 环境变量调整其行为(worker 超时、经由 SSRF 代理的网络访问、端口),通过 docker/envs/core-services/shared.env.example 中的 CODE_* 变量调整输出限制(由 API 读取)。
配置
定义 输入变量 以访问工作流中其他节点的数据,然后在代码中引用这些变量。你的函数必须返回一个包含你已声明的 输出变量 的字典。语言支持
根据你的需求和熟悉程度在 Python 和 JavaScript 之间进行选择。两种语言都在安全沙箱中运行,并可访问用于数据处理的常用库。- Python
- JavaScript
Python 包含标准库,如
json、math、datetime 和 re。非常适合数据分析、数学运算和文本处理。错误处理和重试
为失败的代码执行配置自动重试行为,并定义代码遇到错误时的回退策略。

输出验证和限制
代码输出会根据 API 容器上设置的可配置限制进行验证:- 字符串:最大长度由
CODE_MAX_STRING_LENGTH设置(默认 400,000 个字符),空字节会被剥离。 - 数字:范围由
CODE_MAX_NUMBER和CODE_MIN_NUMBER设置(默认为 int64 范围),浮点数精度由CODE_MAX_PRECISION设置(默认 20 位小数)。 - 对象和数组:最大嵌套深度由
CODE_MAX_DEPTH设置(默认 5),数组大小由CODE_MAX_STRING_ARRAY_LENGTH、CODE_MAX_OBJECT_ARRAY_LENGTH和CODE_MAX_NUMBER_ARRAY_LENGTH设置。
docker/envs/core-services/shared.env.example。收紧限制可约束输出大小,放宽限制可让工作流正常产出更大的负载。
安全考虑
代码在严格的沙箱中执行,阻止文件系统访问、网络请求和系统命令。这在提供编程灵活性的同时保持安全性。 出于安全原因,某些操作会被自动阻止。避免尝试访问系统文件或执行可能危险的操作。默认情况下,沙箱代码的出站网络调用经由 SSRF 代理路由,设置SANDBOX_ENABLE_NETWORK=false 可完全禁用沙箱代码的网络访问。