次の方法で共有


チュートリアル: 名前空間のトピックを使用して MQTT メッセージを Azure Event Hubs にルーティングする (Azure portal)

このチュートリアルでは、名前空間トピックを使用して MQTT クライアントから Azure Event Hubs にデータをルーティングする方法について説明します。 手順の概要は次のとおりです。

前提条件

  • Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
  • Event Grid を初めて使用する場合は、このチュートリアルを開始する前に「Event Grid の概要」をお読みください。
  • Event Grid リソース プロバイダーの登録」の手順に従って、Event Grid リソース プロバイダーを登録します。
  • ファイアウォールでポート 8883 が開放されていることを確認します。 このチュートリアルのサンプルでは、ポート 8883 を介して通信する MQTT プロトコルを使用しています。 このポートは、企業や教育用のネットワーク環境によってはブロックされている場合があります。

Azure Portal での名前空間の作成

Azure Event Grid の名前空間は、1 つ以上のトピック、クライアント、クライアント グループ、トピック空間、およびアクセス許可バインド用の論理コンテナーです。 一意の名前空間が提供されるため、同じ Azure リージョンに複数のリソースを持つことができます。 Azure Event Grid 名前空間を使用して、関連するリソースをまとめてグループ化し、Azure サブスクリプションの 1 つのユニットとして管理できるようになりました。

Azure Event Grid 名前空間を作成、表示、管理するには、次のセクションに従ってください。

名前空間を作成するには:

  1. Azure portal にサインインします。

  2. 検索ボックス「Event Grid 名前空間」と入力し、結果から [Event Grid 名前空間] を選択します。

    検索結果の [Event Grid 名前空間] を示すスクリーンショット。

  3. [Event Grid 名前空間] ページで、ツール バーの [+ 作成] を選択します。

    ツール バーの [作成] ボタンが選択されている [Event Grid 名前空間] ページを示すスクリーンショット。

  4. [基本] ページで、次の手順を行います。

    1. 名前空間を作成する [Azure サブスクリプション] を選択します。

    2. 既存のリソース グループを選択するか、新しいリソース グループを作成します。

    3. 名前空間の名前を入力します。

    4. 名前空間を作成するリージョンまたは場所を選択します。

    5. ページ下部にある [確認と作成] を選択します。

      [名前空間の作成] ページの [基本] タブを示すスクリーンショット。

  5. [Review + create] (確認 + 作成) タブで設定を確認し、[作成] を選択します。

  6. [デプロイメント成功] ページで、[リソースに移動] を選択して、対象の名前空間に移動します。

名前空間トピックの作成

  1. [Event Grid 名前空間] ページが表示されていない場合は、名前空間の作成、表示、管理の手順に従って、トピックの作成に使用する名前空間を表示します。

  2. [Event Grid 名前空間] ページで、左側のメニューの [イベント] セクションで [トピック] オプションを選択します。

  3. [トピック] ページで、コマンド バーの [+ トピック] ボタンを選択します。

    Event Grid 名前空間トピックの作成を示すスクリーンショット。

  4. [トピックの作成] ページで、作成するトピックの名前を入力し、[作成] を選択します。

    Event Grid 名前空間トピックの作成の [基本] を示すスクリーンショット。

Event Grid 名前空間でマネージド ID を有効にする

  1. [Event Grid 名前空間] ページで、左側のメニューの [設定] の下の [ID] を選択します。

  2. スイッチをオンにして、システム割り当てマネージド ID を有効にします。

  3. ツール バーの [保存] を選択して設定を保存します。

    Event Grid 名前空間のシステム割り当て ID ページのスクリーンショット。

  4. 確認メッセージで、はいを選択します。

  5. システム割り当てのマネージド ID のオブジェクト ID が表示されていること、およびロールを割り当てるリンクが表示されていることを確認します。

    名前空間への ID の割り当てが完了したことを示すスクリーンショット。

    ポータルで通知を確認し、名前空間に対してマネージド ID が有効になっていることを確認します。

Event Grid 名前空間の MQTT ブローカーを有効にする

  1. [Event Grid 名前空間] ページで、左側のメニューの [設定] の下の [構成] を選択します。

  2. [MQTT ブローカーを有効にする] の横にあるチェック ボックスをオンにします。

  3. ページの下部で [適用] を選びます。

    MQTT を有効にする Event Grid 名前空間の構成ページを示すスクリーンショット。

    ポータルで通知を確認して、MQTT ブローカーが名前空間に対して有効になっていることを確認します。

