Azure Event Grid イベント スキーマAzure Event Grid event schema

この記事では、すべてのイベントに存在するプロパティとスキーマについて説明します。This article describes the properties and schema that are present for all events. イベントは、5 つの必須文字列プロパティと 1 つの必須データ オブジェクトで構成されます。 Events consist of a set of five required string properties and a required data object. プロパティは、すべてのイベントに共通であり、発行元を問いません。The properties are common to all events from any publisher. データ オブジェクトには、各発行元に固有のプロパティが含まれています。The data object has properties that are specific to each publisher. システム トピックの場合、これらのプロパティは、リソース プロバイダー (Azure Storage や Azure Event Hubs など) に固有です。For system topics, these properties are specific to the resource provider, such as Azure Storage or Azure Event Hubs.

イベント ソースは、複数のイベント オブジェクトを含めることができる配列で Azure Event Grid にイベントを送信します。Event sources send events to Azure Event Grid in an array, which can have several event objects. Event Grid トピックへイベントを送信する際の、配列の合計サイズの上限は 1 MB です。When posting events to an event grid topic, the array can have a total size of up to 1 MB. 配列内の各イベントは 64 KB (一般提供) または 1 MB (プレビュー) に制限されます。Each event in the array is limited to 64 KB (General Availability) or 1 MB (preview). イベントまたは配列がサイズ制限を超えた場合は、 [413 ペイロードが大きすぎます] という応答を受信します。If an event or the array is greater than the size limits, you receive the response 413 Payload Too Large.

注意

一般提供 (GA) のサービス レベル アグリーメント (SLA) では、最大 64 KB のサイズのイベントが有効範囲に含まれます。An event of size up to 64 KB is covered by General Availability (GA) Service Level Agreement (SLA). 最大 1 MB のサイズのイベントのサポートは現在、プレビュー段階です。The support for an event of size up to 1 MB is currently in preview. 64 KB を超えるイベントは、64 KB の増分単位で課金されます。Events over 64 KB are charged in 64-KB increments.

Event Grid は、1 つのイベントを含む配列でサブスクライバーにイベントを送信します。Event Grid sends the events to subscribers in an array that has a single event. この動作は、今後変更される可能性があります。This behavior may change in the future.

Event Grid イベントおよび各 Azure パブリッシャーのデータ ペイロードの JSON スキーマは、イベント スキーマ ストアにあります。You can find the JSON schema for the Event Grid event and each Azure publisher's data payload in the Event Schema store.

イベント スキーマEvent schema

すべてのイベント発行元に使用されているプロパティの例を次に示します。The following example shows the properties that are used by all event publishers:

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

たとえば、Azure BLOB ストレージ イベントに対して次のようなスキーマが発行されます。For example, the schema published for an Azure Blob storage event is:

[
  {
    "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/xstoretestaccount",
    "subject": "/blobServices/default/containers/oc2d2817345i200097container/blobs/oc2d2817345i20002296blob",
    "eventType": "Microsoft.Storage.BlobCreated",
    "eventTime": "2017-06-26T18:41:00.9584103Z",
    "id": "831e1650-001e-001b-66ab-eeb76e069631",
    "data": {
      "api": "PutBlockList",
      "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
      "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
      "eTag": "0x8D4BCC2E4835CD0",
      "contentType": "application/octet-stream",
      "contentLength": 524288,
      "blobType": "BlockBlob",
      "url": "https://oc2d2817345i60006.blob.core.windows.net/oc2d2817345i200097container/oc2d2817345i20002296blob",
      "sequencer": "00000000000004420000000000028963",
      "storageDiagnostics": {
        "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
      }
    },
    "dataVersion": "",
    "metadataVersion": "1"
  }
]

イベントのプロパティEvent properties

すべてのイベントには、次の同じ最上位レベルのデータが含まれています。All events have the same following top-level data:

