Тестирование локально с помощью эмулятора Центры событий Azure
В этой статье приведены инструкции по разработке и тестированию локально с помощью эмулятора Центры событий Azure.
Необходимые компоненты
- Рабочий стол Docker
- Минимальные требования к оборудованию:
- 2 ГБ ОЗУ
- 5 ГБ дискового пространства
- конфигурация подсистема Windows для Linux (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 (зависимость для эмулятора).
После успешного выполнения действий можно найти контейнеры, работающие в Docker.
Взаимодействие с эмулятором
По умолчанию эмулятор использует файл конфигурации config.json . Сущности (центры событий или разделы Kafka) можно настроить, внося изменения в файл конфигурации. Дополнительные сведения см. в разделе "Изменение конфигурации"
Для подключения к эмулятору Центров событий можно использовать следующие строка подключения:
- Когда контейнер эмулятора и взаимодействующее приложение выполняются на локальном компьютере, используйте следующие строка подключения:
"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 = //Value of bootstrap servers would depend on kind of connection string being used
SecurityProtocol = SecurityProtocol.SaslPlaintext,
SaslMechanism = SaslMechanism.Plain,
SaslUsername = "$ConnectionString",
SaslPassword = //Value of connection string would depend on topology
};
Значение bootstrapServers и SaslPassword зависит от топологии установки. Дополнительные сведения см. в разделе "Взаимодействие с эмулятором ".
Внимание
При использовании Kafka совместимы только API-интерфейсы производителя и потребителя с эмулятором Центров событий.
Чтобы приступить к работе, ознакомьтесь с примерами эмулятора Центров событий на GitHub.