Azure Blob Storage als Event Grid-Quelle

In diesem Artikel werden die Eigenschaften und das Schema für Blob Storage-Ereignisse beschrieben. Eine Einführung in Ereignisschemas finden Sie unter Azure Event Grid-Ereignisschema. Außerdem erhalten Sie eine Liste mit Schnellstarts und Tutorials, die Azure Blob Storage als Ereignisquelle verwenden.

Hinweis

Nur Speicherkonten vom Typ StorageV2 (universell, Version 2) , BlockBlobStorage und BlobStorage unterstützen die Ereignisintegration. Storage (Universell V1) unterstützt nicht die Integration in Event Grid.

Verfügbare Ereignistypen

Blob Storage-Ereignisse

Die folgenden Ereignisse werden ausgelöst, wenn ein Client durch Aufrufen von Blob-REST-APIs ein Blob erstellt, ersetzt oder löscht:

Hinweis

Die Container $logs und $blobchangefeed sind nicht in Event Grid integriert, sodass die Aktivität in diesen Containern keine Ereignisse generiert. Außerdem werden bei Verwendung des DFS-Endpunkts (abfss://URI) für Konten, die nicht hierarchische Namespaces verarbeiten können, werden keine Ereignisse generiert, aber der Blob-Endpunkt (wasb:// URI) generiert Ereignisse.

Ereignisname BESCHREIBUNG
Microsoft.Storage.BlobCreated Wird ausgelöst, wenn ein Blob erstellt oder ersetzt wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients die Vorgänge PutBlob, PutBlockList oder CopyBlob verwenden, die in der Blob-REST-API verfügbar sind, und wenn das Blockblob vollständig committet wird.
Wenn Clients den CopyBlob-Vorgang für Konten verwenden, für die die Funktion hierarchischer Namespace aktiviert ist, funktioniert der CopyBlob-Vorgang etwas anders. In diesem Fall wird das Ereignis Microsoft.Storage.BlobCreated ausgelöst, wenn der CopyBlob-Vorgang initiiert wird und nicht, wenn das Blockblob vollständig committet wird.
Microsoft.Storage.BlobDeleted Wird ausgelöst, wenn ein Blob gelöscht wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients den Vorgang DeleteBlob aufrufen, der in der Blob-REST-API zur Verfügung steht.
Microsoft.Storage.BlobTierChanged Wird ausgelöst, wenn die Blobzugriffsebene geändert wird. Dieses Ereignis wird insbesondere ausgelöst, nachdem die Ebenenänderung abgeschlossen wurde, wenn Clients den Set Blob Tier-Vorgang aufrufen, der in der Blob-REST-API zur Verfügung steht.
Microsoft.Storage.AsyncOperationInitiated Wird ausgelöst, wenn ein Vorgang zum Verschieben oder Kopieren von Daten aus dem Archiv in die heißen oder kalten Ebenen initiiert wird. Insbesondere wird dieses Ereignis ausgelöst, wenn Clients die API Set Blob Tier aufrufen, um ein Blob von der Archivebene in die heiße oder kalte Ebene zu verschieben, oder wenn Clients die API Copy Blob aufrufen, um Daten aus einem Blob in der Archivebene in ein Blob auf der heißen oder kalten Ebene zu kopieren.

Beispielereignisse

Ereignis „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"
}]

Ereignis „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 event

