使用 Azure 事件中心模拟器在本地进行测试

Azure 事件中心 模拟器允许你在本地测试和验证应用,而无需连接云端。 本文将向您展示如何使用Docker或自动化脚本来设置、运行和与模拟器交互。

先决条件

注意

在继续本文步骤之前,请确保Docker Desktop正在运行。

运行 Azure 事件中心模拟器

通过自动脚本或Linux容器运行Azure 事件中心模拟器。 选择最适合开发环境的方法。

在运行自动化脚本之前,请在本地克隆模拟器的 GitHub 安装程序存储库

Windows

使用以下步骤在本地 Windows 上运行事件中心模拟器。

  1. 打开 PowerShell,然后使用 cd 转到你克隆的 common scripts 文件夹 所在的目录。

    cd <path to your common scripts folder> # Update this path
    
  2. 在这个目录中输入 wsl 命令打开WSL。

    wsl
    
  3. 运行设置脚本 LaunchEmulator.sh。 脚本会调用两个容器:Event Hubs 模拟器和 Azurite,后者是模拟器的依赖。

    ./LaunchEmulator.sh
    

Linux 和 macOS

若要在 Linux 或 macOS 上本地运行事件中心模拟器,请执行以下操作:

  • 运行安装脚本 LaunchEmulator.sh。运行该脚本会启动两个容器:事件中心模拟器和 Azurite(模拟器的依赖项)。

步骤成功后,可以找到在 Docker 中运行的容器。

在容器中运行的 Azure 事件中心模拟器的屏幕截图。

与模拟器交互

默认情况下,模拟器使用 config.json 配置文件。 您可以通过编辑此文件配置实体,如事件中心和Kafka主题。 更多信息请参见 配额配置变更

你用来连接Event Hubs模拟器的连接字符串取决于你的应用运行在哪里:

  • 当模拟器容器和你的应用程序在本地计算机上原生运行时,请使用以下连接字符串:

    "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
    
  • 当你的应用程序运行在同一局域网中的另一台计算机上(无论是否容器化)时,请使用主机的 IPv4 地址连接到模拟器:

    "Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
    
  • 当你的应用容器运行在同一个桥接网络上时,利用它的别名或IP地址连接到模拟器。 这个连接字符串假设模拟器使用默认名称: eventhubs-emulator

    "Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
    
  • 当你的应用容器在不同的桥接网络上运行时,请将 host.docker.internal 用作主机以连接到模拟器:

    "Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
    

要与 Kafka 交互,请将生产者和消费者配置设置如下:

{
    BootstrapServers =  // The value depends on the connection string that you use.
    SecurityProtocol = SecurityProtocol.SaslPlaintext,
    SaslMechanism = SaslMechanism.Plain,
    SaslUsername = "$ConnectionString",
    SaslPassword =  // The value depends on your topology.
};

SaslPasswordBootstrapServers 的值取决于你的设置拓扑。 详情请参见 “与模拟器交互 ”部分。

重要

使用 Kafka 时,只有生产者和消费者 API 与 Event Hubs 模拟器兼容。

要开始,可以查看 GitHub 上的 Event Hubs 模拟器示例