如何修改Azure Functions(v2)的默认/api基础路径?
嘿,这个问题我之前刚折腾过,Azure Functions v2里修改默认的/api前缀其实很容易,分本地开发和部署到Azure两种场景来操作就行,给你详细说说:
本地开发环境修改
在本地开发时,我们只需要修改local.settings.json文件的配置:
- 打开项目根目录下的
local.settings.json - 在
Values节点中添加或修改FUNCTIONS_ROUTE_PREFIX配置项,值设为你想要的前缀(比如myapi),如果想完全去掉前缀就设为空字符串"" - 举个配置示例:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "FUNCTIONS_ROUTE_PREFIX": "myapi" // 自定义前缀,或设为""去掉前缀 } }
- 修改完成后重启本地的函数宿主服务,新的路由就会生效:比如原来的
/api/hello会变成/myapi/hello,如果设为空前缀就直接是/hello
部署到Azure后的修改
部署到云端后,有两种常用的修改方式:
方式一:Azure门户操作
- 登录Azure门户,打开你的Function App
- 左侧导航栏找到设置下的配置选项
- 切换到应用程序设置标签页
- 点击新建应用程序设置,添加键为
FUNCTIONS_ROUTE_PREFIX,值设为你的目标前缀(或空字符串) - 点击保存,等待函数应用自动重启后,新的前缀就会生效
方式二:Azure CLI命令行操作
如果你习惯用命令行,可以运行以下命令(记得替换占位符为你的实际资源信息):
# 设置自定义前缀,比如myapi az functionapp config appsettings set --name <你的函数应用名称> --resource-group <你的资源组名称> --settings FUNCTIONS_ROUTE_PREFIX=myapi # 完全去掉前缀 az functionapp config appsettings set --name <你的函数应用名称> --resource-group <你的资源组名称> --settings FUNCTIONS_ROUTE_PREFIX=""
另外补充一下:如果是用ARM模板或者Bicep进行自动化部署,也可以在模板的siteConfig.appSettings节点中添加这个配置项,这样部署时就能自动完成前缀设置啦。
需要注意的是,这个配置是全局生效的,所有函数的路由都会套用这个前缀,完全不需要在单个函数的路由模板里修改,和官方文档说的全局统一处理逻辑一致。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

