다음을 통해 공유


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

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

필수 조건

참고 항목

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

에뮬레이터 실행

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

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

윈도우즈

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

  1. PowerShell을 열고를 사용하여 cd 스크립트 폴더가 복제된 디렉터리로 이동합니다.
    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에서 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의 값은 설정 토폴로지에 따라 달라집니다. 자세한 내용은 에뮬레이터와 상호 작용 섹션을 참조하세요.

중요합니다

Kafka를 사용하는 경우 생산자 및 소비자 API만 Event Hubs 에뮬레이터와 호환됩니다.

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

Azure Event Hubs 에뮬레이터 개요