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