Azure Event Hubs エミュレーターの概要
Azure Event Hubs エミュレーターは、Event Hubs サービスのローカル開発エクスペリエンスを提供します。 エミュレーターを使用すると、クラウドの干渉を受けずに、分離してサービスに対してコードを開発およびテストできます。
メリット
エミュレーターを使用する主なメリットは次のとおりです。
- ローカル開発: エミュレーターはローカル開発エクスペリエンスを提供することで、オフラインで作業し、ネットワーク待機時間を回避できるようにします。
- コスト効率: エミュレーターを使用すると、クラウドの使用コストを発生させずにアプリケーションをテストできます。
- 分離テスト環境: コードを単独でテストできます。これにより、テストがクラウド内の他のアクティビティの影響を受けることがなくなります。
- 最適化された内部開発ループ: アプリケーションをクラウドにデプロイする前に、エミュレーターを使用し、アプリケーションのプロトタイプを迅速に作成してテストできます。
Note
Event Hubs エミュレーターは、Microsoft ソフトウェア ライセンス条項の下で使用できます。
機能
エミュレーターには、次の機能があります。
- コンテナー化されたデプロイ: Docker コンテナー (Linux ベース) として実行されます。
- クロスプラットフォームの互換性: Windows、macOS、Linux などの任意のプラットフォームで使用できます。
- 構成可能性: JSON で提供される構成を使用して、イベント ハブ、パーティション、その他のエンティティの数を管理できます。
- ストリーミングのサポート: Kafka および AMQP (Advanced Message Queuing Protocol) を使用したストリーミング イベントをサポートします。
- 監視: コンソールやファイルのログなどの監視機能を提供します。
既知の制限事項
エミュレーターの現在のバージョンには、次の制限があります。
Kafka を使用する場合は、Producer および Consumer API のみが Event Hubs エミュレータと互換性があります。
Kafka 構成では、
securityProtocol
とsaslmechanism
には次の値のみを指定できます。SecurityProtocol = SecurityProtocol.SaslPlaintext, SaslMechanism = SaslMechanism.Plain
クライアント側 SDK を使用した即時管理操作はサポートされていません。
Note
コンテナーの再起動後、データとエンティティはエミュレーターに保持されません。
クラウド サービスとの違い
Event Hubs エミュレーターは開発とテストのみを目的としているため、エミュレーターとクラウド サービスには機能的な違いがあります。
エミュレーターでは、次の高度な機能はサポートされていません。
- 仮想ネットワーク統合、Microsoft Entra ID 統合、アクティビティ ログ、UI ポータルなどの Azure 機能
- Event Hubs のキャプチャ
- アプリケーション グループなどのリソース ガバナンス機能
- 自動スケーリング機能
- geo ディザスター リカバリー機能
- スキーマ レジストリ統合
- ビジュアル メトリックとアラート
Note
エミュレーターは、開発とテストのシナリオのみを対象としています。 どのような種類の運用環境でも使用しないことをお勧めします。 エミュレーターの公式サポートは提供されていません。
エミュレーターの GitHub インストーラー リポジトリで問題や提案を報告します。
使用量クォータ
Event Hubs クラウド サービスと同様に、エミュレーターは使用状況に対して次のクォータを提供します。
プロパティ | 値 | 制限内の構成可能なユーザー |
---|---|---|
サポートされている名前空間の数 | 1 | いいえ |
名前空間内のイベント ハブの最大数 | 10 | はい |
イベント ハブ内のコンシューマー グループの最大数 | 20 | はい |
イベント ハブのパーティションの最大数 | 32 | はい |
イベント ハブに発行されるイベントの最大サイズ (バッチ/バッチ以外) | 1 MB | いいえ |
最小イベント保持時間 | 1 時間 | いいえ |
クォータ構成の変更
既定では、エミュレーターは config.json 構成ファイルで実行されます。 Event Hubs に関連付けられているクォータを構成するには、ニーズに基づいて次の方法でこのファイルを編集します。
- エンティティ: サポートされているクォータに応じて、カスタマイズされた数のパーティションとコンシューマー グループを含むエンティティ (イベント ハブ) を追加できます。
- ログ: エミュレーターは、コンソールまたはファイル、あるいはその両方でログをサポートします。 個人の好みに応じて選択できます。
重要
エミュレーターを実行する前に、JSON 構成の変更を指定する必要があります。 変更は、その場では反映されません。 変更を適用にするには、コンテナーを再起動する必要があります。
構成ファイルのプリセット名前空間 (name
) の名前を変更することはできません。
デバッグ用のログ
テスト中、コンソールやファイル ログは、予期しないエラーのデバッグに役立ちます。 ログを確認するには
- コンソールログ: Docker デスクトップ UI で、コンテナー名を選択します。
- ファイル ログ: コンテナーで、/home/app/EmulatorLogs に移動します。