プロパティProperty TypeType 説明Description
topictopic stringstring イベント ソースの完全なリソース パス。Full resource path to the event source. このフィールドは書き込み可能ではありません。This field isn't writeable. この値は Event Grid によって指定されます。Event Grid provides this value.
subjectsubject stringstring 発行元が定義したイベントの対象のパス。Publisher-defined path to the event subject.
eventTypeeventType stringstring このイベント ソース用に登録されたイベントの種類のいずれか。One of the registered event types for this event source.
eventTimeeventTime stringstring プロバイダーの UTC 時刻に基づくイベントの生成時刻。The time the event is generated based on the provider's UTC time.
idid stringstring イベントの一意識別子。Unique identifier for the event.
datadata objectobject リソース プロバイダーに固有のイベント データ。Event data specific to the resource provider.
dataVersiondataVersion stringstring データ オブジェクトのスキーマ バージョン。The schema version of the data object. スキーマ バージョンは発行元によって定義されます。The publisher defines the schema version.
metadataVersionmetadataVersion stringstring イベント メタデータのスキーマ バージョン。The schema version of the event metadata. 最上位プロパティのスキーマは Event Grid によって定義されます。Event Grid defines the schema of the top-level properties. この値は Event Grid によって指定されます。Event Grid provides this value.

データ オブジェクトのプロパティの詳細については、イベント ソースを参照してください。To learn about the properties in the data object, see the event source:

カスタム トピックの場合、イベントの発行元がデータ オブジェクトを決定します。For custom topics, the event publisher determines the data object. 最上位レベルのデータには、リソースによって定義された標準のイベントと同じフィールドを含める必要があります。The top-level data should have the same fields as standard resource-defined events.

イベントをカスタム トピックに発行する場合は、サブスクライバーがそのイベントに関心があるかどうかを簡単に知ることができるイベントの件名を作成してください。When publishing events to custom topics, create subjects for your events that make it easy for subscribers to know whether they're interested in the event. サブスクライバーは、その件名を使用してイベントをフィルター処理したり、ルーティングしたりします。Subscribers use the subject to filter and route events. そのイベントが発生したパスを示すことにより、サブスクライバーがそのパスのセグメントでフィルター処理できるように考慮してください。Consider providing the path for where the event happened, so subscribers can filter by segments of that path. このパスにより、サブスクライバーはイベントを狭く、または幅広くフィルター処理できます。The path enables subscribers to narrowly or broadly filter events. たとえば、/A/B/C のように件名に 3 つのセグメント パスを示した場合、サブスクライバーは最初のセグメント /A でフィルター処理して幅広い一連のイベントを取得できます。For example, if you provide a three segment path like /A/B/C in the subject, subscribers can filter by the first segment /A to get a broad set of events. これらのサブスクライバーは、/A/B/C/A/D/E などの件名を持つイベントを取得します。Those subscribers get events with subjects like /A/B/C or /A/D/E. 他のサブスクライバーは、/A/B でフィルター処理して、より狭い一連のイベントを取得できます。Other subscribers can filter by /A/B to get a narrower set of events.

件名に、何が起こったかに関するより詳細な情報が必要になる場合があります。Sometimes your subject needs more detail about what happened. たとえば、コンテナーにファイルが追加された場合、ストレージ アカウント パブリッシャーは件名 /blobServices/default/containers/<container-name>/blobs/<file> を指定します。For example, the Storage Accounts publisher provides the subject /blobServices/default/containers/<container-name>/blobs/<file> when a file is added to a container. サブスクライバーはパス /blobServices/default/containers/testcontainer でフィルター処理することにより、ストレージ アカウント内の他のコンテナーではなく、そのコンテナーのすべてのイベントを取得できます。A subscriber could filter by the path /blobServices/default/containers/testcontainer to get all events for that container but not other containers in the storage account. サブスクライバーはまた、テキスト ファイルのみを操作するために、サフィックス .txt でフィルター処理またはルーティングすることもできます。A subscriber could also filter or route by the suffix .txt to only work with text files.

次の手順Next steps