次の方法で共有


Azure Event Hubs エミュレーターを使用してローカルでテストする

この記事では、Azure Event Hubs エミュレーターを使用して、ローカルで開発およびテストする手順をまとめます。

前提条件

Note

この記事の手順に進む前に、Docker Desktop がバックグラウンドで動作することを確認してください。

エミュレーターを実行する

Event Hubs エミュレーターを実行するには、自動化されたスクリプトまたは Linux コンテナーを使用できます。

自動スクリプトを実行する前に、エミュレーターの GitHub インストーラー リポジトリをローカルに複製します。

Windows

Windows で Event Hubs エミュレーターをローカルで実行するには、次の手順に従います。

  1. PowerShell ウィンドウで次のコマンドを実行して、署名されていないスクリプトの実行を許可します。

    $>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'

  2. セットアップ スクリプト LaunchEmulator.ps1 を実行します。 このスクリプトを実行すると、Event Hubs エミュレーターと Azurite (エミュレーターの依存関係) の 2 つのコンテナーが表示されます。

Linux と macOS

Linux または macOS で Event Hubs エミュレーターをローカルで実行するには、次の手順に従います。

  • セットアップ スクリプト LaunchEmulator.sh を実行します。このスクリプトを実行すると、Event Hubs エミュレーターと Azurite (エミュレーターの依存関係) の 2 つのコンテナーが表示されます。

この手順が成功すると、Docker で実行されているコンテナーが見つかります。

コンテナーで実行されている Event Hubs エミュレーターを示すスクリーンショット。

エミュレーターを操作する

既定では、エミュレータは 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 エミュレーターのサンプルを参照してください。

Azure Event Hubs エミュレーターの概要