Azure Event Hubs エミュレーターを使用してローカルでテストする
この記事では、Azure Event Hubs エミュレーターを使用して、ローカルで開発およびテストする手順をまとめます。
前提条件
- Docker デスクトップ
- 最小ハードウェア要件:
- 2 GB の RAM
- 5 GB のディスク領域
- Linux 用 Windows サブシステム (WSL) の構成 (Windows の場合のみ):
Note
この記事の手順に進む前に、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 (エミュレーターの依存関係) の 2 つのコンテナーが表示されます。
Linux と macOS
Linux または macOS で Event Hubs エミュレーターをローカルで実行するには、次の手順に従います。
- セットアップ スクリプト LaunchEmulator.sh を実行します。このスクリプトを実行すると、Event Hubs エミュレーターと Azurite (エミュレーターの依存関係) の 2 つのコンテナーが表示されます。
この手順が成功すると、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 の値は、セットアップ トポロジによって異なります。 詳細については、「エミュレータを操作する」セクションを参照してください。
重要
Kafka を使用する場合は、Producer および Consumer API のみが Event Hubs エミュレータと互換性があります。
開始するには、GitHub の Event Hubs エミュレーターのサンプルを参照してください。