Azure Event Grid を使用して BLOB ストレージ イベントを Web エンドポイントにルーティングする (Azure portal)
Event Grid は、Azure のさまざまなサービスおよびアプリケーション全体でイベントの管理を簡単にするフル マネージド サービスです。 イベント駆動型でサーバーレスのアプリケーションの作成を簡単にします。 サービスの概要については、Event Grid の概要に関するページを参照してください。
この記事では、Azure portal を使用して次のタスクを行います。
- BLOB ストレージ アカウントを作成します。
- その BLOB ストレージのイベントをサブスクライブします。
- BLOB ストレージにファイルをアップロードすることでイベントをトリガーします。
- ハンドラー Web アプリで結果を表示します。 通常は、イベント データを処理し、アクションを実行するエンドポイントにイベントを送信します。 シンプルにするため、メッセージを収集して表示する 1 つの Web アプリにイベントを送信します。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
最後に、イベント データが Web アプリに送信されたことを確認します。
ストレージ アカウントの作成
Azure ポータルにサインインします。
BLOB ストレージを作成するには、 [リソースの作成] を選択します。
[検索] に「ストレージ アカウント」と入力し、結果の一覧から [ストレージ アカウント] を選択します。
[ストレージ アカウント] ページで [作成] を選択し、ストレージ アカウントの作成を開始します。 イベントに対してサブスクライブするには、汎用 v2 ストレージ アカウントまたは BLOB ストレージ アカウントのどちらかを作成します。
[ストレージ アカウントの作成] ページで、次の手順を実行します。
Azure サブスクリプションを選択します。
リソース グループには、新しいリソース グループ名を作成するか既存の名前を選択します。
ストレージ アカウントの名前を入力します。
ストレージ アカウントを作成する [リージョン] を選択します。
[冗長性] には、ドロップダウン リストから [ローカル冗長ストレージ (LRS)] を選択します。
ページの下部にある [確認] を選択します。
[確認] ページで設定を確認し、[作成] を選択します。
Note
イベントの統合をサポートしているのは、StorageV2 (汎用 v2) と BlobStorage の種類のストレージ アカウントだけです。 Storage (汎用 v1) では、Event Grid との統合はサポート "されていません"。
デプロイが完了するまでに数分かかる場合があります。 [デプロイ] ページで、[リソースに移動] を選択します。
[ストレージ アカウント] ページの左側のメニューにある [イベント] を選択します。
このページを Web ブラウザーで開いたままにします。
メッセージ エンドポイントの作成
BLOB ストレージのイベントをサブスクライブする前に、イベント メッセージのエンドポイントを作成しましょう。 通常、エンドポイントは、イベント データに基づくアクションを実行します。 このクイックスタートを簡素化するために、イベント メッセージを表示する構築済みの Web アプリをデプロイします。 デプロイされたソリューションには、App Service プラン、App Service Web アプリ、および GitHub からのソース コードが含まれています。
[Deploy to Azure](Azure にデプロイ) を選択して、ソリューションをサブスクリプションにデプロイします。
[カスタム デプロイ] ページで、次の手順を実行します。
[リソース グループ] で、ストレージ アカウントの作成時に作成したリソース グループを選択します。 チュートリアルの完了後は、リソース グループを削除して容易にクリーンアップすることができます。
[サイト名] に、Web アプリの名前を入力します。
Web アプリのホストに使用する App Service プランの名前を [ホスティング プラン名] に入力します。
[Review + create](レビュー + 作成) を選択します。
[確認および作成] ページで、 [作成] を選択します。
デプロイが完了するまでに数分かかる場合があります。 [デプロイ] ページで、[リソース グループに移動] を選択します。
[リソース グループ] ページのリソースの一覧で、作成した Web アプリを選択します。 この一覧には、App Service プランとストレージ アカウントも表示されます。
Web アプリの [App Service] ページで、Web サイトに移動するための URL を選択します。 この URL は、
https://<your-site-name>.azurewebsites.net
形式になっている必要があります。サイトは表示されますが、イベントはまだ送信されていないことを確認します。
重要
Azure Event Grid ビューアー ウィンドウを開いたままにして、イベントが送信された時点で表示されるようにします。
Event Grid リソース プロバイダーを登録する
これまでに Event Grid を使用したことがない場合は、Event Grid リソース プロバイダーを登録する必要があります。 Event Grid を使用したことがある場合は、次のセクションに進んでください。
Azure portal で、次の手順を実行します。
左側のメニューで [サブスクリプション] を選択します。
サブスクリプションの一覧から Event Grid に使用するサブスクリプションを選択します。
[サブスクリプション] ページで、左側のメニューの [設定] の下の [リソース プロバイダー] を選択します。
Microsoft.EventGrid を検索し、[状態] が [未登録] であることを確認します。
プロバイダーの一覧で [Microsoft.EventGrid] を選択します。
コマンド バーの [登録] を選択します。
最新の情報に更新して、Microsoft.EventGrid の状態が [登録済み] に変更されたことを確認します。
BLOB ストレージのサブスクライブ
どのイベントを追跡し、どこにイベントを送信するかは、トピックを購読することによって Event Grid に伝えます。
[ストレージ アカウント] ページを閉じた場合は、前に作成した Azure Storage アカウントに移動します。 左側のメニューにある [すべてのリソース] を選択し、自分のストレージ アカウントを選択します。
[ストレージ アカウント] ページの左側のメニューにある [イベント] を選択します。
[その他のオプション] を選択し、 [webhook] を選択します。 エンドポイントの Web hook を使用して、ビューアー アプリにイベントを送信します。
[イベント サブスクリプションの作成] ページで、次の手順を実行します。
イベント サブスクリプションの名前を入力します。
システム トピックの名前を入力します。 システム トピックについては、システム トピックの概要に関するページを参照してください。
[エンドポイントのタイプ] には [Webhook] を選択します。
[エンドポイント] で、[エンドポイントを選択] を選択し、Web アプリの URL を入力し、ホーム ページの URL (例えば:
https://spegridsite.azurewebsites.net/api/updates
など) にapi/updates
を追加して、[選択の確認] を選択します。次に、 [イベント サブスクリプションの作成] ページの [作成] を選択して、イベント サブスクリプションを作成します。
Web アプリをもう一度表示し、その Web アプリにサブスクリプションの検証イベントが送信されたことに注目します。 目のアイコンを選択してイベント データを展開します。 Event Grid は検証イベントを送信するので、エンドポイントはイベント データを受信することを確認できます。 Web アプリには、サブスクリプションを検証するコードが含まれています。
では、イベントをトリガーして、Event Grid がメッセージをエンドポイントに配信するようすを見てみましょう。
エンドポイントへのイベントの送信
BLOB ストレージのイベントをトリガーするには、ファイルをアップロードします。 このファイルは、特定のコンテンツを必要としません。
Azure portal で Blob Storage アカウントに移動し、左のメニューで [Containers] を選択します。
[+ コンテナー] を選択します。 コンテナーに名前を付け、任意のアクセス レベルを使用して、[作成] を選択します。
新しいコンテナーを選択します。
ファイルをアップロードするには、 [アップロード] を選択します。 [BLOB のアップロード] ページで、テスト用にアップロードするファイルを参照して選択し、ページ上の [アップロード] を選択します。
テスト ファイルを参照し、それをアップロードします。
以上でイベントがトリガーされ、そのメッセージが、Event Grid によってサブスクライブ時に構成したエンドポイントに送信されました。 メッセージは JSON 形式であり、1 つまたは複数のイベントの配列が含まれています。 次の例の JSON メッセージには、1 つのイベントの配列が含まれています。 Web アプリを表示して、BLOB 作成イベントが受信されたことを確認します。
リソースをクリーンアップする
引き続きこのイベントを使用する場合は、この記事で作成したリソースをクリーンアップしないでください。 それ以外の場合は、この記事で作成したリソースを削除してください。
リソース グループを選択し、 [リソース グループの削除] を選択します。
次のステップ
カスタム トピックを作成し、イベントをサブスクライブする方法がわかったら、Event Grid でできることについて、さらに情報を収集しましょう。