如何通过ARM模板为已创建的Azure Function应用添加混合连接
在现有Azure Function应用中添加混合连接的具体方法
嘿,我来帮你搞定在已创建的Azure Function应用里配置混合连接的事儿~下面给你三种常用的实现方式,你可以根据自己的场景选:
1. 通过ARM模板更新(适合自动化/基础设施即代码场景)
既然你已经用ARM模板创建了Function应用,那直接扩展模板来添加混合连接是最契合的方式。你需要在ARM模板的resources节点下添加混合连接的资源定义,示例片段如下:
{ "type": "Microsoft.Web/sites/hybridConnectionNamespaces/relays", "apiVersion": "2023-01-01", "name": "[concat(parameters('functionAppName'), '/', parameters('hybridConnectionNamespace'), '/', parameters('hybridConnectionName'))]", "dependsOn": [ "[resourceId('Microsoft.Web/sites', parameters('functionAppName'))]" ], "properties": { "host": "[parameters('onPremiseHost')]", "port": "[parameters('onPremisePort')]", "relayArmUri": "[resourceId('Microsoft.Relay/namespaces/hybridConnections', parameters('hybridConnectionNamespace'), parameters('hybridConnectionName'))]" } }
关键参数说明:
functionAppName: 你的现有Function应用名称hybridConnectionNamespace: 混合连接命名空间的名称(如果没有需要先创建)hybridConnectionName: 中继(Relay)的名称onPremiseHost: 本地网络中要连接的目标主机名/IPonPremisePort: 目标服务的端口号
部署前记得确认:
- 混合连接命名空间和中继已经存在(可以在同一个ARM模板里一并创建,添加对应的
Microsoft.Relay/namespaces和Microsoft.Relay/namespaces/hybridConnections资源) - 你的Function应用运行在Premium计划(EP1/EP2/EP3)或App Service计划(B1及以上),消费计划不支持混合连接
2. Azure Portal手动配置(适合快速验证)
如果只是临时配置或者可视化操作更顺手,直接在Portal里操作就行:
- 登录Azure Portal,找到你的Function应用
- 左侧导航栏选择网络 -> 混合连接
- 点击页面上方的添加混合连接
- 在弹出的窗口中:
- 选择已有的混合连接命名空间,或者点击创建新的来生成新的命名空间和中继
- 填写本地目标的
主机和端口 - 点击创建完成添加
- 最后记得在本地网络的机器上安装混合连接管理器(Hybrid Connection Manager),并关联到你的混合连接命名空间,这样Function应用才能打通到本地服务
3. Azure CLI命令(适合脚本自动化)
用CLI命令可以快速批量添加混合连接,步骤如下:
- 先创建混合连接命名空间(如果没有的话):
az relay namespace create --name <你的命名空间名称> --resource-group <资源组名称> --location <区域>
- 创建中继(Hybrid Connection):
az relay hybrid-connection create --name <中继名称> --namespace-name <命名空间名称> --resource-group <资源组名称>
- 给Function应用添加混合连接:
az functionapp hybrid-connection add --name <Function应用名称> --resource-group <资源组名称> --namespace <命名空间名称> --hybrid-connection <中继名称> --host <本地主机> --port <本地端口>
重要注意事项
- 混合连接依赖混合连接管理器(HCM),必须在本地网络中至少部署一台运行HCM的机器,否则连接无法生效
- 确保你的Function应用所在的计划支持混合连接(消费计划不支持,一定要用Premium或App Service计划)
- 操作账号需要拥有Function应用的
Contributor权限,以及混合连接命名空间的Contributor权限
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

