Azure Event Grid を使用して BLOB ストレージ イベントを Web エンドポイントにルーティングする (Azure portal)

Event Grid は、Azure のさまざまなサービスおよびアプリケーション全体でイベントの管理を簡単にするフル マネージド サービスです。 イベント駆動型でサーバーレスのアプリケーションの作成を簡単にします。 サービスの概要については、Event Grid の概要に関するページを参照してください。

この記事では、Azure portal を使用して次のタスクを行います。

  1. BLOB ストレージ アカウントを作成します。
  2. その BLOB ストレージのイベントをサブスクライブします。
  3. BLOB ストレージにファイルをアップロードすることでイベントをトリガーします。
  4. ハンドラー Web アプリで結果を表示します。 通常は、イベント データを処理し、アクションを実行するエンドポイントにイベントを送信します。 シンプルにするため、メッセージを収集して表示する 1 つの Web アプリにイベントを送信します。

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

最後に、イベント データが Web アプリに送信されたことを確認します。

結果を表示する。

ストレージ アカウントの作成

  1. Azure ポータルにサインインします。

  2. BLOB ストレージを作成するには、 [リソースの作成] を選択します。

  3. [検索] に「ストレージ アカウント」と入力し、結果の一覧から [ストレージ アカウント] を選択します。

    [リソースの作成] ページでストレージ アカウントを検索している画面のスクリーンショット。

  4. [ストレージ アカウント] ページで [作成] を選択し、ストレージ アカウントの作成を開始します。 イベントに対してサブスクライブするには、汎用 v2 ストレージ アカウントまたは BLOB ストレージ アカウントのどちらかを作成します。

  5. [ストレージ アカウントの作成] ページで、次の手順を実行します。

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

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

    3. ストレージ アカウントの名前を入力します。

    4. ストレージ アカウントを作成する [リージョン] を選択します。

    5. [冗長性] には、ドロップダウン リストから [ローカル冗長ストレージ (LRS)] を選択します。

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

      [ストレージ アカウントの作成] ページのスクリーンショット。

    7. [確認] ページで設定を確認し、[作成] を選択します。

      Note

      イベントの統合をサポートしているのは、StorageV2 (汎用 v2)BlobStorage の種類のストレージ アカウントだけです。 Storage (汎用 v1) では、Event Grid との統合はサポート "されていません"。

  6. デプロイが完了するまでに数分かかる場合があります。 [デプロイ] ページで、[リソースに移動] を選択します。

    デプロイに成功したページと、リソースに移動するためのリンクを示すスクリーンショット。

  7. [ストレージ アカウント] ページの左側のメニューにある [イベント] を選択します。

    Azure ストレージ アカウントの [イベント] ページを示すスクリーンショット。

  8. このページを Web ブラウザーで開いたままにします。

メッセージ エンドポイントの作成

BLOB ストレージのイベントをサブスクライブする前に、イベント メッセージのエンドポイントを作成しましょう。 通常、エンドポイントは、イベント データに基づくアクションを実行します。 このクイック スタートを簡素化するために、イベント メッセージを表示する構築済みの Web アプリをデプロしします。 デプロイされたソリューションには、App Service プラン、App Service Web アプリ、および GitHub からのソース コードが含まれています。

  1. [Deploy to Azure](Azure にデプロイ) を選択して、ソリューションをサブスクリプションにデプロイします。

    Azure にデプロイするボタン。

  2. [カスタム デプロイ] ページで、次の手順を実行します。

    1. [リソース グループ] で、ストレージ アカウントの作成時に作成したリソース グループを選択します。 チュートリアルの完了後は、リソース グループを削除して容易にクリーンアップすることができます。

    2. [サイト名] に、Web アプリの名前を入力します。

    3. Web アプリのホストに使用する App Service プランの名前を [ホスティング プラン名] に入力します。

    4. [Review + create](レビュー + 作成) を選択します。

      [カスタム デプロイ] ページのスクリーンショット。

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

  4. デプロイが完了するまでに数分かかる場合があります。 [デプロイ] ページで、[リソース グループに移動] を選択します。

    デプロイに成功したページと、リソース グループに移動するためのリンクを示すスクリーンショット。

  5. [リソース グループ] ページのリソースの一覧で、作成した Web アプリを選択します。 この一覧には、App Service プランとストレージ アカウントも表示されます。

    リソース グループ内の Web アプリの選択を示すスクリーンショット。

  6. Web アプリの [App Service] ページで、Web サイトに移動するための URL を選択します。 この URL は、https://<your-site-name>.azurewebsites.net 形式になっている必要があります。

    Web アプリに移動するためのリンクの選択を示すスクリーンショット。

  7. サイトは表示されますが、イベントはまだ送信されていないことを確認します。

    新しいサイトを表示する。

    重要

    Azure Event Grid ビューアー ウィンドウを開いたままにして、イベントが送信された時点で表示されるようにします。

Event Grid リソース プロバイダーを登録する

