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

容器中Durable Function无法连接本地ServiceBus模拟器求助

问题解决步骤

一、必须让Function容器与模拟器容器处于同一Docker网络

容器默认彼此隔离,只有在同一网络下才能通过容器名称互相访问,这是触发HostNotFound错误的核心原因。操作步骤如下:

  1. 查看模拟器的Docker网络名称
    打开模拟器的docker-compose-default.yml,找到networks节点:

    • 如果有自定义网络(比如servicebus-emulator-net),记下该名称;
    • 如果没有显式定义网络,docker-compose会自动生成一个以项目文件夹名为前缀的网络,可通过docker network ls命令查看,格式类似项目文件夹名_default。
  2. 将Function容器加入该网络

    • 若用docker run启动Function容器,添加--network参数:
      docker run --network <模拟器网络名称> -e AzureServiceBusConnection="..." <你的Function镜像>
      
    • 若用docker-compose管理Function,在Function的docker-compose.yml中添加对应网络配置:
      networks:
        default:
          external:
            name: <模拟器网络名称>
      
  3. 验证网络连通性
    进入Function容器,ping模拟器的容器名称(比如你连接字符串里的sb-emulator),确认能正常连通:

    docker exec -it <Function容器ID> ping sb-emulator
    

二、修正容器中Function的ServiceBus连接配置

你的环境变量存在冗余和配置错误,正确配置如下:

  1. 删除无效环境变量
    移除以下两个无效配置项:

    -e AzureServiceBusConnection__fullyQualifiedNamespace="sbemulatorns" 
    -e ServiceBus="Endpoint=sb://sb-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
    
  2. 设置正确的AzureServiceBusConnection环境变量
    直接将完整连接字符串赋值给AzureServiceBusConnection,注意使用模拟器容器名称(如sb-emulator)而非localhost,端口保持5672:

    -e AzureServiceBusConnection="Endpoint=sb://sb-emulator:5672;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
    

    该变量需与Trigger配置的Connection = "AzureServiceBusConnection"完全对应。

  3. 保留实体名称相关配置
    保留以下与队列、主题、订阅名称对应的环境变量:

    -e ServiceBusSubscription="subscription.1"
    -e ServiceBusTopic="sb-topic-dev"
    -e ServiceBusIncomingQueue="queue-local4-dev"
    

三、额外检查项

  • 确认模拟器容器已暴露5672端口:在模拟器的docker-compose-default.yml中,需包含类似ports: - "5672:5672"的端口映射配置。
  • 核对SAS密钥:确保连接字符串中的SAS_KEY_VALUE与模拟器Config.json里SharedAccessKeys下的密钥完全一致。
  • 确认实体名称匹配:检查Config.json中的队列、主题、订阅名称,与Function环境变量值完全一致(名称大小写不敏感,但建议保持统一)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:46:20