events
Azure Event Grid とは
Azure Event Grid は、MQTT および HTTP プロトコルを使用した柔軟なメッセージ消費パターンを提供する、スケーラブルでフル マネージドの 発行/サブスクライブ メッセージ配信サービスです。 Azure Event Grid を使用すると、デバイス データを使用したデータ パイプラインの構築、アプリケーションの統合、イベントドリブン サーバーレス アーキテクチャの構築を行うことができます。
Event Grid により、クライアントは MQTT v3.1.1 および v5.0 プロトコルを介してメッセージを発行およびサブスクライブして、モノのインターネット (IoT) ソリューションをサポートできます。 Event Grid を使用すると、HTTP を介して、パブリッシャー サービスがそのシステム状態の変更 (イベント) をサブスクライバー アプリケーションに通知するイベント ドリブン ソリューションを構築できます。 サブスクライバーにイベントを送信するように Event Grid を構成できます (プッシュ配信)。または、サブスクライバーを Event Grid に接続してイベントを読み取ることができます (プル配信)。 Event Grid では、CloudEvents 1.0 の仕様がサポートされており、システム間の相互運用性が提供されます。
Azure Event Grid の主要な機能は次の 2 つです。
MQTT メッセージング。 IoT デバイスとアプリケーションは、MQTT を介して相互に通信できます。 Event Grid を使用して MQTT メッセージを Azure サービスまたはカスタム エンドポイントにルーティングし、さらにデータ分析、視覚化、またはストレージを行うこともできます。 この Azure サービスとの統合により、IoT デバイスからのデータ インジェストから始まるデータ パイプラインを構築できます。
プッシュおよびプル配信モードを使用したデータ配信。 データ パイプライン内の任意の時点で、HTTP アプリケーションはプッシュまたはプル API を使用してメッセージを使用できます。 データのソースには MQTT クライアントのデータが含まれる場合がありますが、HTTP 経由でイベントを送信する次のデータ ソースも含まれます。
- Azure サービス
- カスタム アプリケーション
- 外部パートナー (SaaS) システム
Event Grid のプッシュ配信メカニズムは、独自のアプリケーション Webhook と Azure サービスを含む宛先にデータを送信します。 これら 2 つの機能を詳しく見ていきます。
Event Grid を使用すると、発行/サブスクライブ メッセージング モデルを使用して、クライアントがカスタム MQTT トピック名で通信できます。 Event Grid では、MQTT v3.1.1、MQTT v3.1.1 over WebSocket、MQTT v5、MQTT v5 over WebSocket を介してメッセージを発行およびサブスクライブするクライアントがサポートされています。 Event Grid を使用すると、特にデータ分析、ストレージ、視覚化などのユース ケースにおいて MQTT メッセージをクラウドに送信できます。
Event Grid は Azure IoT Operations と統合して、エッジ上のその MQTT ブローカー機能と、クラウド内の Event Grid の MQTT ブローカー機能の橋渡しをします。 Azure IoT MQTT ブローカーはエッジ コンピューティング用の新しい分散 MQTT ブローカーであり、Arc 対応 Kubernetes クラスターで実行されます。 Azure IoT Operations の一部としてパブリック プレビューで使用できるようになりました。
Azure Event Grid の MQTT ブローカー機能は、自動車やモビリティのシナリオの実装などに最適です。 Azure のメッセージングおよびデータ分析サービスを使用して、何百万台もの車両をクラウドに接続するためのセキュリティで保護されたスケーラブルなソリューションを構築する方法については、リファレンス アーキテクチャに関するページを参照してください。
Azure Event Grid での MQTT メッセージングのサポートには、次のようないくつかの特徴があります。
- MQTT v3.1.1 と MQTT v5.0 のサポート - オープン ソースの MQTT クライアント ライブラリを使用してサービスと通信します。
- ワイルドカードを含むカスタム トピックのサポート: 独自のトピック構造を使います。
- 発行-サブスクライブ メッセージング モデル - 一対多、多対一、一対一のメッセージング パターンを使用して効率的に通信します。
- 組み込みのクラウド統合 - さらに処理を行うために、MQTT メッセージを Azure サービスまたはカスタム Webhook にルーティングします。
- 柔軟できめ細かいアクセス制御モデル: クライアントとトピックをグループ化してアクセス制御の管理を簡素化し、トピック テンプレートでの変数サポートを使用してきめ細かいアクセス制御を実現します。
- MQTT ブローカーの認証方法: X.509 証明書認証は、IoT デバイスでの認証の業界標準です。Microsoft Entra ID 認証は、アプリケーションに関する Azure での認証の標準です。OAuth 2.0 (JSON Web Token) 認証は、Azure でプロビジョニングされていない MQTT クライアントのための軽量で安全で柔軟なオプションを提供します。
- トランスポート層セキュリティ (TLS) 1.2 と TLS 1.3 のサポート: 堅牢な暗号化プロトコルを使ってクライアント通信をセキュリティ保護します。
- マルチセッションのサポート - アプリケーションを複数のアクティブなセッションに接続して、信頼性とスケーラビリティを確保します。
- MQTT over WebSocket - ファイアウォールが制限された環境でクライアントの接続を可能にします。
- カスタム ドメイン名 - ユーザーが Event Grid 名前空間の MQTT エンドポイントに独自のドメイン名を割り当てることが可能になるため、セキュリティが強化され、クライアント構成が簡素化されます。
- クライアント ライフ サイクル イベント - アプリケーションがクライアントの接続ステータスまたはクライアント リソースの操作に関するイベントに反応できるようになります。
MQTT ブローカーについて詳しくは、次の記事をご覧ください。
- 概要
- MQTT メッセージの発行とサブスクライブ
- チュートリアル: 名前空間トピックを使用して MQTT メッセージを Azure Event Hubs にルーティングする
- チュートリアル: カスタム トピックを使用して MQTT メッセージを Azure Functions にルーティングする
Event Grid は、HTTP を使用してプッシュとプルのイベント配信をサポートしています。 プッシュ配信では、Event Grid がイベントを送信する宛先をイベント サブスクリプションで定義します。 プル配信では、サブスクライバー アプリケーションは Event Grid に接続してイベントを使用します。 プル配信は、Event Grid 名前空間内のトピックでサポートされています。
プッシュ配信でのイベント サブスクリプションは汎用構成リソースであり、プッシュ配信を使ってイベントを送信する対象のイベント ハンドラーまたは宛先を定義できます。 たとえば、Webhook、Azure Function、または Event Hubs にデータを送信できます。 サポートされているイベント ハンドラーの一覧については、次を参照してください。
- 名前空間トピックでサポートされるイベント ハンドラー。
- カスタム、システム、ドメイン、およびパートナーのトピックでサポートされるイベント ハンドラー。
どのような場合にプル配信またはプッシュ配信を使用するかを決定するのに役立つ一般的なガイドラインを次に示します。
- イベントを受信するタイミングを完全に制御する必要があるとき。 たとえば、アプリケーションが常に稼働していないか、十分に安定していないか、特定の時間にデータを処理する場合があります。
- イベントの消費を完全に制御する必要があるとき。 たとえば、コンシューマー アプリケーションのダウンストリーム サービスまたはレイヤーに、イベントの処理を妨げる問題が発生する場合があります。 その場合、プル配信 API を使用すると、コンシューマー アプリが既に読み取ったイベントを後で配信できるように、ブローカーに戻すことができます。
- イベントを受信するときにプライベート リンクを使用する必要があり、これはプッシュ配信ではなく、プル配信でのみ可能です。
- エンドポイントを公開してプッシュ配信を使用する機能はありませんが、Event Grid に接続してイベントを消費できます。
- システム状態の変化が発生したことを判別するための定期的なポーリングを回避する必要がある。 Event Grid を使用して、状態の変化が発生した時点でイベントを送信するようにできます。
- 送信呼び出しを行うことができないアプリケーションがあるとき。 たとえば、組織がデータ流出を懸念している場合があります。 ただし、アプリケーションはパブリック エンドポイントを経由でイベントを受信できます。
HTTP モデルには次のようないくつかの特徴があります。
- 柔軟なイベント消費モデル – HTTP を使用する場合は、プルまたはプッシュ配信モードを使用してイベントを消費します。
- システム イベント – 組み込みの Azure サービス イベントを使用してすばやく起動および実行します。
- 独自のアプリケーション イベント - Event Grid を使用して、ルーティングとフィルター処理を行い、信頼性の高い方法でアプリからカスタム イベントを配信します。
- パートナー イベント - パートナー SaaS プロバイダー イベントをサブスクライブし、Azure で処理します。
- 高度なフィルター処理 – イベントの種類やその他のイベント属性でフィルター処理して、イベント ハンドラーまたはコンシューマー アプリが関連するイベントのみを受け取るようにします。
- 信頼性 – プッシュ配信は、エクスポネンシャル バックオフを使用した 24 時間の再試行メカニズムを備え、イベントが確実に配信されるようにします。 プル配信を使用すると、アプリケーションでイベントの消費を完全に制御できます。
- 高スループット - Event Grid を使用して、大量の統合ソリューションを構築します。
- カスタム ドメイン名 - ユーザーが Event Grid 名前空間の HTTP エンドポイントに独自のドメイン名を割り当てることが可能になるため、セキュリティが強化され、クライアント構成が簡素化されます。
詳細については、次の記事をご覧ください。
- プル配信の概要。
- プッシュ配信の概要。
- 概念
- クイックスタート: 名前空間トピックを使用してアプリ イベントを発行およびサブスクライブする。
Azure Event Grid を使用できるユース ケースの一覧については、「ユース ケース」をご覧ください
新しい MQTT ブローカーと名前空間トピックの機能が利用できるリージョンの一覧を次に示します。
リージョン | Region | Region | リージョン |
---|---|---|---|
オーストラリア東部 | オーストラリア東南部 | オーストラリア中部 | オーストラリア中部 2 |
ブラジル南部 | ブラジル南東部 | カナダ中部 | カナダ東部 |
インド中部 | 米国中部 | 東アジア | 米国東部 |
米国東部 2 | 米国西部 | フランス中部 | フランス南部 |
ドイツ北部 | ドイツ中西部 | イスラエル中部 | イタリア北部 |
東日本 | 西日本 | 韓国中部 | 韓国南部 |
メキシコ中部 | 米国中北部 | 北ヨーロッパ | ノルウェー東部 |
ポーランド中部 | 南アフリカ西部 | 南アフリカ北部 | 米国中南部 |
インド南部 | 東南アジア | スペイン中部 | スウェーデン中部 |
スウェーデン南部 | スイス北部 | スイス西部 | アラブ首長国連邦北部 |
アラブ首長国連邦中部 | 英国南部 | 英国西部 | 西ヨーロッパ |
米国西部 2 | 米国西部 3 | 米国中西部 |
その他のリソース
トレーニング
認定資格
Microsoft Certified: Azure Fundamentals - Certifications
クラウドの概念、Azure のコア サービス、および Azure の管理とガバナンスの機能とツールに関する基本的な知識を示します。