迁移Azure Function API至新实例后如何保持原有URL不变?
实现新Azure Function复用原有URL的方案
一、复用原有自定义域名(若已使用)
如果原func-dev-01绑定了自定义域名,直接迁移绑定关系即可:
- 进入Azure门户,找到
func-dev-01的自定义域名设置,删除已绑定的原有域名。 - 进入新
fun-prod-01的自定义域名设置,添加该原有域名,按照提示完成DNS解析验证(需在域名服务商处更新解析记录)。
二、复用原有默认域名({function_name_dev}.azurewebsites.net)
Azure自动分配的默认域名无法直接转移,可通过两种方式实现等价访问:
配置反向代理
- 在
fun-prod-01的配置 > 应用程序设置中,添加设置:WEBSITE_USE_REVERSE_PROXY = true。 - 在新Function App的
site/wwwroot目录上传routes.json文件,内容如下:{ "routes": [ { "route": "api/{*path}", "methods": ["GET", "POST", "PUT", "DELETE"], "backendUri": "https://{function_name_prod}.azurewebsites.net/api/{path}" } ] } - 将原
func-dev-01的默认域名绑定到新App(需先释放原App的域名,Azure回收后即可完成绑定)。
- 在
使用Azure流量管理器中转
- 创建流量管理器配置文件,添加原
func-dev-01和新fun-prod-01作为终结点。 - 设置路由规则为优先级模式,将新App设为最高优先级,原App设为低优先级,逐步切换流量。
- 待流量完全迁移后,删除原App终结点,此时访问原域名会自动指向新Function App。
- 创建流量管理器配置文件,添加原
三、复用原有访问密钥(code参数)
要让新App支持原code=12345678910访问:
- 进入
fun-prod-01的目标HTTP触发函数,打开密钥设置。 - 点击添加,输入自定义名称和原密钥值
12345678910,保存后即可使用原code参数访问新函数。
内容的提问来源于stack exchange,提问作者r_s
相关产品推荐
相关产品推荐

