次の方法で共有


名前空間トピックを使用して Azure Event Hubs にイベントを配信する - Azure portal

この記事では、 CloudEvents JSON 形式 で Azure Event Grid にイベントを発行し、プッシュ配信モデルを使用してそれらのイベントを配信する手順について説明します。

具体的には、Azure portal と Curl を使用して Event Grid の名前空間トピックにイベントを発行し、それらのイベントをイベント サブスクリプションから Event Hubs ハンドラーの宛先にプッシュします。 プッシュ配信モデルの詳細については、「 プッシュ配信の概要」を参照してください。

Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Event Grid 名前空間を作成する

Event Grid 名前空間は、イベントを投稿するユーザー定義エンドポイントを提供します。 次の例では、Azure Cloud Shell で Bash を使用してリソース グループに名前空間を作成します。 名前空間名はドメイン ネーム システム (DNS) エントリの一部であるため、一意である必要があります。

  1. Azure Portal に移動します。

  2. トピックの検索バーに「 Event Grid Namespaces」と入力し、結果から Event Grid Namespaces を選択します。

    Azure portal の検索バーを示すスクリーンショット。

  3. Event Grid 名前空間 ページで、コマンドバーの [+ 作成] を選択します。 コマンド バーの [作成] ボタンが選択されている [Event Grid 名前空間] ページを示すスクリーンショット。

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

    1. 名前空間を作成する [Azure サブスクリプション] を選択します。
    2. [新規作成] を選択するか、既存のリソース グループを選択して 、新しい リソース グループを作成します。
    3. 名前空間の名前を入力します。
    4. リソース グループを作成する 場所 を選択します。
    5. 次に [確認と作成] を選択します。
      [名前空間の作成] ページを示すスクリーンショット。
    6. [確認および作成] ページで、 [作成] を選択します。
  5. [ デプロイ ] ページで、デプロイが成功した後 に [リソースに移動 ] を選択します。

アクセス キーを取得する

  1. [ Event Grid 名前空間] ページで、左側のメニューの [アクセス キー ] を選択します。
  2. アクセス キーの横にあるコピー ボタンを選択します。 [アクセス キー] タブが選択されている [Event Grid 名前空間] ページを示すスクリーンショット。
  3. アクセス キーをどこかに保存します。 後ほど、このクイックスタートで使用します。

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

Event Grid 名前空間でシステム割り当てマネージド ID を有効にします。 マネージド ID を使用して Event Hubs 名前空間のイベント ハブにイベントを配信するには、これらの手順を実行します。

  1. システム割り当てマネージド ID またはユーザー割り当てマネージド ID: 名前空間を有効にします。 次のセクションに進み、Azure CLI を使用してマネージド ID を有効にする方法を確認してください。
  2. Event Hubs 名前空間の Azure Event Hubs データ送信者 ロールに ID を追加し、次のセクションに進み、ロールの割り当てを追加する方法を確認します。
  3. システム割り当てマネージド ID またはユーザー割り当てマネージド ID を使用するエンドポイントとしてイベント ハブを使用するイベント サブスクリプションを構成します。

このセクションでは、名前空間でシステム割り当てマネージド ID を有効にします。 その他の手順は、このクイックスタートの後半で行います。

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

  2. 「アイデンティティ」ページ、「ステータス」「オン」選択します。

  3. コマンド バーで、 保存 を選択します。

    [Event Grid 名前空間] ページの [ID] タブを示すスクリーンショット。

名前空間にトピックを作成する

名前空間エンドポイントに発行されたすべてのイベントを保持するために使用されるトピックを作成します。

  1. 左側のメニューで [トピック ] を選択します。
  2. [ トピック ] ページで、コマンド バーの [+ トピック ] を選択します。 [トピック] ページを示すスクリーンショット。
  3. [ トピックの作成 ] ページで、次の手順に従います。
    1. トピックの名前を入力します。
    2. を選択してを作成します。
      [トピックの作成] ページを示すスクリーンショット。

Event Hubs 名前空間を作成する

名前空間トピック プッシュ配信サブスクリプションのハンドラーの宛先として使用される Event Hubs リソースを作成します。 次の手順は、インターネット ブラウザーの別のタブまたは別のウィンドウで行います。 Azure portal に移動し、前に使用したのと同じ資格情報と同じ Azure サブスクリプションを使用してサインインします。

  1. 検索バーに 「Event Hubs 」と入力し、[ Event Hubs] を選択します。
  2. [Event Hubs] ページで、コマンド バーの [+ 作成] を選択します。
  3. [ 名前空間の作成 ] ページで、次の手順に従います。
    1. Event Grid 名前空間の作成に使用した Azure サブスクリプション を選択します。
    2. 前に使用した リソース グループ を選択します。
    3. Event Hubs 名前空間の 名前 を入力します。
    4. Event Grid 名前空間に使用したのと同じ 場所 を選択します。
    5. 価格レベルで [基本] を選択します。
    6. [Review + create](レビュー + 作成) を選択します。 [Event Hubs 名前空間の作成] ページを示すスクリーンショット。
    7. [Review](レビュー) ページで、 [Create](作成) を選択します。
  4. [デプロイ] ページで、 デプロイ が成功した後 に [リソースに移動 ] を選択します。

