다음을 통해 공유


Azure Event Hubs 에뮬레이터 개요

Azure Event Hubs 에뮬레이터는 개발자가 오프라인, 비용 효율적이고 격리된 환경에서 Event Hubs 애플리케이션을 테스트하고 프로토타입할 수 있도록 설계된 로컬 개발 도구입니다. 에뮬레이터는 Event Hubs 서비스를 로컬로 시뮬레이션하여 더 빠른 개발 주기를 가능하게 하고, 클라우드 관련 비용을 제거하고, 제어된 테스트 환경을 제공합니다. 이 문서에서는 시작하는 데 도움이 되는 에뮬레이터의 이점, 기능, 제한 사항 및 사용 지침에 대한 개요를 제공합니다.

Benefits

에뮬레이터 사용의 주요 이점은 다음과 같습니다.

  • 로컬 개발: 에뮬레이터는 로컬 개발 환경을 제공하므로 오프라인으로 작업하고 네트워크 대기 시간을 방지할 수 있습니다.
  • 비용 효율성: 에뮬레이터를 사용하여 클라우드 사용 비용을 발생시키지 않고 애플리케이션을 테스트할 수 있습니다.
  • 격리된 테스트 환경: 격리된 코드를 테스트하여 클라우드의 다른 활동이 테스트에 영향을 주지 않도록 할 수 있습니다.
  • 최적화된 내부 개발 루프: 에뮬레이터를 사용하여 애플리케이션을 클라우드에 배포하기 전에 신속하게 프로토타입을 만들고 테스트할 수 있습니다.

Features

에뮬레이터는 다음과 같은 기능을 제공합니다.

  • 컨테이너화된 배포: Docker 컨테이너(Linux 기반)로 실행됩니다.
  • 플랫폼 간 호환성: Windows, macOS 및 Linux를 비롯한 모든 플랫폼에서 사용할 수 있습니다.
  • 구성 가능성: JSON 제공 구성을 사용하여 이벤트 허브, 파티션 및 기타 엔터티 수를 관리할 수 있습니다.
  • 스트리밍 지원: Kafka 및 AMQP(Advanced Message Queuing Protocol)를 사용하여 스트리밍 이벤트를 지원합니다.
  • 관찰성: 콘솔 및 파일 로깅을 비롯한 관찰 기능을 제공합니다.

Known limitations

에뮬레이터의 현재 버전에는 다음과 같은 제한 사항이 있습니다.

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

  • Kafka 구성 securityProtocolsaslmechanism 에서 다음 값만 사용할 수 있습니다.

      SecurityProtocol = SecurityProtocol.SaslPlaintext,
      SaslMechanism = SaslMechanism.Plain
    
  • 클라이언트 쪽 SDK를 통한 즉석 관리 작업은 지원하지 않습니다.

Note

컨테이너를 다시 시작한 후에는 데이터 및 엔터티가 에뮬레이터에 유지되지 않습니다.

에뮬레이터와 클라우드 서비스의 차이점

Event Hubs 에뮬레이터는 개발 및 테스트 목적으로만 사용되므로 에뮬레이터와 클라우드 서비스 간에 기능적 차이가 있습니다.

에뮬레이터는 다음과 같은 고급 기능을 지원하지 않습니다.

  • 가상 네트워크 통합, Microsoft Entra ID 통합, 활동 로그 및 UI 포털과 같은 Azure 기능
  • 이벤트 허브 캡쳐
  • 애플리케이션 그룹과 같은 리소스 거버넌스 기능
  • Autoscale capabilities
  • 지역 재해 복구 기능
  • 스키마 레지스트리 통합
  • 시각적 메트릭 및 경고

Note

에뮬레이터는 개발 및 테스트 시나리오에만 사용됩니다. 모든 종류의 프로덕션 사용을 권장하지 않습니다. 에뮬레이터에 대한 공식적인 지원은 제공하지 않습니다.

에뮬레이터의 GitHub 설치 관리자 리포지토리에서 문제 또는 제안을 보고합니다.

Usage quotas

Azure의 Event Hubs와 마찬가지로 에뮬레이터는 사용량에 대해 다음과 같은 할당량을 제공합니다.

Property Value 제한 내에서 구성할 수 있는 사용자
지원되는 네임스페이스 수 1 No
네임스페이스의 최대 이벤트 허브 수 10 Yes
이벤트 허브의 최대 소비자 그룹 수 20 Yes
이벤트 허브의 최대 파티션 수 32 Yes
이벤트 허브에 게시되는 이벤트의 최대 크기(일괄 처리/비배치) 1 MB No
최소 이벤트 보존 시간 1 hr No

에뮬레이터는 이러한 제한을 적용합니다. 일부 값은 config.json사용하여 구성할 수 있지만 나열된 최대값을 초과할 수 없습니다. 에뮬레이터를 시작하기 전에 구성을 변경해야 합니다.

할당량 구성 변경

기본적으로 에뮬레이터는 config.json 구성 파일과 함께 실행됩니다. 필요에 따라 다음 방법으로 이 파일을 편집하여 Event Hubs와 연결된 할당량을 구성할 수 있습니다.

  • 엔터티: 지원되는 할당량에 따라 사용자 지정된 수의 파티션 및 소비자 그룹을 사용하여 더 많은 엔터티(이벤트 허브)를 추가할 수 있습니다.
  • 로깅: 에뮬레이터는 콘솔, 파일 또는 둘 다에 대한 로깅을 지원합니다. 개인 기본 설정에 따라 선택할 수 있습니다.

Important

에뮬레이터를 실행하기 전에 JSON 구성의 변경 내용을 제공해야 합니다. 변경 내용은 즉시 적용되지 않습니다. 변경 내용을 적용하려면 컨테이너를 다시 시작해야 합니다.

구성 파일에서 미리 설정된 네임스페이스(name)의 이름을 바꿀 수 없습니다.

디버깅 로그

테스트하는 동안 콘솔 또는 파일 로그를 사용하면 예기치 않은 오류를 디버그할 수 있습니다. 로그를 검토하려면 다음을 수행합니다.

  • 콘솔 로그: Docker 데스크톱 UI에서 컨테이너 이름을 선택합니다.
  • 파일 로그: 컨테이너에서 /home/app/EmulatorLogs로 이동합니다.

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