You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure API Management为Azure Function Apps槽配置自定义域名

Azure Functions自定义域名+APIM配置方案

核心结论

  • 不用给每个部署槽单独开APIM实例,一个APIM就能搞定生产、预发布等多环境的API管理
  • 每个子域名(比如api.mydomain.com、staging-api.mydomain.com)都得在APIM里单独配置自定义域名
  • CNAME记录值可以共用,但TXT验证记录必须每个子域名单独配(因为Azure给每个子域名生成的验证值是唯一的,用来确认域名归属)

方案一:直接给Function App/部署槽配自定义域名(无APIM)

如果不需要APIM的流量管控、策略等功能,直接给服务绑域名就行:

  • 打开目标Function App(或部署槽)的「自定义域名」页面
  • 点「添加自定义域名」,输入你要的子域名(比如api.mydomain.com)
  • 按照Azure的提示,去你的域名服务商后台添加两条DNS记录:
    • CNAME记录:把子域名指向Function App的默认域名(格式类似xxx.azurewebsites.net)
    • TXT记录:填Azure生成的唯一验证值
  • 等DNS生效(一般10-30分钟),回到Azure完成验证,再绑定SSL证书(可以用Azure免费的,也可以传自己的)
  • 给staging-api.mydomain.com重复上面的步骤,对应到部署槽的默认域名就行

方案二:结合APIM配置(推荐,适合API统一管理)

既然你用APIM,推荐用这个方案,方便后续做限流、日志、版本控制:

  1. 把生产/预发布Function App导入APIM
    • 打开APIM实例的「API」页面,选「添加API」→「Azure Functions」
    • 分别导入生产环境的Function App和staging部署槽的Function App,给它们起不同的名字(比如生产API、预发布API),方便区分
  2. 给APIM绑定多个自定义域名
    • 进入APIM的「自定义域名」页面,点「添加」
    • 第一条域名:输入api.mydomain.com,类型选「网关」,按提示在域名服务商后台加CNAME(指向APIM的默认网关域名,格式类似xxx.azure-api.net)和TXT验证记录
    • 第二条域名:输入staging-api.mydomain.com,同样选「网关」类型,CNAME值和生产的一样,但TXT验证值是新的,必须单独配置
  3. 给不同API绑定对应子域名
    • 打开APIM里的「生产API」→「设置」,在「自定义域名」下拉框选api.mydomain.com
    • 打开「预发布API」→「设置」,选staging-api.mydomain.com
  4. 配置策略(可选)
    • 可以给生产和预发布API加不同的策略,比如生产环境限流更严格,预发布开详细日志,这些都在同一个APIM里配置就行

常见疑问解答

  • TXT记录为什么不能共用?:Azure的TXT验证是针对单个域名的,每个子域名的验证值都是唯一的,用来证明你确实拥有这个域名,所以必须每个子域名单独配
  • CNAME值相同没问题吗?:完全没问题,两个子域名都指向同一个APIM网关,流量到APIM后,会根据你绑定的域名路由到对应的Function App
  • 需要开多个APIM实例吗?:不需要,单个APIM支持绑定多个自定义域名,还能管理多个后端服务,既省钱又方便统一维护

内容的提问来源于stack exchange,提问作者EnenDaveyBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:10:16