Azure Event Grid での CloudEvents v1.0 スキーマ
Azure Event Grid は、CloudEvents v1.0 および HTTP プロトコル バインディングの JSON 実装のイベントをネイティブでサポートします。 CloudEvents は、イベント データを記述するためのオープンな仕様です。
CloudEvents を使用すると、クラウド ベースのイベントを発行したり使用したりするための共通のイベント スキーマを提供し、相互運用性を簡略化することができます。 このスキーマを使用すれば、ツールを統一化したり、イベントのルーティングや処理方法を標準化したり、外部のイベント スキーマを共通の方法で逆シリアル化することができます。 共通のスキーマを使用することで、プラットフォーム間での作業をより簡単に統合できます。
CloudEvents は、Cloud Native Computing Foundation を通じ、複数のコラボレーター (マイクロソフトを含む) によって構築されています。 現在、バージョン 1.0 が提供されています。
この記事では、Event Grid での CloudEvents スキーマについて説明します。
CloudEvents スキーマを使用したサンプル イベント
次に示すのは、CloudEvents 形式の Azure Blob Storage イベントの例です。
{
"specversion": "1.0",
"type": "Microsoft.Storage.BlobCreated",
"source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account}",
"id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
"time": "2019-11-18T15:13:39.4589254Z",
"subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",
"data": {
"api": "PutBlockList",
"clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
"requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
"eTag": "0x8D76C39E4407333",
"contentType": "image/png",
"contentLength": 30699,
"blobType": "BlockBlob",
"url": "https://gridtesting.blob.core.windows.net/testcontainer/{new-file}",
"sequencer": "000000000000000000000000000099240000000000c41c18",
"storageDiagnostics": {
"batchId": "681fe319-3006-00a8-0022-9e7cde000000"
}
}
}
CloudEvents v1.0 で使用できるフィールド、その種類、定義の詳細については、こちらを参照してください。
CloudEvents スキーマと Event Grid スキーマで配信されるイベントのヘッダー値は同じです (content-type
を除く)。 CloudEvents スキーマの場合、そのヘッダー値は "content-type":"application/cloudevents+json; charset=utf-8"
です。 Event Grid スキーマの場合、そのヘッダー値は "content-type":"application/json; charset=utf-8"
です。
CloudEvents 用の Event Grid
Event Grid は、CloudEvents スキーマ内のイベントの入力と出力の両方に使用できます。 CloudEvents は、システム イベント (Blob Storage イベントや IoT Hub イベントなど) とカスタム イベントに使用できます。 Event Grid では、CloudEvents のサポートに加えて、拡張不能だが完全に機能する独自の Event Grid イベント形式がサポートされています。 次の表では、CloudEvents と Event Grid の形式をトピックの入力スキーマとして、およびイベント サブスクリプションの出力スキーマとして使用する場合にサポートされる変換について説明します。 CloudEvents は Event Grid スキーマではサポートされていない拡張属性をサポートしているため、入力スキーマとして CloudEvents を使用する場合は、Event Grid 出力スキーマを使用できません。
入力スキーマ | 出力スキーマ |
---|---|
CloudEvents 形式 | CloudEvents 形式 |
Event Grid 形式 | CloudEvents 形式 |
Event Grid 形式 | Event Grid 形式 |
いずれのイベント スキーマについても、Event Grid では、Event Grid トピックへの発行時やイベント サブスクリプションの作成時に検証が必要です。 詳細については、「Event Grid security and authentication」(Event Grid のセキュリティと認証) を参照してください。
次のステップ
「Event Grid に CloudEvents v1.0 スキーマを使用する」を参照してください。