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

如何让数百个Azure Functions通过通用域名自动路由访问?

解决方案:批量Azure Functions自定义子域名路由

针对你需要动态启停数百个Azure Functions并自动映射到对应子域名的场景,直接通过Azure Functions原生配置无法实现仅用根域记录完成自动路由,但可以通过以下几种可扩展的方案解决:

方案1:Azure Front Door(推荐,低成本高扩展性)

这是最适合大规模场景的方案,只需一次DNS配置即可支持所有子域名:

  • DNS配置:在你的域名服务商处添加两条记录:
    • 通配符A记录:*.my.domain 指向Azure Front Door的前端IP地址
    • 验证TXT记录:根据Front Door自定义域名验证要求添加(只需针对*.my.domain配置一次)
  • Front Door路由配置:
    1. 将所有Azure Functions的默认域名(如a.azurewebsites.net、b.azurewebsites.net)添加为Front Door的后端池成员
    2. 创建路由规则,设置主机名匹配条件为{functionName}.my.domain,将请求转发到对应名称的后端(即{functionName}.azurewebsites.net)
    3. 若需要动态新增/删除函数,可通过PowerShell、Azure CLI或ARM模板自动化完成后端池和路由规则的更新,配合函数的启停事件触发脚本即可实现全自动化

方案2:Azure API Management(APIM)

适合需要统一API管理、认证限流的场景:

  • DNS配置:同样添加通配符A/TXT记录指向APIM的网关IP,完成自定义域名*.my.domain的绑定
  • APIM路由配置:
    1. 将每个Azure Functions导入为APIM中的API,保持API名称与函数名一致(如a对应函数a)
    2. 配置APIM的路由策略,提取请求主机名的前缀(如从a.my.domain中提取a),将请求转发到对应名称的API(即对应Azure Function)
    3. 利用APIM的自动化工具(如Terraform、Azure CLI),在函数创建时自动导入API并完成路由映射,实现动态管理

方案3:Azure Functions 高级计划 + 应用服务环境(ASE)

适合需要完全私有环境、自定义网络的场景(成本较高):

  • 在ASE中配置通配符自定义域名*.my.domain,完成DNS绑定
  • 利用应用服务的URL重写模块,编写规则提取子域名前缀,将请求转发到对应名称的Azure Function
  • 此方案需要在ASE层面统一管理,函数启停时无需额外DNS操作,只需确保函数名与子域名前缀一致

关键说明

Azure Functions原生不支持仅通过根域的A/TXT记录实现自动子域名路由,必须借助前端网关(Front Door/APIM)或ASE来实现通配符域名的统一处理,避免为每个函数单独配置DNS记录和自定义域名绑定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:45:26