{
	"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",
		"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 event

{
	"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 Gen2-Ereignisse

Die folgenden Ereignisse werden ausgelöst, wenn Sie einen hierarchischen Namespace für das Speicherkonto aktivieren und Clients REST-APIs von Azure Data Lake Storage Gen2 verwenden. Weitere Informationen zu Data Lake Storage Gen2 finden Sie in der Einführung in Azure Data Lake Storage Gen2.

Ereignisname BESCHREIBUNG
Microsoft.Storage.BlobCreated Wird ausgelöst, wenn ein Blob erstellt oder ersetzt wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients die Vorgänge CreateFile und FlushWithClose verwenden, die in der REST-API von Azure Data Lake Storage Gen2 zur Verfügung stehen.
Microsoft.Storage.BlobDeleted Wird ausgelöst, wenn ein Blob gelöscht wird.
Dieses Ereignis wird insbesondere auch ausgelöst, wenn Clients den Vorgang DeleteFile aufrufen, der in der REST-API von Azure Data Lake Storage Gen2 zur Verfügung steht.
Microsoft.Storage.BlobRenamed Wird ausgelöst, wenn ein Blob umbenannt wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients den Vorgang RenameFile verwenden, der in der REST-API von Azure Data Lake Storage Gen2 zur Verfügung steht.
Microsoft.Storage.DirectoryCreated Wird ausgelöst, wenn ein Verzeichnis erstellt wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients den Vorgang CreateDirectory verwenden, der in der REST-API von Azure Data Lake Storage Gen2 zur Verfügung steht.
Microsoft.Storage.DirectoryRenamed Wird ausgelöst, wenn ein Verzeichnis umbenannt wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients den Vorgang RenameDirectory verwenden, der in der REST-API von Azure Data Lake Storage Gen2 zur Verfügung steht.
Microsoft.Storage.DirectoryDeleted Wird ausgelöst, wenn ein Verzeichnis gelöscht wird.
Dieses Ereignis wird insbesondere ausgelöst, wenn Clients den Vorgang DeleteDirectory verwenden, der in der REST-API von Azure Data Lake Storage Gen2 zur Verfügung steht.

Hinweis

Wenn Sie für Azure Blob Azure Data Lake Storage Gen2 sicherstellen möchten, dass das Ereignis Microsoft.Storage.BlobCreated erst ausgelöst wird, nachdem ein Blockblob vollständig committet wurde, filtern Sie das Ereignis nach Aufrufen der REST-API FlushWithClose. Bei diesem API-Aufruf wird das Ereignis Microsoft.Storage.BlobCreated erst ausgelöst, nachdem Daten vollständig in einem Blockblob committet wurden. Informationen zum Erstellen eines Filters finden Sie unter Filtern von Ereignissen für Event Grid.

Beispielereignisse

Ereignis „Microsoft.Storage.BlobCreated“ (Data Lake Storage Gen2)

Wenn das Blob Storage-Konto über einen hierarchischen Namespace verfügt, sehen die Daten, mit Ausnahme dieser Änderungen, in etwa wie im vorherigen Beispiel aus:

  • Der Schlüssel data.api wird auf die Zeichenfolge CreateFile oder FlushWithClose festgelegt.
  • Der Schlüssel contentOffset wird in das Dataset eingeschlossen.

Hinweis

Wenn Anwendungen den Vorgang PutBlockList verwenden, um ein neues Blob in das Konto hochzuladen, sind diese Änderungen nicht in den Daten enthalten.

[{
  "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"
}]

Ereignis „Microsoft.Storage.BlobDeleted“ (Data Lake Storage Gen2)

Wenn das Blob Storage-Konto über einen hierarchischen Namespace verfügt, sehen die Daten, mit Ausnahme dieser Änderungen, in etwa wie im vorherigen Beispiel aus:

  • Der Schlüssel data.api wird auf die Zeichenfolge DeleteFile festgelegt.
  • Die Schlüssel url enthält den Pfad dfs.core.windows.net.

Hinweis

Wenn Anwendungen den Vorgang DeleteBlob verwenden, um ein Blob aus dem Konto zu löschen, sind diese Änderungen nicht in den Daten enthalten.

[{
  "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"
}]

Ereignis „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"
}]

Ereignis „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"
}]

Ereignis „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"
}]

Ereignis „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-Ereignisse

Diese Ereignisse werden ausgelöst, wenn Sie einen hierarchischen Namensraum für das Speicherkonto aktivieren und Clients SFTP-APIs verwenden. Weitere Informationen zu SFTP-Support für Azure Blob Storage finden Sie unter SSH File Transfer Protocol (SFTP, Dateiübertragungsprotokoll) in Azure Blob Storage.

Ereignisname BESCHREIBUNG
Microsoft.Storage.BlobCreated Wird ausgelöst, wenn ein BLOB (Binary Large Object) erstellt oder ersetzt wird.
Konkret wird dieses Ereignis ausgelöst, wenn Clients die put Operation verwenden, die den SftpCreate und SftpCommit APIs entspricht. Ein leeres BLOB wird erstellt, wenn die Datei geöffnet wird, und der hochgeladene Inhalt wird übertragen, wenn die Datei geschlossen wird.
Microsoft.Storage.BlobDeleted Wird ausgelöst, wenn ein Blob gelöscht wird.
Konkret wird dieses Ereignis auch ausgelöst, wenn Clients die rm Operation aufrufen, was der SftpRemove API entspricht.
Microsoft.Storage.BlobRenamed Wird ausgelöst, wenn ein Blob umbenannt wird.
Konkret wird dieses Ereignis ausgelöst, wenn Clients die rename Operation für Dateien verwenden, was der SftpRename API entspricht.
Microsoft.Storage.DirectoryCreated Wird ausgelöst, wenn ein Verzeichnis erstellt wird.
Konkret wird dieses Ereignis ausgelöst, wenn Clients die mkdir Operation verwenden, was der SftpMakeDir API entspricht.
Microsoft.Storage.DirectoryRenamed Wird ausgelöst, wenn ein Verzeichnis umbenannt wird.
Konkret wird dieses Ereignis ausgelöst, wenn Clients die rename Operation in einem Verzeichnis verwenden, was der SftpRename API entspricht.
Microsoft.Storage.DirectoryDeleted Wird ausgelöst, wenn ein Verzeichnis gelöscht wird.
Konkret wird dieses Ereignis ausgelöst, wenn Clients die rmdir Operation verwenden, was der SftpRemoveDir API entspricht.