これまでに Event Grid を使用したことがない場合は、Event Grid リソース プロバイダーを登録する必要があります。 Event Grid を使用したことがある場合は、次のセクションに進んでください。

Azure portal で、次の手順を実行します。

  1. 左側のメニューで [サブスクリプション] を選択します。

  2. サブスクリプションの一覧から Event Grid に使用するサブスクリプションを選択します。

  3. [サブスクリプション] ページで、左側のメニューの [設定] の下の [リソース プロバイダー] を選択します。

  4. Microsoft.EventGrid を検索し、プロバイダーの一覧で選択します。

  5. コマンド バーの [登録] を選択します。

    Microsoft.EventGrid プロバイダーを Azure サブスクリプションに登録するイメージ。

  6. 最新の情報に更新して、Microsoft.EventGrid の状態が [登録済み] に変更されたことを確認します。

    Microsoft.EventGrid プロバイダーを Azure サブスクリプションに正常に登録されたことを示すイメージ。

BLOB ストレージのサブスクライブ

どのイベントを追跡し、どこにイベントを送信するかは、トピックを購読することによって Event Grid に伝えます。

  1. [ストレージ アカウント] ページを閉じた場合は、前に作成した Azure Storage アカウントに移動します。 左側のメニューにある [すべてのリソース] を選択し、自分のストレージ アカウントを選択します。

  2. [ストレージ アカウント] ページの左側のメニューにある [イベント] を選択します。

  3. [その他のオプション] を選択し、 [webhook] を選択します。 エンドポイントの Web hook を使用して、ビューアー アプリにイベントを送信します。

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

  4. [イベント サブスクリプションの作成] ページで、次の手順を実行します。

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

    2. システム トピック名前を入力します。 システム トピックについては、システム トピックの概要に関するページを参照してください。

      システム トピックの名前を含む [イベント サブスクリプションの作成] ページを示すスクリーンショット。

    3. [エンドポイントのタイプ] には [Webhook] を選択します。

      エンドポイントとして選択された Web フックを含む [イベント サブスクリプションの作成] ページを示すスクリーンショット。

  5. [エンドポイント][エンドポイントの選択] をクリックし、Web アプリの URL を入力して、ホーム ページの URL に api/updates を追加し (例: https://spegridsite.azurewebsites.net/api/updates)、 [選択の確認] を選択します。

    [Web フックの選択] ページを示すスクリーンショット。

  6. 次に、 [イベント サブスクリプションの作成] ページの [作成] を選択して、イベント サブスクリプションを作成します。

    すべてのフィールドが選択された [イベント サブスクリプションの作成] ページを示すスクリーンショット。

  7. Web アプリをもう一度表示し、その Web アプリにサブスクリプションの検証イベントが送信されたことに注目します。 目のアイコンを選択してイベント データを展開します。 Event Grid は検証イベントを送信するので、エンドポイントはイベント データを受信することを確認できます。 Web アプリには、サブスクリプションを検証するコードが含まれています。

    サブスクリプション検証イベントを含む Event Grid Viewer を示すスクリーンショット。

では、イベントをトリガーして、Event Grid がメッセージをエンドポイントに配信するようすを見てみましょう。

エンドポイントへのイベントの送信

BLOB ストレージのイベントをトリガーするには、ファイルをアップロードします。 このファイルは、特定のコンテンツを必要としません。 この記事では、testfile.txt という名前のファイルがあると仮定していますが、任意のファイルを使用できます。

  1. Azure portal で Blob Storage アカウントに移動し、左のメニューで [Containers] を選択します。

  2. [+ コンテナー] を選択します。 コンテナーに名前を付け、任意のアクセス レベルを使用して、[作成] を選択します。

    [新しいコンテナー] ページを示すスクリーンショット。

  3. 新しいコンテナーを選択します。

    コンテナーの選択を示すスクリーンショット。

  4. ファイルをアップロードするには、 [アップロード] を選択します。 [BLOB のアップロード] ページで、テスト用にアップロードするファイルを参照して選択し、ページ上の [アップロード] を選択します。

    [BLOB のアップロード] ページを示すスクリーンショット。

  5. テスト ファイルを参照し、それをアップロードします。

  6. 以上でイベントがトリガーされ、そのメッセージが、Event Grid によってサブスクライブ時に構成したエンドポイントに送信されました。 メッセージは JSON 形式であり、1 つまたは複数のイベントの配列が含まれています。 次の例の JSON メッセージには、1 つのイベントの配列が含まれています。 Web アプリを表示して、BLOB 作成イベントが受信されたことを確認します。

    Blob Created イベントを含む Event Grid Viewer ページを示すスクリーンショット。

リソースをクリーンアップする

引き続きこのイベントを使用する場合は、この記事で作成したリソースをクリーンアップしないでください。 それ以外の場合は、この記事で作成したリソースを削除してください。

リソース グループを選択し、 [リソース グループの削除] を選択します。

次のステップ

カスタム トピックを作成し、イベントをサブスクライブする方法がわかったら、Event Grid でできることについて、さらに情報を収集しましょう。