沙箱与执行隔离
流程中的用户代码节点(如自定义脚本)需要在隔离环境运行,避免拖垮主进程或 造成安全风险。本篇讲解链盒的执行隔离机制。
四种执行模式
通过 AP_EXECUTION_MODE 选择隔离级别,从宽松到严格:
| 模式 | 隔离级别 | 适用场景 |
|---|---|---|
| UNSANDBOXED | 不隔离,主进程执行 | 受控环境、单机体验 |
| SANDBOX_PROCESS | 每个流程独立子进程 | 生产环境推荐 |
| SANDBOX_CODE_ONLY | 仅隔离代码节点 | 混合场景 |
| SANDBOX_CODE_AND_PROCESS | 代码与流程均隔离 | 多租户、最严格 |
推荐选择
- 本地试用:
UNSANDBOXED,性能最好 - 生产环境:
SANDBOX_PROCESS,平衡安全与性能 - 多租户 SaaS:
SANDBOX_CODE_AND_PROCESS,最严格隔离
沙箱超时
沙箱内的执行有超时保护,避免死循环代码卡住资源:
AP_SANDBOX_RUN_TIME_SECONDS:单次沙箱运行超时AP_FLOW_TIMEOUT_SECONDS:整个流程超时(默认 600 秒)
超时后该次执行被终止并标记失败,可在运行历史查看。
沙箱的资源限制
沙箱限制了代码节点能用的资源:内存上限、可用模块、网络访问等。 这保证了恶意或错误的代码不会影响主进程稳定性,也不会无限制消耗资源。 如需在代码节点访问外部网络或特定库,确认沙箱配置允许。
安全提示:如果平台开放给不可信用户使用(如公网 SaaS), 务必用 SANDBOX_CODE_AND_PROCESS,并配合网络隔离策略, 防止恶意代码探测内网或发起 SSRF 攻击。