Beispielereignisse

Wenn ein Ereignis ausgelöst wird, sendet der Event Grid-Dienst Daten zum Ereignis an den Endpunkt, der über ein entsprechendes Abonnement verfügt. In diesem Abschnitt wird anhand eines Beispiels gezeigt, wie diese Daten für ein Blob Storage-Ereignis aussehen.

Ereignis Microsoft.Storage.BlobCreated (SFTP)

Wenn das BLOB-Speicherkonto SFTP verwendet, um ein BLOB zu erstellen oder zu überschreiben, dann sehen die Daten ähnlich aus wie im vorherigen Beispiel, mit Ausnahme dieser Änderungen:

  • Der Schlüssel dataVersion wird auf den Wert 3 festgelegt.

  • Der Schlüssel data.api wird auf die Zeichenfolge SftpCreate oder SftpCommit festgelegt.

  • Der clientRequestId-Schlüssel ist nicht enthalten.

  • Der contentType Schlüssel wird auf application/octet-stream festgelegt.

  • Der Schlüssel contentOffset wird in das Dataset eingeschlossen.

  • Der Schlüssel identity wird in das Dataset eingeschlossen. Dies entspricht dem lokalen Benutzer, der für die SFTP-Authentifizierung verwendet wird.

Hinweis

SFTP-Uploads generieren 2 Ereignisse. Ein SftpCreate für ein anfänglich leeres BLOB, das beim Öffnen der Datei erstellt wird, und ein SftpCommit, wenn der Inhalt der Datei geschrieben wird.

[{
  "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"
}]

Ereignis Microsoft.Storage.BlobDeleted (SFTP)

Wenn das BLOB-Speicherkonto SFTP verwendet, um ein BLOB zu löschen, dann sehen die Daten ähnlich aus wie im vorherigen Beispiel, mit Ausnahme dieser Änderungen:

  • Der Schlüssel dataVersion wird auf den Wert 2 festgelegt.

  • Der Schlüssel data.api wird auf die Zeichenfolge SftpRemove festgelegt.

  • Der clientRequestId-Schlüssel ist nicht enthalten.

  • Der contentType Schlüssel wird auf application/octet-stream festgelegt.

  • Der Schlüssel identity wird in das Dataset eingeschlossen. Dies entspricht dem lokalen Benutzer, der für die SFTP-Authentifizierung verwendet wird.

[{
  "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"
}]

Ereignis Microsoft.Storage.BlobRenamed (SFTP)

Wenn das BLOB-Speicherkonto SFTP verwendet, um ein BLOB umzubenennen, dann sehen die Daten ähnlich aus wie im vorherigen Beispiel, mit Ausnahme dieser Änderungen:

  • Der Schlüssel data.api wird auf die Zeichenfolge SftpRename festgelegt.

  • Der clientRequestId-Schlüssel ist nicht enthalten.

  • Der Schlüssel identity wird in das Dataset eingeschlossen. Dies entspricht dem lokalen Benutzer, der für die SFTP-Authentifizierung verwendet wird.

[{
  "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"
}]

Ereignis Microsoft.Storage.DirectoryCreated (SFTP)

Wenn das BLOB-Speicherkonto SFTP verwendet, um ein Verzeichnis zu erstellen, dann sehen die Daten ähnlich aus wie im vorherigen Beispiel, mit Ausnahme dieser Änderungen:

  • Der Schlüssel dataVersion wird auf den Wert 2 festgelegt.

  • Der Schlüssel data.api wird auf die Zeichenfolge SftpMakeDir festgelegt.

  • Der clientRequestId-Schlüssel ist nicht enthalten.

  • Der Schlüssel identity wird in das Dataset eingeschlossen. Dies entspricht dem lokalen Benutzer, der für die SFTP-Authentifizierung verwendet wird.

[{
  "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"
}]

Ereignis Microsoft.Storage.DirectoryRenamed (SFTP)