Event Grid マネージド ID を Event Hubs データ送信者ロールに追加する

  1. [Event Hubs 名前空間] ページで、左側のメニューの [アクセス制御 (IAM)] を選択します。
  2. コマンド バーで [->] を選択します。 [アクセス制御] タブが選択されている [Event Hubs 名前空間] ページを示すスクリーンショット。
  3. [ ロールの割り当ての追加] ページで、 Event Hubs データ送信者を検索し、ロールの一覧から [Azure Event Hubs Data Sender ] を選択し、[ 次へ] を選択します。 [ロールの割り当ての追加] ページを示すスクリーンショット。
  4. [ メンバー ] タブで、種類の [マネージド ID] を 選択し、[ + メンバーの選択] を選択します。 [ロールの割り当ての追加] ページの [メンバー] タブを示すスクリーンショット。
  5. [マネージド ID の選択] ページで、マネージド IDEvent Grid 名前空間を選択し、Event Grid 名前空間と同じ名前のマネージド ID を選択します。 [マネージド ID の選択] ページを示すスクリーンショット。
  6. [ マネージド ID の選択 ] ページで、[選択] を 選択します 選択したマネージド ID を示すスクリーンショット。
  7. 次に、[ロールの割り当ての追加] ページで、[確認と割り当て] を選択します。 マネージド ID が選択された [ロールの割り当ての追加] ページを示すスクリーンショット。
  8. [ 確認と割り当て ] ページで、[ 確認と割り当て] を選択します。

イベント ハブの作成

  1. [ Event Hubs 名前空間] ページで、左側のメニューで [Event Hubs ] を選択します。
  2. [ Event Hubs ] ページで、コマンド バーの [+ イベント ハブ ] を選択します。 [+ イベント ハブ] が選択された [Event Hubs] ページを示すスクリーンショット。
  3. [ イベント ハブの作成 ] ページで、イベント ハブの名前を入力し、[ 確認と作成] を選択します。 [イベント ハブの作成] ページを示すスクリーンショット。
  4. [確認および作成] ページで、 [作成] を選択します。

イベント サブスクリプションの作成

プッシュ配信をサポートする、配信モードを Push に設定するイベント サブスクリプションを作成 します

  1. Event Hubs 名前空間 ページが開いているタブまたはウィンドウから、Event Grid 名前空間 ページが開いているタブまたはウィンドウに切り替えます。
  2. [Event Grid 名前空間] ページで、左側のメニューの [トピック] を選択します。
  3. [ トピック ] ページで、前の手順で作成したトピックを選択します。
  4. コマンド バーで [ + サブスクリプション ] を選択します。 [サブスクリプションの作成] ボタンが選択されている [トピック] ページを示すスクリーンショット。
  5. [イベント サブスクリプションの作成] ページで、次の手順に従います。
    1. [ 基本 ] タブで、イベント サブスクリプションの 名前 を入力します。
    2. イベント配信モードとして [プッシュ ] を選択します。
    3. [エンドポイント] の種類に対して [イベント ハブ] が選択されていることを確認します。
    4. [エンドポイントを構成する] を選択します。 配信モードで [プッシュ] が選択されている [サブスクリプションの作成] ページを示すスクリーンショット。
    5. [ イベント ハブの選択 ] ページで、次の手順に従います。
      1. イベント ハブがある Azure サブスクリプションリソース グループ を選択します。
      2. Event Hubs 名前空間イベント ハブを選択します。
      3. 次に、[選択の確認] を選択します。 [イベント ハブの選択] ページを示すスクリーンショット。
    6. [サブスクリプションの作成] ページに戻り、[マネージド ID の種類][システム割り当て] を選択します。 マネージド ID の種類に対してシステム割り当てセットが設定された [サブスクリプションの作成] ページを示すスクリーンショット。
    7. を選択してを作成します。

トピックにイベントを送信する

次に、このセクションの手順に従って、名前空間のトピックにサンプル イベントを送信します。

  1. Azure portal で Cloud Shell を起動します。 Bash に切り替えます。

    Cloud Shell を示すスクリーンショット。

  2. Cloud Shell で次のコマンドを実行して、名前空間のアクセス キーを保持する変数を宣言します。 このクイック スタートでは、前にアクセス キーに関する説明を行いました。

    key=ACCESSKEY
    
  3. 発行操作 URI を保持する変数を宣言します。 NAMESPACENAMEを Event Grid 名前空間の名前に置き換え、TOPICNAMEトピックの名前に置き換えます。

    publish_operation_uri=https://NAMESPACENAME.eastus-1.eventgrid.azure.net/topics/TOPICNAME:publish?api-version=2023-06-01-preview
    
  4. CloudEvents 準拠のサンプル イベントを作成します。

    event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
    

    data要素は、イベントのペイロードです。 このフィールドには、適切な形式の JSON であればどのようなものでも格納することができます。 イベントに含めることができるプロパティ (コンテキスト属性とも呼ばれます) の詳細については、 CloudEvents の仕様を参照してください。

  5. CURL を使用して、トピックにイベントを送信します。 CURL は、HTTP 要求を送信するユーティリティです。

    curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
    

    Azure portal の [Event Hubs 名前空間] ページ に移動し、ページを更新し、グラフの受信メッセージ カウンターにイベントが受信されたことを示していることを確認します。

    イベントが受信されたことを示すグラフを含む [イベント ハブ] ページを示すスクリーンショット。

次のステップ

この記事では、Event Grid 名前空間と Event Hubs リソースを作成して構成しました。 イベント ハブからイベントを受信する手順については、次のチュートリアルを参照してください。