「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Azureのメッセージング・サービス]] --[[Azure Event Hubs]] --[[Azure HDInsight上の Kafka>Azureのメッセージング・サービス#td389d0c]] --[[Azure IoT Hub]] --Azure Event Grid --[[Azure Service Bus]] * 目次 [#wf9b8a26] #contents *概要 [#n42f0336] **説明 [#yc5ee50a] -イベント駆動のリアクティブ・プログラミングを~ 可能にするメッセージの[[イベント・ハンドラ>#g5f8737e]]。 -以下の用途で使用される。 --操作の自動化 --アプリケーション統合 --サーバーレスの1コンポーネント **図表 [#g9ebb02a] [[アーキテクチャ>#lf4a3bd5]]は下図のようになっており、 -[[イベント・ソース>#na2a9a2e]]と[[イベント・ハンドラ>#g5f8737e]]間を、 -[[トピック>#k39cd0d0]](≒ エンドポイント)をサブスクライブする~ [[イベント・サブスクリプション>#kad151dc]](ルーティング・フィルタリング)で、 -[[トピック>#k39cd0d0]](≒ エンドポイント)をサブスクライブし、~ [[イベント・サブスクリプション>#kad151dc]]でルーティング・フィルタリングして、 接続している。 #ref(event-grid-functional-model.png,left,nowrap,図表,50%) *機能 [#sd94888d] **機能要件的 [#n2faa52b] -イベント・ベースのアーキテクチャを備えたアプリケーションを簡単に作成する ++サブスクライブ対象の Azure リソースを選択して、 ++[[イベント>#k289b1e5]]の送信先となる[[イベント・ハンドラ>#g5f8737e]]を指定。 -[[イベント・サブスクリプション>#kad151dc]]のルーティング・フィルタリング **非機能要件的 [#q4856abc] -拡張性・高性能(スケーラビリティ -信頼性(リトライ機能 -セキュリティ(認証) --SAS --キー *用語 [#xda1a8ea] **イベント関連 [#v5225a23] ***イベント [#k289b1e5] -イベントの最大許容サイズは 1 MB -64 KB を超えるイベントは、64 KB の増分単位で課金。 ***スキーマ [#x1353ec2] [[イベント>#k289b1e5]]のスキーマ -Event Grid Schema~ Azure内だけで通用するフォーマット --必須プロパティ ---id:イベントの一意識別子 ---subject:パス ---eventType:種類 ---eventTime:生成時刻(UTC --その他プロパティ ---topic: ---data:データ -Cloud Event Schema~ クラウド間連携できるフォーマット --必須プロパティ ---id:イベントの一意識別子 ---source:[[イベント・ソース>#na2a9a2e]]の種類、組織 ---type:イベントのタイプを説明する値 ---specversion:仕様のバージョン --その他プロパティ ---datacontenttype: ---dataschema: ---time: ---... **Pub/Subメッセージング・モデル [#ifd945bc] ***パブリッシャ [#m627d3ec] [[イベント>#k289b1e5]]の送信者 ***サブスクライバ [#h3ad8f7a] [[イベント>#k289b1e5]]の受信者 **アーキテクチャ [#lf4a3bd5] ***イベント・ソース [#na2a9a2e] [[イベント>#k289b1e5]]の発生元(≒[[パブリッシャ>#m627d3ec]] -Azure App Configuration -[[Azure Blob Storage>Azureのストレージ#w947118f]] -Azure Communication Services -[[Azure Container Registry]] -[[Azure Event Hubs]] -[[Azure IoT Hub]] -Azure [[Key Vault]] -[[Azure Machine Learning]] -Azure Maps -[[Azure Media Services]] -[[Azure Policy]] -Azure リソース グループ -[[Azure Service Bus]] -Azure SignalR -Azure Cache for Redis ※ https://docs.microsoft.com/ja-jp/azure/event-grid/overview#event-sources ***トピック [#k39cd0d0] -[[イベント>#k289b1e5]]を受信するエンドポイント([[サブスクライバ>#h3ad8f7a]]の入口 -システム・トピック、カスタム・トピック --システム・トピック~ Azure サービスによって提供される組み込みのトピック。 ---[[パブリッシャ>#m627d3ec]]がトピックを所有 ---サブスクリプションに表示されない。 ---サブスクライブすることはできる。 --カスタム・トピック~ アプリケーションとサード・パーティのカスタムのトピックを作成しアクセス権を割り当てる。 ---[[パブリッシャ>#m627d3ec]]とトピックの関係を設定可能(1:1 or n:1) ---サブスクリプションに表示される。 ---(当然)サブスクライブできる。 ***イベント・サブスクリプション [#kad151dc] -[[トピック>#k39cd0d0]] → [[イベント・ハンドラ>#g5f8737e]]([[サブスクライバ>#h3ad8f7a]]の出口 -[[トピック>#k39cd0d0]]のサブスクライブ -[[イベント・ハンドラ>#g5f8737e]]へ、~ [[イベント>#k289b1e5]]のルーティング・フィルタリングなど --ファンアウト~ イベントの複製(マルチキャスト・イベント風 --フィルタ~ イベントのフィルタリング --リトライ機能 ***イベント・ハンドラ [#g5f8737e] [[イベント>#k289b1e5]]の送信先(≒[[サブスクライバ>#h3ad8f7a]] -[[Azure Functions]] -[[Azure Event Hubs]] -[[Power Automate>RPA (Robotic Process Automation)#d46b14d1]] -[[Azure Service Bus]] -[[Queue Storage>Azureのストレージ#ge178d0f]] -WebHooks~ イベント ハンドラーの一種 --C#スクリプトで作成することも可能。 --[[Azure Functions]]のEventGridTriggerテンプレート --Azure Automation Runbook と Logic Apps ※ https://docs.microsoft.com/ja-jp/azure/event-grid/overview#event-handlers **その他 [#tbc1f111] ***イベント・ドメイン [#ya9bf24f] マルチテナント環境下で、各社のトピックへのイベント送信を行う仕組み。 ***パートナー・イベント [#o735c3a0] -Event Grid と統合する登録済みシステムをパートナーと呼ぶ。 --送信する発行元 --受信する発行先(Webhook URL を表すリソース -パートナーの[[イベント>#k289b1e5]]も[[パブリッシュ>#m627d3ec]] & [[サブスクライブ>#h3ad8f7a]]できる。 *参考 [#yc5f3131] -Azure Event GridでBlobイベントを拾う | re-imagine~ https://torumakabe.github.io/post/azure_blobevent/ -MicrosoftがAzure Event Gridを提供開始、イベント処理を統合化~ https://www.infoq.com/jp/news/2017/09/azure-event-grid/ -Azure Event Grid vs. Event Hubs~ https://www.cognizantsoftvision.com/blog/azure-event-grid-vs-event-hubs/ **Qiita [#o40b110d] https://qiita.com/tags/eventgrid -AzureEventGridを触ってみた~ https://qiita.com/uzresk/items/d1cd31ed451ad205de64 -EventGrid のフィルタを試してみる~ https://qiita.com/TsuyoshiUshio@github/items/b0ce40e38c19b3aa4bc0 **microsoft.com [#w79a2e6b] ***Microsoft Azure [#m702fb66] -Azure Event Grid – イベント ハンドリング~ https://azure.microsoft.com/ja-jp/services/event-grid/ ***Microsoft Docs [#m268f03c] -Azure Event Grid --Azure Event Grid のドキュメント~ https://docs.microsoft.com/ja-jp/azure/event-grid/ --Azure Event Grid とは~ https://docs.microsoft.com/ja-jp/azure/event-grid/overview --Azure Event Grid の概念~ https://docs.microsoft.com/ja-jp/azure/event-grid/concepts ---- Tags: [[:クラウド]], [[:IoT]], [[:Azure]]