commonEnv 和 extraEnv。理解它们之间的区别有助于您正确配置部署并避免运行时错误。
commonEnv
commonEnv 是 values.yaml 中的一个顶级字段,它适用于 除了 playground 和 aceBackend 服务之外的所有部署和有状态集,这些服务是沙盒化的,不会接收 commonEnv 的值。
当一个变量需要同时供大多数服务使用时,应使用 commonEnv,例如自定义 CA 证书路径、代理设置或影响整个平台的功能标志。
接收 commonEnv 的服务
以下服务接收commonEnv:
backendplatformBackendqueueingestQueuefrontendhostBackend
不接收 commonEnv 的服务
以下服务是沙盒化的,不接收commonEnv:
playgroundaceBackend
extraEnv:
extraEnv
extraEnv 是一个按服务划分的字段,它仅向特定服务添加环境变量。每个支持 extraEnv 的服务都将其暴露在 <service>.deployment.extraEnv 路径下。
当一个变量仅适用于某个服务,或者当您需要为 playground 或 aceBackend 设置 commonEnv 无法到达的变量时,应使用 extraEnv。
不允许重复变量名
该图表使用一个detectDuplicates 辅助函数来验证每个服务的环境变量名。如果同一个变量名出现在某个服务的合并变量列表(包括从 commonEnv、extraEnv 添加的变量以及图表管理的变量)中超过一次,Helm 在模板渲染期间将失败,并显示类似以下的错误:
commonEnv 或服务的 extraEnv 中删除重复项,确保每个变量名在每个服务中只出现一次。
示例:为大多数服务设置变量,但为某个服务覆盖它
要为大多数服务使用一个通用值,同时为特定服务覆盖它,可以在commonEnv 中设置它,并将覆盖值添加到该服务的 extraEnv 中。因为 playground 和 aceBackend 不接收 commonEnv,您必须始终通过它们各自的 extraEnv 为这些服务设置变量。
常用功能标志
减少批量运行持久化日志
默认情况下,LangSmith 会为其通过基于 Go 的提取队列持久化的每批运行记录一条成功消息。在处理大量跟踪的部署上,这可能会产生过多的日志噪声。FF_PERSIST_BATCHED_RUNS_SUCCESS_LOGGING 默认为 true,并且当 ingestQueue.enabled 为 true(默认值)时,会通过 commonEnv 注入到所有服务中。要禁用这些成功日志消息,请在 commonEnv 中覆盖它:
将此标志设置为
false 仅会抑制每个批次的成功消息。错误仍然会被记录。相关页面
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

