Azure Event Hubs 에뮬레이터를 사용하여 로컬로 테스트
이 문서에서는 Azure Event Hubs 에뮬레이터를 사용하여 로컬로 개발하고 테스트하는 단계를 요약합니다.
필수 조건
- Docker desktop
- 최소 하드웨어 요구 사항:
- 2GB RAM
- 5GB의 디스크 공간
- WSL(Linux용 Windows 하위 시스템) 구성(Windows에만 해당):
참고 항목
이 문서의 단계를 계속하기 전에 Docker Desktop이 백그라운드에서 작동하는지 확인합니다.
에뮬레이터 실행
Event Hubs 에뮬레이터를 실행하려면 자동화된 스크립트 또는 Linux 컨테이너를 사용할 수 있습니다.
자동화된 스크립트를 실행하기 전에 에뮬레이터의 GitHub 설치 관리자 리포지 토리를 로컬로 복제합니다.
Windows
다음 단계를 사용하여 Windows에서 Event Hubs 에뮬레이터를 로컬로 실행합니다.
PowerShell 창에서 이 명령을 실행하여 서명되지 않은 스크립트의 실행을 허용합니다.
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'
설치 스크립트 LaunchEmulator.ps1을 실행합니다. 스크립트를 실행하면 Event Hubs 에뮬레이터와 Azurite(에뮬레이터에 대한 종속성)라는 두 개의 컨테이너가 표시됩니다.
Linux 및 macOS
Linux 또는 macOS에서 Event Hubs 에뮬레이터를 로컬로 실행하려면 다음을 수행합니다.
- 설치 스크립트 LaunchEmulator.sh 실행합니다. 스크립트를 실행하면 Event Hubs 에뮬레이터와 Azurite(에뮬레이터에 대한 종속성)라는 두 개의 컨테이너가 표시됩니다.
단계가 성공하면 Docker에서 실행되는 컨테이너를 찾을 수 있습니다.
에뮬레이터와 상호 작용
기본적으로 에뮬레이터는 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 에뮬레이터와 호환됩니다.
시작하려면 GitHub의 Event Hubs 에뮬레이터 샘플을 참조하세요.