Event Grid ソースとしての Azure Blob Storage
この記事では、Blob Storage イベントのプロパティとスキーマについて説明します。 イベント スキーマの概要については、「Azure Event Grid イベント スキーマ」を参照してください。 また、Azure Blob Storage をイベント ソースとして使用するためのクイック スタートとチュートリアルの一覧も示されています。
Note
イベントの統合をサポートしているのは、StorageV2 (汎用 v2) 、BlockBlobStorage、および BlobStorage の種類のストレージ アカウントだけです。 Storage (汎用 v1) では、Event Grid との統合はサポート "されていません"。
使用可能なイベントの種類
Blob Storage のイベント
これらのイベントは、クライアントが BLOB REST API を呼び出して BLOB を作成、置換、または削除するときにトリガーされます。
Note
$logs
と $blobchangefeed
コンテナーは Event Grid と統合されていないため、これらのコンテナーのアクティビティからはイベントは生成されません。 また、非階層型名前空間に対応するアカウントに対して dfs エンドポイント (abfss://URI)
を使用しても、イベントは生成されませんが、BLOB エンドポイント (wasb:// URI)
ではイベントが生成されます。
イベント名 | 説明 |
---|---|
Microsoft.Storage.BlobCreated | BLOB が作成または置換されたときにトリガーされます。 具体的には、このイベントは、BLOB REST API で使用可能な PutBlob 、PutBlockList 、または CopyBlob 操作をクライアントが使用し、なおかつブロック BLOB が完全にコミットされたときにトリガーされます。 クライアントが、階層型名前空間機能が有効になっているアカウントで CopyBlob 操作を使用した場合は、CopyBlob 操作の動作が少し異なります。 その場合、 Microsoft.Storage.BlobCreated イベントは、ブロック BLOB が完全にコミットされたときではなく、CopyBlob 操作が開始されたときにトリガーされます。 |
Microsoft.Storage.BlobDeleted | BLOB が削除されたときにトリガーされます。 具体的には、クライアントが BLOB REST API で使用可能な DeleteBlob 操作を呼び出した場合に、このイベントがトリガーされます。 |
Microsoft.Storage.BlobTierChanged | BLOB のアクセス層が変更されたときにトリガーされます。 具体的には、BLOB REST API で使用可能な Set Blob Tier 操作をクライアントが呼び出したときに、層の変更が完了すると、このイベントがトリガーされます。 |
Microsoft.Storage.AsyncOperationInitiated | アーカイブ層からホット層またはクール層へのデータの移動またはコピーを伴う操作が開始されたときにトリガーされます。 具体的には、クライアントが Set Blob Tier API を呼び出して、アーカイブ層からホット層またはクール層に BLOB を移動するとき、またはクライアントが Copy Blob API を呼び出して、アーカイブ層の BLOB からホット層またはクール層の BLOB にデータをコピーするときに、このイベントがトリガーされます。 |
イベントの例
Microsoft.Storage.BlobCreated イベント
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/test-container/blobs/new-file.txt",
"type": "Microsoft.Storage.BlobCreated",
"time": "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": "text/plain",
"contentLength": 524288,
"blobType": "BlockBlob",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.BlobDeleted イベント
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/file-to-delete.txt",
"type": "Microsoft.Storage.BlobDeleted",
"time": "2017-11-07T20:09:22.5674003Z",
"id": "4c2359fe-001e-00ba-0e04-58586806d298",
"data": {
"api": "DeleteBlob",
"requestId": "4c2359fe-001e-00ba-0e04-585868000000",
"contentType": "text/plain",
"blobType": "BlockBlob",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/file-to-delete.txt",
"sequencer": "0000000000000281000000000002F5CA",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.BlobTierChanged イベント
{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/Auto.jpg",
"type": "Microsoft.Storage.BlobTierChanged",
"time": "2021-05-04T15:00:00.8350154Z",
"id": "0fdefc06-b01e-0034-39f6-4016610696f6",
"data": {
"api": "SetBlobTier",
"clientRequestId": "68be434c-1a0d-432f-9cd7-1db90bff83d7",
"requestId": "0fdefc06-b01e-0034-39f6-401661000000",
"contentType": "image/jpeg",
"contentLength": 105891,
"blobType": "BlockBlob",
"accessTier": "Archive",
"previousTier": "Cool",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/Auto.jpg",
"sequencer": "000000000000000000000000000089A4000000000018d6ea",
"storageDiagnostics": {
"batchId": "3418f7a9-7006-0014-00f6-406dc6000000"
}
},
"specversion": "1.0"
}
Microsoft.Storage.AsyncOperationInitiated イベント
{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/00000.avro",
"type": "Microsoft.Storage.AsyncOperationInitiated",
"time": "2021-05-04T14:44:59.3204652Z",
"id": "8ea4e3f2-101e-003d-5ff4-4053b2061016",
"data": {
"api": "SetBlobTier",
"clientRequestId": "777fb4cd-f890-4c5b-b024-fb47300bae62",
"requestId": "8ea4e3f2-101e-003d-5ff4-4053b2000000",
"contentType": "application/octet-stream",
"contentLength": 3660,
"blobType": "BlockBlob",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/00000.avro",
"sequencer": "000000000000000000000000000089A4000000000018c6d7",
"storageDiagnostics": {
"batchId": "34128c8a-7006-0014-00f4-406dc6000000"
}
},
"specversion": "1.0"
}
Data Lake Storage Gen 2 イベント
ストレージ アカウントの階層型名前空間を有効にした状態で、クライアントが Azure Data Lake Storage Gen2 REST API を使用すると、これらのイベントがトリガーされます。 Azure Data Lake Storage Gen2 の詳細については、「Azure Data Lake Storage Gen2 の概要」を参照してください。
イベント名 | 説明 |
---|---|
Microsoft.Storage.BlobCreated | BLOB が作成または置換されたときにトリガーされます。 具体的には、クライアントが Azure Data Lake Storage Gen2 REST API で使用可能な CreateFile および FlushWithClose 操作を使用した場合に、このイベントがトリガーされます。 |
Microsoft.Storage.BlobDeleted | BLOB が削除されたときにトリガーされます。 具体的には、クライアントが Azure Data Lake Storage Gen2 REST API で使用可能な DeleteFile 操作を呼び出した場合に、このイベントもトリガーされます。 |
Microsoft.Storage.BlobRenamed | BLOB の名前が変更されたときにトリガーされます。 具体的には、クライアントが Azure Data Lake Storage Gen2 REST API で使用可能な RenameFile 操作を使用した場合に、このイベントがトリガーされます。 |
Microsoft.Storage.DirectoryCreated | ディレクトリが作成されたときにトリガーされます。 具体的には、クライアントが Azure Data Lake Storage Gen2 REST API で使用可能な CreateDirectory 操作を使用した場合に、このイベントがトリガーされます。 |
Microsoft.Storage.DirectoryRenamed | ディレクトリの名前が変更されたときにトリガーされます。 具体的には、クライアントが Azure Data Lake Storage Gen2 REST API で使用可能な RenameDirectory 操作を使用した場合に、このイベントがトリガーされます。 |
Microsoft.Storage.DirectoryDeleted | ディレクトリが削除されたときにトリガーされます。 具体的には、クライアントが Azure Data Lake Storage Gen2 REST API で使用可能な DeleteDirectory 操作を使用した場合に、このイベントがトリガーされます。 |
Note
Azure Data Lake Storage Gen2 の場合、ブロック BLOB が完全にコミットされた場合に限り Microsoft.Storage.BlobCreated イベントがトリガーされるようにするには、FlushWithClose
REST API 呼び出しのイベントをフィルター処理します。 データがブロック BLOB に完全にコミットされた後でのみ、この API によって Microsoft.Storage.BlobCreated イベントがトリガーされます。 フィルターの作成方法の詳細については、「Event Grid のイベントのフィルター処理」をご覧ください。
イベントの例
Microsoft.Storage.BlobCreated イベント (Data Lake Storage Gen2)
BLOB ストレージ アカウントに階層型名前空間がある場合、これらの変更点を除き、データは前の例と同じようになります。
data.api
キーは文字列CreateFile
またはFlushWithClose
に設定されます。contentOffset
キーはデータセットに含まれます。
Note
アプリケーションが PutBlockList
操作を使用してアカウントに新しい BLOB をアップロードする場合、データにこれらの変更は含まれません。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/new-file.txt",
"type": "Microsoft.Storage.BlobCreated",
"time": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "CreateFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "\"0x8D4BCC2E4835CD0\"",
"contentType": "text/plain",
"contentLength": 0,
"contentOffset": 0,
"blobType": "BlockBlob",
"url": "https://my-storage-account.dfs.core.windows.net/my-file-system/new-file.txt",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.BlobDeleted イベント (Data Lake Storage Gen2)
BLOB ストレージ アカウントに階層型名前空間がある場合、これらの変更点を除き、データは前の例と同じようになります。
data.api
キーは文字列DeleteFile
に設定されます。url
キーはパスdfs.core.windows.net
を含みます。
Note
アプリケーションが DeleteBlob
操作を使用してアカウントから BLOB を削除する場合、データにこれらの変更は含まれません。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/file-to-delete.txt",
"type": "Microsoft.Storage.BlobDeleted",
"time": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "DeleteFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"contentType": "text/plain",
"blobType": "BlockBlob",
"url": "https://my-storage-account.dfs.core.windows.net/my-file-system/file-to-delete.txt",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.BlobRenamed イベント (Data Lake Storage Gen2)
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/my-renamed-file.txt",
"type": "Microsoft.Storage.BlobRenamed",
"time": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "RenameFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"destinationUrl": "https://my-storage-account.dfs.core.windows.net/my-file-system/my-renamed-file.txt",
"sourceUrl": "https://my-storage-account.dfs.core.windows.net/my-file-system/my-original-file.txt",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.DirectoryCreated イベント (Data Lake Storage Gen2)
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/my-new-directory",
"type": "Microsoft.Storage.DirectoryCreated",
"time": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "CreateDirectory",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"url": "https://my-storage-account.dfs.core.windows.net/my-file-system/my-new-directory",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.DirectoryRenamed イベント (Data Lake Storage Gen2)
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/my-renamed-directory",
"type": "Microsoft.Storage.DirectoryRenamed",
"time": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "RenameDirectory",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"destinationUrl": "https://my-storage-account.dfs.core.windows.net/my-file-system/my-renamed-directory",
"sourceUrl": "https://my-storage-account.dfs.core.windows.net/my-file-system/my-original-directory",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.DirectoryDeleted イベント (Data Lake Storage Gen2)
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/directory-to-delete",
"type": "Microsoft.Storage.DirectoryDeleted",
"time": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "DeleteDirectory",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"url": "https://my-storage-account.dfs.core.windows.net/my-file-system/directory-to-delete",
"recursive": "true",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
SFTP イベント
ストレージ アカウントの階層型名前空間を有効にした状態で、クライアントによって SFTP API が使用されると、これらのイベントがトリガーされます。 Azure Blob Storage での SFTP のサポートの詳細については、「Azure Blob Storage での SSH ファイル転送プロトコル (SFTP)」を参照してください。
イベント名 | 説明 |
---|---|
Microsoft.Storage.BlobCreated | BLOB が作成または上書きされたときにトリガーされます。 具体的には、このイベントは、クライアントで put 操作が使用されるときにトリガーされます。これは、SftpCreate と SftpCommit API に対応します。 ファイルを開くと空の BLOB が作成され、ファイルが閉じられたときにアップロードされた内容がコミットされます。 SFTP Resumable Uploads プレビュー機能が有効になっている場合、アップロードの間にいくつかの SftpWrite イベントもトリガーされます。 |
Microsoft.Storage.BlobDeleted | BLOB が削除されたときにトリガーされます。 具体的には、このイベントは、クライアントで SftpRemove API に対応する rm 操作が呼び出されたときにもトリガーされます。 |
Microsoft.Storage.BlobRenamed | BLOB の名前が変更されたときにトリガーされます。 具体的には、このイベントは、クライアントで SftpRename API に対応する rename 操作がファイルに対して使用されたときにトリガーされます。 |
Microsoft.Storage.DirectoryCreated | ディレクトリが作成されたときにトリガーされます。 具体的には、このイベントは、クライアントで SftpMakeDir API に対応する mkdir 操作が使用されたときにトリガーされます。 |
Microsoft.Storage.DirectoryRenamed | ディレクトリの名前が変更されたときにトリガーされます。 具体的には、このイベントは、クライアントで SftpRename API に対応する rename 操作がディレクトリに対して使用されたときにトリガーされます。 |
Microsoft.Storage.DirectoryDeleted | ディレクトリが削除されたときにトリガーされます。 具体的には、このイベントは、クライアントで SftpRemoveDir API に対応する rmdir 操作が使用されたときにトリガーされます。 |
イベントの例
イベントがトリガーされると、Event Grid サービスにより、そのイベントに関するデータがサブスクライブしているエンドポイントに送信されます。 このセクションには、各 BLOB ストレージ イベントでそのデータがどのように見えるかの例が含まれています。
Microsoft.Storage.BlobCreated イベント (SFTP)
BLOB ストレージ アカウントで BLOB を作成または上書きする際に SFTP を使用する場合、これらの変更点を除き、データは前の例と同じようになります。
dataVersion
キーは値3
に設定されます。data.api
キーは、文字列SftpCreate
、SftpWrite
、またはSftpCommit
に設定されます。clientRequestId
キーは含まれていません。contentType
キーはapplication/octet-stream
に設定されています。contentOffset
キーはデータセットに含まれます。identity
キーはデータセットに含まれます。 これは、SFTP 認証に使用されるローカル ユーザーに対応します。
Note
SFTP アップロードでは、2 つのイベントが生成されます。 ファイルを開くときに作成される最初の空の BLOB に対する 1 つの SftpCreate
と、アップロードの最後にファイルの内容がコミットされるときの 1 つの SftpCommit
。 SFTP Resumable Uploads
プレビュー機能が有効になっている場合、アップロードの間にいくつかの SftpWrite
イベントもトリガーされます。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/new-file.txt",
"type": "Microsoft.Storage.BlobCreated",
"time": "2022-04-25T19:13:00.1522383Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "SftpCommit",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "\"0x8D4BCC2E4835CD0\"",
"contentType": "application/octet-stream",
"contentLength": 0,
"contentOffset": 0,
"blobType": "BlockBlob",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
"sequencer": "00000000000004420000000000028963",
"identity":"localuser",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.BlobDeleted イベント (SFTP)
BLOB ストレージ アカウントで BLOB を削除する際に SFTP を使用する場合、これらの変更点を除き、データは前の例と同じようになります。
dataVersion
キーは値2
に設定されます。data.api
キーは文字列SftpRemove
に設定されます。clientRequestId
キーは含まれていません。contentType
キーはapplication/octet-stream
に設定されています。identity
キーはデータセットに含まれます。 これは、SFTP 認証に使用されるローカル ユーザーに対応します。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/new-file.txt",
"type": "Microsoft.Storage.BlobDeleted",
"time": "2022-04-25T19:13:00.1522383Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "SftpRemove",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"contentType": "text/plain",
"blobType": "BlockBlob",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
"sequencer": "00000000000004420000000000028963",
"identity":"localuser",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.BlobRenamed イベント (SFTP)
BLOB ストレージ アカウントで BLOB に名前を変更する際に SFTP を使用する場合、これらの変更点を除き、データは前の例と同じようになります。
data.api
キーは文字列SftpRename
に設定されます。clientRequestId
キーは含まれていません。identity
キーはデータセットに含まれます。 これは、SFTP 認証に使用されるローカル ユーザーに対応します。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/my-renamed-file.txt",
"type": "Microsoft.Storage.BlobRenamed",
"time": "2022-04-25T19:13:00.1522383Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "SftpRename",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"destinationUrl": "https://my-storage-account.blob.core.windows.net/testcontainer/my-renamed-file.txt",
"sourceUrl": "https://my-storage-account.blob.core.windows.net/testcontainer/my-original-file.txt",
"sequencer": "00000000000004420000000000028963",
"identity":"localuser",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.DirectoryCreated イベント (SFTP)
BLOB ストレージ アカウントでディレクトリを作成する際に SFTP を使用する場合、これらの変更点を除き、データは前の例と同じようになります。
dataVersion
キーは値2
に設定されます。data.api
キーは文字列SftpMakeDir
に設定されます。clientRequestId
キーは含まれていません。identity
キーはデータセットに含まれます。 これは、SFTP 認証に使用されるローカル ユーザーに対応します。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/my-new-directory",
"type": "Microsoft.Storage.DirectoryCreated",
"time": "2022-04-25T19:13:00.1522383Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "SftpMakeDir",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/my-new-directory",
"sequencer": "00000000000004420000000000028963",
"identity":"localuser",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.DirectoryRenamed イベント (SFTP)
BLOB ストレージ アカウントでディレクトリの名前を変更する際に SFTP を使用する場合、これらの変更点を除き、データは前の例と同じようになります。
data.api
キーは文字列SftpRename
に設定されます。clientRequestId
キーは含まれていません。identity
キーはデータセットに含まれます。 これは、SFTP 認証に使用されるローカル ユーザーに対応します。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/my-renamed-directory",
"type": "Microsoft.Storage.DirectoryRenamed",
"time": "2022-04-25T19:13:00.1522383Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "SftpRename",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"destinationUrl": "https://my-storage-account.blob.core.windows.net/testcontainer/my-renamed-directory",
"sourceUrl": "https://my-storage-account.blob.core.windows.net/testcontainer/my-original-directory",
"sequencer": "00000000000004420000000000028963",
"identity":"localuser",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
Microsoft.Storage.DirectoryDeleted イベント (SFTP)
BLOB ストレージ アカウントでディレクトリを削除する際に SFTP を使用する場合、これらの変更点を除き、データは前の例と同じようになります。
data.api
キーは文字列SftpRemoveDir
に設定されます。clientRequestId
キーは含まれていません。identity
キーはデータセットに含まれます。 これは、SFTP 認証に使用されるローカル ユーザーに対応します。
[{
"source": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/directory-to-delete",
"type": "Microsoft.Storage.DirectoryDeleted",
"time": "2022-04-25T19:13:00.1522383Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "SftpRemoveDir",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/directory-to-delete",
"recursive": "false",
"sequencer": "00000000000004420000000000028963",
"identity":"localuser",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"specversion": "1.0"
}]
ポリシー関連イベント
これらのイベントは、ポリシーで定義されたアクションが実行されたときにトリガーされます。
イベント名 | 説明 |
---|---|
Microsoft.Storage.BlobInventoryPolicyCompleted | インベントリ ポリシーで定義されたルールに対してインベントリの実行が完了したときにトリガーされます。 このイベントは、インベントリの実行が開始前に失敗してユーザー エラーになった場合にも発生します。 たとえば、無効なポリシーによって、または送信先コンテナーが存在しないときに発生するエラーによって、このイベントがトリガーされます。 |
Microsoft.Storage.LifecyclePolicyCompleted | ライフサイクル管理ポリシーで定義されたアクションが実行されたときにトリガーされます。 |
イベントの例
イベントがトリガーされると、Event Grid サービスにより、そのイベントに関するデータがサブスクライブしているエンドポイントに送信されます。 このセクションには、各 BLOB ストレージ イベントでそのデータがどのように見えるかの例が含まれています。
Microsoft.Storage.BlobInventoryPolicyCompleted イベント
{
"source": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/BlobInventory/providers/Microsoft.EventGrid/topics/BlobInventoryTopic",
"subject": "BlobDataManagement/BlobInventory",
"type": "Microsoft.Storage.BlobInventoryPolicyCompleted",
"time": "2021-05-28T15:03:18Z",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"data": {
"scheduleDateTime": "2021-05-28T03:50:27Z",
"accountName": "testaccount",
"ruleName": "Rule_1",
"policyRunStatus": "Succeeded",
"policyRunStatusMessage": "Inventory run succeeded, refer manifest file for inventory details.",
"policyRunId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"manifestBlobUrl": "https://testaccount.blob.core.windows.net/inventory-destination-container/2021/05/26/13-25-36/Rule_1/Rule_1.csv"
},
"specversion": "1.0"
}
Microsoft.Storage.LifecyclePolicyCompleted イベント
{
"source": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/contosoresourcegroup/providers/Microsoft.Storage/storageAccounts/contosostorageaccount",
"subject": "BlobDataManagement/LifeCycleManagement/SummaryReport",
"type": "Microsoft.Storage.LifecyclePolicyCompleted",
"time": "2022-05-26T00:00:40.1880331",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"data": {
"scheduleTime": "2022/05/24 22:57:29.3260160",
"deleteSummary": {
"totalObjectsCount": 16,
"successCount": 14,
"errorList": ""
},
"tierToCoolSummary": {
"totalObjectsCount": 0,
"successCount": 0,
"errorList": ""
},
"tierToColdSummary": {
"totalObjectsCount": 0,
"successCount": 0,
"errorList": ""
},
"tierToArchiveSummary": {
"totalObjectsCount": 0,
"successCount": 0,
"errorList": ""
}
},
"specversion": "1.0"
}
イベントのプロパティ
イベントのトップレベルのデータを次に示します。
プロパティ | タイプ | 説明 |
---|---|---|
source |
string | イベント ソースの完全なリソース パス。 このフィールドは書き込み可能ではありません。 この値は Event Grid によって指定されます。 |
subject |
string | 発行元が定義したイベントの対象のパス。 |
type |
string | このイベント ソース用に登録されたイベントの種類のいずれか。 |
time |
string | プロバイダーの UTC 時刻に基づくイベントの生成時刻。 |
id |
string | イベントの一意識別子。 |
data |
object | Blob Storage イベントのデータ。 |
specversion |
string | CloudEvents スキーマ仕様バージョン。 |
データ オブジェクトには、次のプロパティがあります。
プロパティ | タイプ | 説明 |
---|---|---|
api |
string | イベントのトリガーとなった操作。 |
clientRequestId |
string | ストレージ API 操作に対するクライアントで提供された要求 ID です。 この ID は、ログの "client-request-id" フィールドを使って Azure Storage 診断ログに関連付けるために使うことができ、クライアント要求で "x-ms-client-request-id" ヘッダーを使って提供できます。 「Storage Analytics のログの形式」をご覧ください。 |
requestId |
string | ストレージ API 操作に対するサービスで生成された要求 ID です。 ログの "request-id-header" フィールドを使って Azure Storage 診断ログに関連付けるために使うことができ、開始 API 呼び出しから "x-ms-request-id" ヘッダーで返されます。 「Storage Analytics のログの形式」をご覧ください。 |
eTag |
string | この値を使用することで、条件に応じて操作を実行することができます。 |
contentType |
string | BLOB に関して指定されたコンテンツの種類。 |
contentLength |
整数 (integer) | BLOB のサイズ (単位: バイト)。 |
blobType |
string | BLOB の種類。 有効な値は "BlockBlob" または "PageBlob" です。 |
accessTier |
string | BLOB のターゲット層。 BlobTierChanged イベントに対してのみ表示されます。 |
previousTier |
string | BLOB のソース層。 BlobTierChanged イベントに対してのみ表示されます。 BLOB がストレージ アカウントから層を推論している場合、このフィールドは表示されません。 |
contentOffset |
数値 | イベントをトリガーしたアプリケーションがファイルへの書き込みを完了した時点で実行される書き込み操作のバイト単位のオフセット。 階層型名前空間を持つ BLOB ストレージ アカウントでトリガーされるイベントに対してのみ表示されます。 |
destinationUrl |
string | 操作の完了後に存在するファイルの url。 たとえば、ファイルの名前が変更された場合、destinationUrl プロパティには新しいファイル名の url が含まれています。 階層型名前空間を持つ BLOB ストレージ アカウントでトリガーされるイベントに対してのみ表示されます。 |
sourceUrl |
string | 操作が実行される前に存在するファイルの url。 たとえば、ファイルの名前が変更された場合、sourceUrl には、名前変更操作が行われる前の元のファイル名の url が含まれています。 階層型名前空間を持つ BLOB ストレージ アカウントでトリガーされるイベントに対してのみ表示されます。 |
url |
string | BLOB へのパス。 クライアントが BLOB REST API を使用する場合、url の構造は <storage-account-name>.blob.core.windows.net\<container-name>\<file-name> です。 クライアントが Data Lake Storage REST API を使用する場合、url の構造は <storage-account-name>.dfs.core.windows.net/<file-system-name>/<file-name> です。 |
recursive |
string | すべての子ディレクトリに対して操作を実行する場合は True 、それ以外の場合は False 。 階層型名前空間を持つ BLOB ストレージ アカウントでトリガーされるイベントに対してのみ表示されます。 |
sequencer |
string | 特定の BLOB 名に対するイベントの論理シーケンスを表す非透過的な文字列値です。 ユーザーは、標準的な文字列比較を使って、同じ BLOB 名での 2 つのイベントの相対的な順序を理解できます。 |
identity |
string | イベントに関連付けられた ID を表す文字列値。 SFTP の場合、これがローカル ユーザー名です。 |
storageDiagnostics |
object | Azure Storage サービスによって追加されることがある診断データです。 含まれる場合、イベントのコンシューマーは無視する必要があります。 |
チュートリアルと方法
タイトル | 説明 |
---|---|
クイック スタート: Azure CLI で Blob Storage のイベントをカスタム Web エンドポイントにルーティングする | Azure CLI を使って Blob Storage イベントを Webhook に送信する方法を示します。 |
クイック スタート: PowerShell を使って Blob Storage のイベントをカスタム Web エンドポイントにルーティングする | Azure PowerShell を使って Blob Storage イベントを Webhook に送信する方法を示します。 |
クイック スタート: Azure portal を使用した Blob Storage イベントの作成とルーティング | ポータルを使って Blob Storage イベントを Webhook に送信する方法を示します。 |
Azure CLI: Blob Storage アカウントのイベントのサブスクライブ | BLOB ストレージ アカウントのイベントにサブスクライブするサンプル スクリプトです。 Webhook にイベントを送信します。 |
PowerShell: Blob Storage アカウントのイベントのサブスクライブ | BLOB ストレージ アカウントのイベントにサブスクライブするサンプル スクリプトです。 Webhook にイベントを送信します。 |
Resource Manager テンプレート:BLOB ストレージとサブスクリプションの作成 | Azure Blob Storage アカウントをデプロイし、そのストレージ アカウントのイベントをサブスクライブします。 Webhook にイベントを送信します。 |
概要: Blob Storage イベントへの対応 | Blob Storage と Event Grid の統合の概要です。 |
次のステップ
- Azure Event Grid の概要については、Event Grid の紹介に関する記事を参照してください。
- Azure Event Grid サブスクリプションの作成の詳細については、Event Grid サブスクリプション スキーマに関する記事を参照してください。
- Blob Storage のイベントを処理する方法の概要については、Azure CLI での Blob Storage イベントのルーティングに関するページを参照してください。