Web ブラウザーの別のタブまたは別のウィンドウで、Azure portal を使用して、イベント ハブを含む Event Hubs 名前空間を作成します。

Event Hubs 名前空間を作成します

Event Hubs 名前空間は、イベント ハブの作成先となる一意のスコープ コンテナーを提供します。 ポータルを使用してリソース グループに名前空間を作成するには、以下の操作を実行します。

  1. Azure portal で、左側のメニューの [すべてのサービス] を選択し、[Analytics] カテゴリの [Event Hubs] の横にある星 (*) を選択します。 左側のナビゲーション メニューの [お気に入り][Event Hubs] が追加されていることを確認します。

    [すべてのサービス] ページで [Event Hubs] が選択されているスクリーンショット。

  2. 左側のナビゲーション メニューの [お気に入り] の下の [Event Hubs] を選択し、ツール バーの [作成] を選択します。

    [Event Hubs] ページで [作成] ボタンの選択を示すスクリーンショット。

  3. [名前空間の作成] ページで、次の手順を実行します。

    1. 名前空間を作成するサブスクリプションを選択します。

    2. 前の手順で作成したリソース グループを選択します。

    3. 名前空間の名前を入力します。 その名前が使用できるかどうかがすぐに自動で確認されます。

    4. 名前空間の場所を選択します。

    5. 価格レベルとして Basic を選択します。 Apache Kafka アプリの名前空間を使用する予定がある場合は、Standard レベルを使用します。 Basic レベルでは、Apache Kafka ワークロードがサポートされていません。 レベル間の違いについては、クォータと制限Event Hubs PremiumEvent Hubs Dedicated に関する記事を参照してください。

    6. スループット ユニット (Standard レベルの場合) または処理ユニット (Premium レベルの場合) の設定はそのままにします。 スループット ユニットまたは処理ユニットの詳細については、Event Hubs のスケーラビリティに関する記事を参照してください。

    7. ページの下部にある [確認および作成] を選択します。

      Azure portal の [名前空間の作成] ページのスクリーンショット。

    8. [確認および作成] ページで、設定を確認し、 [作成] を選択します。 デプロイが完了するまで待ちます。

  4. [デプロイ] ページで、 [リソースに移動] を選択して、対象の名前空間のページに移動します。

    リソースへのリンクが表示されたデプロイの完了ページのスクリーンショット。

  5. 次の例のような [Event Hubs 名前空間] ページが表示されていることを確認します。

    Azure portal での自分の Event Hubs 名前空間のホーム ページのスクリーンショット。

イベント ハブの作成

名前空間内にイベント ハブを作成するには、以下の操作を実行します。

  1. [概要] ページで、コマンド バーの [+ イベント ハブ] を選択します。

    コマンド バーの [イベント ハブの追加] ボタンが選択されたスクリーンショット。

  2. ご自分のイベント ハブの名前を入力し、[確認および作成] を選択します。

    [イベント ハブの作成] ページのスクリーンショット。

  3. [確認および作成] ページで、 [作成] を選択します。

  4. アラートを通じてイベント ハブの作成状態を確認することができます。 作成されたイベント ハブは、イベント ハブの一覧に表示されます。

    イベント ハブの一覧を示すスクリーンショット。

Event Grid 名前空間にイベント ハブにイベントを送信するアクセス権を付与する

  1. [Event Hubs 名前空間] ページで、左側のメニューの [アクセス制御 (IAM)] を選択します。

  2. [アクセスの制御] ページで、コマンド バーの [+ 追加] を選択し、[ロールの割り当ての追加] を選択します。

    Event Hubs 名前空間の [アクセス制御] ページを示すスクリーンショット。

  3. [ロールの割り当ての追加] ページで、ロールのリストから [Azure Event Hubs データ送信者] を選択し、ページの下部にある [次へ] を選択します。

    Azure Event Hubs Data Sender が選択されている [ロールの割り当てを追加] ページを示すスクリーンショット。

  4. [メンバー] ページで、次の手順に従います:

    1. [アクセスの割り当て] フィールドには、[マネージド ID] を選択します。

    2. 次に、[メンバーの選択] を選択します。

      [マネージド ID] が選択されている [ロールの割り当てを追加] ページを示すスクリーンショット。

  5. [マネージド ID の選択] ページで、次の手順に従います。

    1. Azure サブスクリプションを選択します。

    2. [マネージド ID] には、[Event Grid 名前空間] を選択します。

    3. Event Grid 名前空間と同じ名前のマネージド ID を選択します。

    4. ページの下部にある [選択] を選択します。

      Event Grid 名前空間のマネージド ID が選択されている [マネージド ID の選択] ページを示すスクリーンショット。

  6. [ロールの割り当ての追加] ページで、ページの下部にある [確認と割り当て] を選択します。

  7. [確認と割り当て] ページで、[確認と割り当て] を選択します。

エンドポイントとして Event Hubs を使用してイベント サブスクリプションを作成する

  1. Event Grid 名前空間が開いている Web ブラウザー ウィンドウのタブに切り替えます。

  2. [Event Grid 名前空間] ページで、左側のメニューの [トピック] を選択します。

  3. [トピック] ページで、先ほど作成した名前空間トピックを選択します。

    名前空間トピックが選択されている [トピック] ページを示すスクリーンショット。

  4. [Event Grid 名前空間トピック] ページで、上部にあるコマンド バーの [+ サブスクリプション] を選択します。

    [サブスクリプション] ページを示すスクリーンショット。

  5. [サブスクリプションの作成] ページで、次の手順に従います:

    1. イベント サブスクリプションの名前を入力します。

    2. 配信モードには、[プッシュ] を選択します。

    3. エンドポイントの種類[イベント ハブ] に設定されていることを確認します。

    4. [エンドポイントを構成する] を選択します。

      [サブスクリプションの作成] ページを示すスクリーンショット。

    5. [イベント ハブの選択] ページで、以下の手順に従います:

      1. イベント ハブがある Azure サブスクリプションを選択します。

      2. イベント ハブがあるリソース グループを選択します。

      3. [Event Hubs 名前空間] を選択します。

      4. Event Hubs 名前空間のイベント ハブを選択します。

      5. 次に、[選択の確認] を選択します。

        [イベント ハブの選択] ページを示すスクリーンショット。

    6. [サブスクリプションの作成] ページに戻り、[マネージド ID の種類][システム割り当て] を選択します。

    7. ページの下部にある [作成] を選択します。

      [作成] ボタンが選択されている [サブスクリプションの作成] ページを示すスクリーンショット。

Event Grid 名前空間でルーティングを構成する

  1. [Event Grid 名前空間のトピック] ページの [Essentials] セクションで名前空間を選択するか、上部の階層リンク メニューの名前空間名を選択して [Event Grid 名前空間] ページに戻ります。

  2. [Event Grid 名前空間] ページで、[MQTT ブローカー] セクションの左側のメニューで [ルーティング] を選択します。

  3. [ルーティング] ページで、[ルーティングを有効にする] を選択します。

  4. [トピックの種類] で、[名前空間] トピックを選択します。

  5. [トピック] には、すべての MQTT メッセージをルーティングする場所として作成した Event Grid 名前空間トピックを選択します。

  6. 適用を選択します。

    名前空間トピックが選択されている [ルーティング] ページを示すスクリーンショット。

    通知を確認して、名前空間がルーティング情報で有効になっていることを確認します。

クライアント、トピック領域、およびアクセス許可バインドを作成する

クイック スタート:「MQTT トピックを発行してサブスクライブする」の手順に従って、次の操作を行います:

  1. クライアントを作成します。 必要に応じて 2 番目のクライアントを作成できますが、省略可能です。

  2. トピック空間を作成します。

  3. パブリッシャーとサブスクライバーのアクセス許可バインドを作成します。

  4. MQTTX を使用して、いくつかのメッセージを送信します。

  5. Event Hubs 名前空間の [概要] ページで、イベント ハブがそれらのメッセージを受信したことを確認します。

    受信メッセージ数を含むイベント ハブの [概要] ページを示すスクリーンショット。

Stream Analytics クエリを使用して Event Hubs でルーティング MQTT メッセージを表示する

Azure portal で、イベント サブスクリプション内の Event Hubs インスタンス (イベント ハブ) に移動します。 Stream Analytics を使用してイベント ハブからのデータを処理します。 詳細については、「Stream Analytics を使用した Azure Event Hubs からのデータの処理 - Azure Event Hubs | Microsoft Learn」を参照してください。 クエリで MQTT メッセージを確認できます。

Stream Analytics クエリ ツールを使用した Event Hubs の MQTT メッセージ データを示すスクリーンショット。

次のステップ

コード サンプルについては、この GitHub リポジトリを参照してください。