Wenn das BLOB-Speicherkonto SFTP verwendet, um ein Verzeichnis umzubenennen, dann sehen die Daten ähnlich aus wie im vorherigen Beispiel, mit Ausnahme dieser Änderungen:

  • Der Schlüssel data.api wird auf die Zeichenfolge SftpRename festgelegt.

  • Der clientRequestId-Schlüssel ist nicht enthalten.

  • Der Schlüssel identity wird in das Dataset eingeschlossen. Dies entspricht dem lokalen Benutzer, der für die SFTP-Authentifizierung verwendet wird.

[{
  "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"
}]

Ereignis Microsoft.Storage.DirectoryDeleted (SFTP)

Wenn das BLOB-Speicherkonto SFTP verwendet, um ein Verzeichnis zu löschen, dann sehen die Daten ähnlich aus wie im vorherigen Beispiel, mit Ausnahme dieser Änderungen:

  • Der Schlüssel data.api wird auf die Zeichenfolge SftpRemoveDir festgelegt.

  • Der clientRequestId-Schlüssel ist nicht enthalten.

  • Der Schlüssel identity wird in das Dataset eingeschlossen. Dies entspricht dem lokalen Benutzer, der für die SFTP-Authentifizierung verwendet wird.

[{
  "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"
}]

Diese Ereignisse werden ausgelöst, wenn die von einer Richtlinie definierten Aktionen durchgeführt werden.

Ereignisname BESCHREIBUNG
Microsoft.Storage.BlobInventoryPolicyCompleted Wird ausgelöst, wenn die Bestandsaufnahme für eine Regel abgeschlossen ist, für die eine Bestandsprüfungsrichtlinie definiert ist. Dieses Ereignis tritt auch ein, wenn vor dem Start der Inventur ein Benutzerfehler auftritt. Beispielsweise wird dieses Ereignis durch eine ungültige Richtlinie oder durch einen Fehler aufgrund eines fehlenden Zielcontainers ausgelöst.
Microsoft.Storage.LifecyclePolicyCompleted Wird ausgelöst, wenn die von einer Lebenszyklusverwaltungsrichtlinie definierten Aktionen durchgeführt werden.

Beispielereignisse

Wenn ein Ereignis ausgelöst wird, sendet der Event Grid-Dienst Daten zum Ereignis an den Endpunkt, der über ein entsprechendes Abonnement verfügt. In diesem Abschnitt wird anhand eines Beispiels gezeigt, wie diese Daten für ein Blob Storage-Ereignis aussehen.

Ereignis „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"
}

Ereignis „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": ""
        },
        "tierToArchiveSummary": {
            "totalObjectsCount": 0,
            "successCount": 0,
            "errorList": ""
        }
    },
    "specversion": "1.0"
}

Ereigniseigenschaften

Ein Ereignis weist die folgenden Daten auf oberster Ebene aus:

Eigenschaft Typ Beschreibung
source Zeichenfolge Vollständiger Ressourcenpfaf zur Ereignisquelle. Dieses Feld ist nicht beschreibbar. Dieser Wert wird von Event Grid bereitgestellt.
subject Zeichenfolge Vom Herausgeber definierter Pfad zum Ereignisbetreff
type Zeichenfolge Einer der registrierten Ereignistypen für die Ereignisquelle.
time Zeichenfolge Die Zeit, in der das Ereignis generiert wird, basierend auf der UTC-Zeit des Anbieters.
id Zeichenfolge Eindeutiger Bezeichner für das Ereignis.
data Objekt (object) Ereignisdaten für Blob Storage.
specversion Zeichenfolge Version der CloudEvents-Schemaspezifikation.

Das Datenobjekt weist die folgenden Eigenschaften auf:

