在 VS Code 中开发 Azure 函数时,本地环境变量通过项目根目录下的 local.settings.json 文件管理,部署到云端则需要将配置同步至应用设置。两者默认隔离,不会自动同步。
先说结论:本地调试依赖 local.settings.json,云端运行依赖应用设置,需手动触发同步。
- 适合:本地调试与云端部署混合开发场景
- 先准备:确认项目根目录存在 local.settings.json 且已忽略提交
- 验收:本地 func start 正常且云端应用设置已更新
本地配置文件结构
本地配置文件标准结构如下,直接放在项目根目录。注意 IsEncrypted 通常为 false,敏感信息建议加密或使用密钥 vault。
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MY_CUSTOM_KEY": "my_value"
}
}
安全警告:务必确保 .gitignore 中包含 local.settings.json,避免密钥泄露到代码仓库。
同步配置到云端
本地配置不会随代码自动发布,需通过以下任一方法手动同步到 Azure 门户的应用设置中。
方法一:VS Code 命令面板
- 按下
Ctrl+Shift+P打开命令面板。 - 输入并选择
Azure Functions: Upload Local Settings。 - 选择目标函数应用,确认上传。此操作会将 Values 中的键值对推送至云端应用设置。
方法二:CLI 命令行
若使用 Azure Functions Core Tools,可通过命令直接发布并同步配置:
func azure functionapp publish <FunctionAppName> `--publish-local-settings`
注意:生产环境建议审查后再上传,避免本地测试配置覆盖生产敏感配置。
验证配置生效
本地验证
运行 func start,观察终端日志。若配置读取成功,通常不会有报错,且函数触发正常。可在代码中打印环境变量确认:
console.log(process.env.MY_CUSTOM_KEY);
云端验证
- 登录 Azure 门户,进入函数应用。
- 左侧菜单选择“配置” (Configuration)。
- 在“应用设置” (Application settings) 列表中检查是否存在对应的键名。
- 查看函数日志 (Logs),确认无缺少环境变量的报错。
常见风险与排查
- 密钥泄露:local.settings.json 误提交至 Git。解决:立即轮换密钥,并在 .gitignore 中追加该文件。
- 配置未同步:部署代码后云端报错缺少变量。解决:检查是否执行了上传配置步骤,CLI 需加 `--publish-local-settings` 参数。
- 键名不一致:代码读取名称与配置名称大小写不一致。解决:环境变量在大多数运行时区分大小写,请严格匹配。
- 特殊字符问题:配置值包含特殊字符可能导致解析错误。解决:尝试使用引号包裹或进行 URL 编码。