Тестирование локально с помощью эмулятора Центры событий Azure

Эмулятор Центров событий Azure позволяет разработчикам тестировать и проверять приложения локально, не подключаясь к облаку. В этом руководстве приведены пошаговые инструкции по настройке, запуску и взаимодействию с эмулятором с помощью Docker или автоматизированных сценариев.

Prerequisites

Note

Прежде чем продолжить действия, описанные в этой статье, убедитесь, что Docker Desktop работает в фоновом режиме.

Запуск эмулятора Центров событий Azure

Запустите эмулятор Центров событий Azure с помощью автоматизированного скрипта или контейнера Linux. Выберите метод, который лучше всего подходит вашей среде разработки.

Перед запуском автоматизированного скрипта клонируйте репозиторий установщика установщика GitHub эмулятора локально.

Windows

Выполните следующие действия для локального запуска эмулятора Центров событий в Windows.

  1. Откройте PowerShell и перейдите в каталог, в котором клонирована общая папка скриптов с помощью cd:
    cd <path to your common scripts folder> # Update this path
    
    
  2. Выполните команду wsl, чтобы открыть WSL в этом каталоге.
    wsl
    
    
  3. Запустите скрипт установки./LaunchEmulator.sh Выполнение скрипта выводит два контейнера: эмулятор Центров событий и Azurite (зависимость для эмулятора).
    ./Launchemulator.sh
    
    
    

Linux и macOS

Для локального запуска эмулятора Центров событий в Linux или macOS:

  • Запустите скрипт установки LaunchEmulator.sh. При выполнении скрипта выводится два контейнера: эмулятор Центров событий и Azurite (зависимость для эмулятора).

После успешного выполнения действий можно найти контейнеры, работающие в Docker.

Снимок экрана: эмулятор Центров событий Azure, работающий в контейнере.

Взаимодействие с эмулятором

По умолчанию эмулятор использует файл конфигурации 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 зависит от топологии установки. Дополнительные сведения см. в разделе "Взаимодействие с эмулятором ".

Important

При использовании Kafka совместимы только API-интерфейсы производителя и потребителя с эмулятором Центров событий.

Чтобы приступить к работе, ознакомьтесь с примерами эмулятора Центров событий на GitHub.

Обзор эмулятора Центры событий Azure
Примеры эмулятора Центров событий на GitHub