Azure Event Hubs 에뮬레이터 개요
Azure Event Hubs 에뮬레이터는 Event Hubs 서비스에 대한 로컬 개발 환경을 제공합니다. 에뮬레이터를 사용하여 클라우드 간섭으로부터 격리된 서비스에 대한 코드를 개발하고 테스트할 수 있습니다.
이점
에뮬레이터 사용의 주요 이점은 다음과 같습니다.
- 로컬 개발: 에뮬레이터는 로컬 개발 환경을 제공하므로 오프라인으로 작업하고 네트워크 대기 시간을 방지할 수 있습니다.
- 비용 효율성: 에뮬레이터를 사용하여 클라우드 사용 비용을 발생시키지 않고 애플리케이션을 테스트할 수 있습니다.
- 격리된 테스트 환경: 격리된 코드를 테스트하여 클라우드의 다른 활동이 테스트에 영향을 주지 않도록 할 수 있습니다.
- 최적화된 내부 개발 루프: 에뮬레이터를 사용하여 애플리케이션을 클라우드에 배포하기 전에 신속하게 프로토타입을 만들고 테스트할 수 있습니다.
참고 항목
Event Hubs 에뮬레이터는 Microsoft 소프트웨어 사용 조건에 따라 사용할 수 있습니다.
기능
에뮬레이터는 다음과 같은 기능을 제공합니다.
- 컨테이너화된 배포: Docker 컨테이너(Linux 기반)로 실행됩니다.
- 플랫폼 간 호환성: Windows, macOS 및 Linux를 비롯한 모든 플랫폼에서 사용할 수 있습니다.
- 구성 가능성: JSON 제공 구성을 사용하여 이벤트 허브, 파티션 및 기타 엔터티 수를 관리할 수 있습니다.
- 스트리밍 지원: Kafka 및 AMQP(Advanced Message Queuing Protocol)를 사용하여 스트리밍 이벤트를 지원합니다.
- 관찰성: 콘솔 및 파일 로깅을 비롯한 관찰 기능을 제공합니다.
알려진 제한 사항
에뮬레이터의 현재 버전에는 다음과 같은 제한 사항이 있습니다.
Kafka를 사용하는 경우 생산자 및 소비자 API만 Event Hubs 에뮬레이터와 호환됩니다.
Kafka 구성
securityProtocol
saslmechanism
에서 다음 값만 사용할 수 있습니다.SecurityProtocol = SecurityProtocol.SaslPlaintext, SaslMechanism = SaslMechanism.Plain
클라이언트 쪽 SDK를 통한 즉석 관리 작업은 지원하지 않습니다.
참고 항목
컨테이너를 다시 시작한 후에는 데이터 및 엔터티가 에뮬레이터에 유지되지 않습니다.
클라우드 서비스와의 차이점
Event Hubs 에뮬레이터는 개발 및 테스트 목적으로만 사용되므로 에뮬레이터와 클라우드 서비스 간에 기능적 차이가 있습니다.
에뮬레이터는 다음과 같은 고급 기능을 지원하지 않습니다.
- 가상 네트워크 통합, Microsoft Entra ID 통합, 활동 로그 및 UI 포털과 같은 Azure 기능
- Event Hubs 캡처
- 애플리케이션 그룹과 같은 리소스 거버넌스 기능
- 자동 크기 조정 기능
- 지역 재해 복구 기능
- 스키마 레지스트리 통합
- 시각적 메트릭 및 경고
참고 항목
에뮬레이터는 개발 및 테스트 시나리오에만 사용됩니다. 모든 종류의 프로덕션 사용을 권장하지 않습니다. 에뮬레이터에 대한 공식적인 지원은 제공하지 않습니다.
사용 할당량
Event Hubs 클라우드 서비스와 마찬가지로 에뮬레이터는 사용량에 대해 다음과 같은 할당량을 제공합니다.
속성 | 값 | 제한 내에서 구성할 수 있는 사용자 |
---|---|---|
지원되는 네임스페이스 수 | 1 | 아니요 |
네임스페이스의 최대 이벤트 허브 수 | 10 | 예 |
이벤트 허브의 최대 소비자 그룹 수 | 20 | 예 |
이벤트 허브의 최대 파티션 수 | 32 | 예 |
이벤트 허브에 게시되는 이벤트의 최대 크기(일괄 처리/비배치) | 1MB | 아니요 |
최소 이벤트 보존 시간 | 1시간 | 아니요 |
할당량 구성 변경
기본적으로 에뮬레이터는 config.json 구성 파일과 함께 실행됩니다. 필요에 따라 다음 방법으로 이 파일을 편집하여 Event Hubs와 연결된 할당량을 구성할 수 있습니다.
- 엔터티: 지원되는 할당량에 따라 사용자 지정된 수의 파티션 및 소비자 그룹을 사용하여 더 많은 엔터티(이벤트 허브)를 추가할 수 있습니다.
- 로깅: 에뮬레이터는 콘솔, 파일 또는 둘 다에 대한 로깅을 지원합니다. 개인 기본 설정에 따라 선택할 수 있습니다.
Important
에뮬레이터를 실행하기 전에 JSON 구성의 변경 내용을 제공해야 합니다. 변경 내용은 즉시 적용되지 않습니다. 변경 내용을 적용하려면 컨테이너를 다시 시작해야 합니다.
구성 파일에서 미리 설정된 네임스페이스(name
)의 이름을 바꿀 수 없습니다.
디버깅 로그
테스트하는 동안 콘솔 또는 파일 로그를 사용하면 예기치 않은 오류를 디버그할 수 있습니다. 로그를 검토하려면 다음을 수행합니다.
- 콘솔 로그: Docker 데스크톱 UI에서 컨테이너 이름을 선택합니다.
- 파일 로그: 컨테이너에서 /home/app/EmulatorLogs로 이동합니다.