Azure Synapse无法解析VNet集成Function App URL的问题求助
解决托管VNet的Azure Synapse与VNet集成Function App的专用连接问题
解决方案步骤
1. 关联Function App专用DNS区域与Synapse托管VNet
- 定位Function App对应的专用DNS区域:如果是ASE环境,对应区域通常为
privatelink.appserviceenvironment.net;如果是Premium Plan的VNet集成,对应区域为privatelink.azurewebsites.net。 - 进入该专用DNS区域的Azure门户页面,添加虚拟网络链接,选择Synapse工作区所在资源组,关联Synapse的托管VNet(名称格式一般为
synapseworkspace-managed-vnet)。 - 确认链接状态为
Completed,确保Synapse托管环境能解析该区域内的DNS记录。
2. 验证托管专用端点配置
- 进入Synapse工作区的托管专用端点页面,找到为Function App创建的端点,确认状态为
Approved。 - 检查对应专用DNS区域中,是否已自动生成该托管端点的A记录(记录值应为Function App的专用IP)。
3. 配置Azure Function链接服务的私有端点绑定
由于Synapse门户暂不支持可视化配置Function链接服务的私有端点选项,需通过ARM模板或PowerShell修改链接服务:
- ARM模板方式:导出现有Azure Function链接服务的ARM模板,添加
privateEndpointConnections属性并指定已创建的托管专用端点ID,示例片段如下:
将修改后的模板重新部署到Synapse工作区。{ "properties": { "type": "AzureFunction", "typeProperties": { "functionAppUrl": "https://func-xxxx.appserviceenvironment.net", "functionKey": { "type": "AzureKeyVaultSecret", "store": { "referenceName": "YourKeyVaultLinkedService", "type": "LinkedServiceReference" }, "secretName": "function-access-key" } }, "connectVia": { "referenceName": "AutoResolveIntegrationRuntime", "type": "IntegrationRuntimeReference" }, "privateEndpointConnections": [ { "privateEndpoint": { "id": "/subscriptions/[你的订阅ID]/resourceGroups/[资源组名]/providers/Microsoft.Synapse/workspaces/[Synapse工作区名]/managedPrivateEndpoints/[托管专用端点名称]" }, "connectionState": { "status": "Approved" } } ] } } - PowerShell方式:将上述修改后的JSON保存为文件,执行以下命令更新链接服务:
Update-AzSynapseLinkedService -WorkspaceName "你的Synapse工作区名" -Name "你的Function链接服务名" -DefinitionFile "updated-linked-service.json"
4. 验证集成运行时网络
- 若使用自托管集成运行时,确保其部署在能访问Function App专用端点的VNet中;若使用托管集成运行时,因Synapse已启用托管VNet,只要上述配置正确,即可自动通过托管专用端点访问。
问题原因分析
- DNS解析失败:Synapse托管VNet的DNS环境独立于公共DNS,若未将Function App的专用DNS区域与Synapse托管VNet关联,Synapse内部无法解析Function App的FQDN。
- 链接服务未绑定专用端点:当前Azure门户对Function链接服务未提供可视化的私有端点配置选项,必须手动通过ARM/PowerShell配置
privateEndpointConnections属性,强制流量通过托管专用端点传输。
错误对应说明
你遇到的2108(Web请求)和3610(Function活动)错误,核心都是DNS解析失败,即Synapse托管环境无法将Function App的FQDN解析为专用IP,完全符合上述配置缺失的场景。
内容的提问来源于stack exchange,提问作者Mathias Wrobel
相关产品推荐
相关产品推荐

