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

Blob触发Azure Function托管身份配置报错:No such host is known

Azure Function Blob触发器托管身份切换后域名解析错误解决方案

问题描述

出现的错误信息

Azure.Core: No such host is known. (examplestorage.blob.core.windows.net:443). System.Net.Http: No such host is known. (examplestorage.blob.core.windows.net:443). System.Net.Sockets: No such host is known.

We were not able to load some functions in the list due to errors. Refresh the page to try again.

环境与配置情况

  • Blob触发的Azure Function App,核心代码片段:
    [Function("ExampleFunction")]
    public async Task Run([BlobTrigger("%BlobPath%", Connection = "AzureWebJobsStorage")] Stream myBlob, string name)
    
  • 原使用存储连接字符串,现切换为托管身份(Managed Identity)方式连接
  • 运行环境为专用App Service Plan:Premium v3 P2V3,已引用指定版本的存储扩展包
  • 已为Function App在目标存储账户分配以下角色:
    • Storage Account Contributor
    • Storage Blob Data Owner
    • Storage Queue Data Contributor
  • 已确认不存在WEBSITE_CONTENTAZUREFILECONNECTIONSTRING、WEBSITE_CONTENTSHARE环境变量,重新部署后问题未解决

排查与解决方案

1. 验证存储账户域名有效性

  • 核对存储账户名称:确认examplestorage是实际存在的存储账户名称,无拼写错误
  • 测试域名解析:执行命令 nslookup examplestorage.blob.core.windows.net,检查是否能返回正确的IP地址,若无法解析需确认存储账户是否正常创建、处于可用状态

2. 正确配置托管身份环境变量

针对Blob触发器使用托管身份,需按以下格式设置环境变量:

  • 设置 AzureWebJobsStorage__accountName = <你的存储账户名称>
  • 设置 AzureWebJobsStorage__credential = managedidentity

注意:变量名使用双下划线分隔前缀与后缀,需确保AzureWebJobsStorage本身不设置为传统连接字符串

3. 确认存储扩展包版本兼容性

  • .NET Isolated模式:需引用Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs版本5.0及以上
  • In-Process模式:需引用Microsoft.Azure.WebJobs.Extensions.Storage版本5.0及以上
    检查项目的包引用,避免因版本过低导致身份验证逻辑不支持托管身份

4. 验证托管身份权限与生效状态

  • 确认角色分配范围为目标存储账户,而非更上层的资源组或订阅(虽然后者也生效,但直接分配到存储账户更清晰)
  • 角色分配可能存在最长15分钟的延迟,若刚完成分配,等待一段时间后再测试
  • 使用Azure CLI验证权限(可在Function App的Kudu控制台执行):
    az login --identity
    az storage blob list --account-name examplestorage --container-name <你的容器名> --auth-mode login
    

替换<你的容器名>为实际容器名称,若能返回Blob列表则说明权限正常

5. 排查网络限制

  • 若存储账户配置了防火墙/虚拟网络限制:
    • 将Function App所在虚拟网络添加到存储账户的允许列表
    • 或开启存储账户的「允许受信任的Microsoft服务访问此存储账户」选项
  • 若Function App使用VNet集成或私有端点,确认网络路由可正常访问存储账户端点,或已正确配置存储账户私有端点

6. 刷新应用配置

  • 在Azure门户进入Function App的「配置」页面,确认所有环境变量无拼写错误、多余空格
  • 重启Function App,确保配置变更完全生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:55:20