「[[マイクロソフト系技術情報 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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS