Cloudflare Functions:wrangler.toml嵌套配置值无法加载的问题
为什么Cloudflare Functions的嵌套配置无法从wrangler.toml加载?
Cloudflare Workers/Functions 的 [vars] 配置节仅支持扁平的键值对结构,不支持嵌套的对象或TOML子表(比如你用的[one.two])。Wrangler在处理[vars]时只会解析顶级的键值对,嵌套的TOML表结构会被忽略,所以只有zero被成功加载。
解决方案
1. 扁平化配置键名
将嵌套结构的路径用下划线或点分隔,作为单个环境变量键:
[vars] zero = "etc" one_two_three = "four" # 或者用点分隔 one.two.three = "four"
在Express代码中通过环境变量直接获取:
// 下划线分隔 const threeVal = process.env.one_two_three; // 点分隔 const threeVal2 = process.env["one.two.three"];
2. 序列化整个配置为字符串
把完整的JSON配置序列化为字符串,作为单个Var注入:
[vars] APP_CONFIG = '''{ "zero": "etc", "one": { "two": { "three": "four" } } }'''
在代码中解析成对象:
const appConfig = JSON.parse(process.env.APP_CONFIG); console.log(appConfig.one.two.three); // 输出 "four"
3. 使用Cloudflare Secrets(敏感配置)
如果嵌套配置包含敏感信息,建议用Cloudflare Secrets存储:
# 用Wrangler命令添加 wrangler secret put APP_CONFIG # 然后输入序列化后的JSON字符串
代码中同样通过JSON.parse(process.env.APP_CONFIG)解析使用。
内容的提问来源于stack exchange,提问作者Mitya
相关产品推荐
相关产品推荐

