다음을 통해 공유


Azure Event Hubs 에뮬레이터를 사용하여 로컬로 테스트

이 문서에서는 Azure Event Hubs 에뮬레이터를 사용하여 로컬로 개발하고 테스트하는 단계를 요약합니다.

필수 조건

참고 항목

이 문서의 단계를 계속하기 전에 Docker Desktop이 백그라운드에서 작동하는지 확인합니다.

에뮬레이터 실행

Event Hubs 에뮬레이터를 실행하려면 자동화된 스크립트 또는 Linux 컨테이너를 사용할 수 있습니다.

자동화된 스크립트를 실행하기 전에 에뮬레이터의 GitHub 설치 관리자 리포지 토리를 로컬로 복제합니다.

Windows

다음 단계를 사용하여 Windows에서 Event Hubs 에뮬레이터를 로컬로 실행합니다.

  1. PowerShell 창에서 이 명령을 실행하여 서명되지 않은 스크립트의 실행을 허용합니다.

    $>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'

  2. 설치 스크립트 LaunchEmulator.ps1을 실행합니다. 스크립트를 실행하면 Event Hubs 에뮬레이터와 Azurite(에뮬레이터에 대한 종속성)라는 두 개의 컨테이너가 표시됩니다.

Linux 및 macOS

Linux 또는 macOS에서 Event Hubs 에뮬레이터를 로컬로 실행하려면 다음을 수행합니다.

  • 설치 스크립트 LaunchEmulator.sh 실행합니다. 스크립트를 실행하면 Event Hubs 에뮬레이터와 Azurite(에뮬레이터에 대한 종속성)라는 두 개의 컨테이너가 표시됩니다.

단계가 성공하면 Docker에서 실행되는 컨테이너를 찾을 수 있습니다.

컨테이너에서 실행되는 Event Hubs 에뮬레이터를 보여 주는 스크린샷

에뮬레이터와 상호 작용

기본적으로 에뮬레이터는 config.json 구성 파일을 사용합니다. 구성 파일을 변경하여 엔터티(Event Hubs/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 =  //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만 Event Hubs 에뮬레이터와 호환됩니다.

시작하려면 GitHubEvent Hubs 에뮬레이터 샘플을 참조하세요.

Azure Event Hubs 에뮬레이터 개요