同一Vercel项目中能否为staging与production环境设置不同Function Region?
可以为不同环境设置不同的Function Region
完全可以为同一Vercel项目下基于不同分支的staging和production环境配置不同的Function Region,以下是两种可靠的实现方式:
方式一:通过项目分支的独立配置
- 进入Vercel项目的「Settings」→「Git」页面
- 在「Production Branch」和「Preview Branches」板块,分别定位到你的production分支(比如
main)和staging分支(比如develop) - 找到「Function Region」选项,为每个分支单独选择匹配对应数据库的区域(例如production选
us-east-1,staging选ap-southeast-1) - 保存配置后,后续该分支的所有部署都会自动使用指定的区域
方式二:用vercel.json结合环境变量动态指定
- 在项目根目录创建或修改
vercel.json文件,通过环境变量来动态绑定区域:{ "functions": { "api/**/*.{js,ts}": { "region": "${FUNCTION_REGION}" } } } - 若使用Edge Functions,配置类似:
{ "edgeFunctions": [ { "source": "/api/edge", "region": "${FUNCTION_REGION}" } ] } - 进入Vercel项目的「Settings」→「Environment Variables」页面,分别为Production环境和指定的staging分支添加
FUNCTION_REGION变量,设置对应的值- 添加变量时选择「Specific Branch」并指定staging分支名称,确保变量只作用于该环境
- 重新部署对应分支,配置即可生效
注意事项
- 优先选择与数据库区域一致的Function Region,最大程度降低网络延迟
- 区域变更后必须重新部署分支才能生效
- 若使用Vercel的Serverless Functions和Edge Functions混合部署,需分别在对应配置块中指定区域
内容的提问来源于stack exchange,提问作者TungTung
相关产品推荐
相关产品推荐

