使用 Azure 事件中心模拟器在本地进行测试
本文内容
本文总结了使用 Azure 事件中心模拟器进行本地开发和测试的步骤。
先决条件
Docker 桌面
最低硬件要求:
适用于 Linux 的 Windows 子系统 (WSL) 配置(仅限 Windows):
注意
在继续执行本文中的步骤之前,请确保 Docker Desktop 在后台正常运行。
运行仿真器
若要运行事件中心模拟器,可以使用自动化脚本或 Linux 容器:
在运行自动化脚本之前,请在本地克隆模拟器的 GitHub 安装程序存储库 。
Windows
使用以下步骤在 Windows 上本地运行事件中心模拟器:
通过在 PowerShell 窗口中运行以下命令,允许执行未签名的脚本:
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass -Scope CurrentUser'
运行安装脚本 LaunchEmulator.ps1 。 运行该脚本会启动两个容器:事件中心模拟器和 Azurite(模拟器的依赖项)。
Linux 和 macOS
若要在 Linux 或 macOS 上本地运行事件中心模拟器,请执行以下操作:
运行安装脚本 LaunchEmulator.sh 。运行该脚本会启动两个容器:事件中心模拟器和 Azurite(模拟器的依赖项)。
若要启动模拟器,请为要使用的实体提供配置。 在本地将以下 JSON 文件保存为 config.json :
{
"UserConfig": {
"NamespaceConfig": [
{
"Type": "EventHub",
"Name": "emulatorNs1",
"Entities": [
{
"Name": "eh1",
"PartitionCount": "2",
"ConsumerGroups": [
{
"Name": "cg1"
}
]
}
]
}
],
"LoggingConfig": {
"Type": "File"
}
}
}
将以下 yaml 文件保存为 docker-compose.yaml 以启动事件中心模拟器的容器 :
name: microsoft-azure-eventhubs
services:
emulator:
container_name: "eventhubs-emulator"
image: "mcr.microsoft.com/azure-messaging/eventhubs-emulator:latest"
volumes:
- "${CONFIG_PATH}:/Eventhubs_Emulator/ConfigFiles/Config.json"
ports:
- "5672:5672"
environment:
BLOB_SERVER: azurite
METADATA_SERVER: azurite
ACCEPT_EULA: ${ACCEPT_EULA}
depends_on:
- azurite
networks:
eh-emulator:
aliases:
- "eventhubs-emulator"
azurite:
container_name: "azurite"
image: "mcr.microsoft.com/azure-storage/azurite:latest"
ports:
- "10000:10000"
- "10001:10001"
- "10002:10002"
networks:
eh-emulator:
aliases:
- "azurite"
networks:
eh-emulator:
创建 .env 文件以声明事件中心模拟器的环境变量:
# Centralized environment variables store for docker-compose
# 1. CONFIG_PATH: Path to config.json file
CONFIG_PATH="<Replace with path to config.json file>"
# 2. ACCEPT_EULA: Pass 'Y' to accept license terms.
ACCEPT_EULA="N"
参数 ACCEPT_EULA
确认 Microsoft 软件许可条款 。 请务必将 .env 文件放置在与 docker-compose.yaml 文件相同的目录中 。
重要
在 Windows 中指定文件路径时,请使用双反斜杠 (\\
) 而不是单反斜杠 (\
),以免与转义字符混淆。
通过运行以下命令来运行模拟器:
docker compose -f <PathToDockerComposeFile> up -d
步骤成功后,可以找到在 Docker 中运行的容器。
与模拟器交互
可使用以下连接字符串连接到事件中心模拟器:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
通过最新的客户端 SDK 版本,可使用各种编程语言与仿真器进行交互。 有关详细信息,请参阅客户端 SDK 。
若要开始,请参阅 GitHub 上的事件中心模拟器示例 。
相关内容
Azure 事件中心模拟器概述