Eigenschaft Typ Beschreibung
api Zeichenfolge Der Vorgang, durch den das Ereignis ausgelöst wurde.
clientRequestId Zeichenfolge Vom Client bereitgestellte Anforderungs-ID für den Speicher-API-Vorgang. Diese ID kann zur Korrelation mit Azure Storage-Diagnoseprotokollen anhand des Felds „client-request-id“ in den Protokollen verwendet und in Clientanforderungen mit dem Header „x-ms-client-request-id“ bereitgestellt werden. Informationen finden Sie unter Storage Analytics Log Format (Storage Analytics-Protokollformat).
requestId Zeichenfolge Vom Dienst generierte Anforderungs-ID für den Speicher-API-Vorgang. Kann zum Korrelieren mit Azure Storage-Diagnoseprotokolle mithilfe des Felds „request-id-header“ in den Protokollen verwendet werden, und wird vom einleitenden API-Aufruf im „x-ms-request-id“-Header zurückgegeben. Informationen finden Sie unter Storage Analytics Log Format (Storage Analytics-Protokollformat).
eTag Zeichenfolge Der Wert, mit dem Sie Vorgänge bedingt ausführen können.
contentType Zeichenfolge Der für das Blob angegebene Inhaltstyp.
contentLength integer Die Größe des Blobs in Byte.
blobType Zeichenfolge Der Blobtyp. Gültige Werte sind „BlockBlob“ oder „PageBlob“.
contentOffset number Das Offset (in Bytes) eines Schreibvorgangs zu dem Zeitpunkt, zu dem die ereignisauslösende Anwendung das Schreiben in die Datei abgeschlossen hat.
Nur relevant für Ereignisse, die für Blob Storage-Konten mit einem hierarchischen Namespace ausgelöst wurden.
destinationUrl Zeichenfolge Die URL der Datei, die nach Abschluss des Vorgangs vorhanden ist. Wenn also beispielsweise eine Datei umbenannt wird, enthält die Eigenschaft destinationUrl die URL des neuen Dateinamens.
Nur relevant für Ereignisse, die für Blob Storage-Konten mit einem hierarchischen Namespace ausgelöst wurden.
sourceUrl Zeichenfolge Die URL der Datei, die vor dem erfolgten Vorgang vorhanden ist. Wenn also beispielsweise eine Datei umbenannt wird, enthält sourceUrl die URL des ursprünglichen Dateinamens vor dem Umbenennungsvorgang.
Nur relevant für Ereignisse, die für Blob Storage-Konten mit einem hierarchischen Namespace ausgelöst wurden.
url Zeichenfolge Der Pfad des Blobs.
Wenn der Client eine Blob-REST-API verwendet, hat die URL die folgende Struktur: <storage-account-name>.blob.core.windows.net\<container-name>\<file-name>.
Wenn der Client eine Data Lake Storage-REST-API verwendet, hat die URL die folgende Struktur: <storage-account-name>.dfs.core.windows.net/<file-system-name>/<file-name>.
recursive Zeichenfolge True, um den Vorgang für alle untergeordneten Verzeichnisse auszuführen; andernfalls False.
Nur relevant für Ereignisse, die für Blob Storage-Konten mit einem hierarchischen Namespace ausgelöst wurden.
sequencer Zeichenfolge Ein nicht transparenter Zeichenfolgenwert, der die logische Reihenfolge von Ereignissen für einen bestimmten Blobnamen darstellt. Benutzer können anhand des standardmäßigen Zeichenfolgenvergleichs die relative Reihenfolge von zwei Ereignissen unter dem gleichen Blobnamen verstehen.
identity Zeichenfolge Ein Zeichenfolge-Wert, der die mit dem Ereignis verbundene Identität angibt. Für SFTP ist dies der lokale Benutzername.
storageDiagnostics Objekt (object) Diagnosedaten, die gelegentlich vom Azure Storage-Dienst einbezogen werden. Falls vorhanden, sollten sie vom Ereignisconsumer ignoriert werden.

Tutorials und Vorgehensweisen

Titel BESCHREIBUNG
Schnellstart: Weiterleiten von Blob Storage-Ereignissen an einen benutzerdefinierten Webendpunkt mit Azure CLI Zeigt die Verwendung von Azure CLI zum Senden von Blob Storage-Ereignissen an einen WebHook.
Schnellstart: Weiterleiten von Blob Storage-Ereignissen an einen benutzerdefinierten Webendpunkt mit PowerShell Zeigt die Verwendung von Azure PowerShell zum Senden von Blob Storage-Ereignissen an einen WebHook.
Schnellstart: Erstellen und Weiterleiten von Blob Storage-Ereignissen mit dem Azure-Portal Zeigt die Verwendung des Portals zum Senden von Blob Storage-Ereignissen an einen WebHook.
Azure CLI: Abonnieren von Ereignissen für ein Blobspeicherkonto Beispielskript, mit dem Ereignisse für ein Blobspeicherkonto abonniert werden. Sendet das Ereignis an einen WebHook.
PowerShell: Abonnieren von Ereignissen für ein Blobspeicherkonto Beispielskript, mit dem Ereignisse für ein Blobspeicherkonto abonniert werden. Sendet das Ereignis an einen WebHook.
Resource Manager-Vorlage: Erstellen eines Blobspeichers und Abonnements Stellt ein Azure Blob Storage-Konto bereit und abonniert Ereignisse für dieses Speicherkonto. Sendet Ereignisse an einen WebHook.
Übersicht: Reaktion auf Blob Storage-Ereignisse Übersicht über die Integration von Blob Storage in Event Grid.

Nächste Schritte