Reageren op gebeurtenissen van Blob Storage
Azure Storage gebeurtenissen kunnen toepassingen reageren op gebeurtenissen, zoals het maken en verwijderen van blobs. Dit gebeurt zonder ingewikkelde code of dure en inefficiënte pollingservices. Het beste is dat u alleen betaalt voor wat u gebruikt.
Blob Storage-gebeurtenissen worden met behulp van Azure Event Grid naar abonnees zoals Azure Functions, Azure Logic Apps of zelfs naar uw eigen HTTP-listener. Event Grid biedt betrouwbare levering van gebeurtenissen aan uw toepassingen via uitgebreide beleidsregels voor opnieuw proberen en dead-lettering.
Zie het artikel Schema voor blobopslaggebeurtenissen voor een volledige lijst met de gebeurtenissen die door Blob Storage worden ondersteund.
Veelvoorkomende gebeurtenisscenario's voor Blob Storage omvatten afbeeldings- of videoverwerking, zoekindexering of een bestandsgeoriënteerde werkstroom. Uploads van asynchrone bestanden zijn zeer geschikt voor gebeurtenissen. Wanneer wijzigingen niet vaak voorkomen, maar uw scenario onmiddellijke reactiesnelheid vereist, kan de architectuur op basis van gebeurtenissen bijzonder efficiënt zijn.
Als u blob-opslaggebeurtenissen wilt proberen, bekijkt u een van deze quickstart-artikelen:
| Als u dit hulpprogramma wilt gebruiken: | Zie dit artikel: |
|---|---|
| Azure Portal | Quickstart: Blob Storage-gebeurtenissen routeren naar een webeindpunt met Azure Portal |
| PowerShell | Quickstart: Opslaggebeurtenissen naar een web-eindpunt doorslingsen met PowerShell |
| Azure CLI | Quickstart: Opslaggebeurtenissen naar een web-eindpunt doorslingsen met Azure CLI |
Zie de volgende artikelen voor uitgebreide voorbeelden van het reageren op gebeurtenissen van Blob Storage met behulp van Azure-functies:
- Zelfstudie: Azure Data Lake Storage Gen2-gebeurtenissen gebruiken om een Databricks Delta-tabel bij te werken.
- Zelfstudie: Formaat van geüploade afbeeldingen automatisch wijzigen met Event Grid
Notitie
Storage (algemeen gebruik v1) biedt geen ondersteuning voor integratie met Event Grid.
Het gebeurtenismodel
Event Grid maakt gebruik van gebeurtenisabonnementen om gebeurtenisberichten naar abonnees te sturen. In deze afbeelding ziet u de relatie tussen gebeurtenisuitgevers, gebeurtenisabonnementen en gebeurtenis-handlers.

Abonneer eerst een eindpunt op een gebeurtenis. Wanneer vervolgens een gebeurtenis wordt geactiveerd, verzendt Event Grid service gegevens over die gebeurtenis naar het eindpunt.
Zie het artikel Schema voor blobopslaggebeurtenissen om het volgende weer te geven:
- Een volledige lijst met Blob Storage-gebeurtenissen en hoe elke gebeurtenis wordt geactiveerd.
- Een voorbeeld van de gegevens die het Event Grid verzendt voor elk van deze gebeurtenissen.
- Het doel van elk sleutel-waardepaar dat in de gegevens wordt weergegeven.
Gebeurtenissen filteren
Blob-gebeurtenissen kunnen worden gefilterd op het gebeurtenistype, de containernaam of de naam van het object dat is gemaakt/verwijderd. Filters in Event Grid overeenkomen met het begin of einde van het onderwerp, zodat gebeurtenissen met een overeenkomend onderwerp naar de abonnee gaan.
Zie Gebeurtenissen filteren voor Event Grid voor meer informatie over het toepassen van Event Grid.
Het onderwerp van Blob Storage-gebeurtenissen maakt gebruik van de volgende indeling:
/blobServices/default/containers/<containername>/blobs/<blobname>
Als u alle gebeurtenissen voor een opslagaccount wilt matchen, kunt u de onderwerpfilters leeg laten.
Als u gebeurtenissen wilt matchen van blobs die zijn gemaakt in een set containers die een voorvoegsel delen, gebruikt u een subjectBeginsWith filter zoals:
/blobServices/default/containers/containerprefix
Als u gebeurtenissen wilt matchen van blobs die in een specifieke container zijn gemaakt, gebruikt u subjectBeginsWith een filter als:
/blobServices/default/containers/containername/
Als u gebeurtenissen wilt matchen van blobs die zijn gemaakt in een specifieke container die een blobnaam voorvoegsel delen, gebruikt u een subjectBeginsWith filter zoals:
/blobServices/default/containers/containername/blobs/blobprefix
Als u gebeurtenissen wilt matchen van blobs die zijn gemaakt in een specifieke container die een blob-achtervoegsel delen, gebruikt u een filter zoals subjectEndsWith '.log' of '.jpg'. Zie concepten voor Event Grid meer informatie.
Procedures voor het gebruiken van gebeurtenissen
Toepassingen die blobopslaggebeurtenissen verwerken, moeten een aantal aanbevolen procedures volgen:
- Omdat meerdere abonnementen kunnen worden geconfigureerd om gebeurtenissen naar dezelfde gebeurtenis-handler te sturen, is het belangrijk om niet ervan uit te gaan dat gebeurtenissen afkomstig zijn van een bepaalde bron, maar om het onderwerp van het bericht te controleren om ervoor te zorgen dat het afkomstig is van het opslagaccount dat u verwacht.
- Controleer op dezelfde manier of het eventType het type is dat u wilt verwerken en ga er niet van uit dat alle gebeurtenissen die u ontvangt de typen zijn die u verwacht.
- Als berichten na enige vertraging kunnen binnenkomen, gebruikt u de etag-velden om te begrijpen of uw informatie over objecten nog steeds up-to-date is. Zie Gelijktijdigheid beheren in BlobStorage voor meer informatie over het gebruik van het veld etag.
- Wanneer berichten niet in de juiste volgorde kunnen binnenkomen, gebruikt u de sequencervelden om de volgorde van gebeurtenissen voor een bepaald object te begrijpen. Het sequencerveld is een tekenreekswaarde die de logische volgorde van gebeurtenissen voor een bepaalde blobnaam vertegenwoordigt. U kunt standaardreeksvergelijking gebruiken om de relatieve volgorde van twee gebeurtenissen op dezelfde blobnaam te begrijpen.
- Storage gebeurtenissen garandeert ten minste één levering aan abonnees, wat ervoor zorgt dat alle berichten worden uitgevoerd. Als er echter nieuwe keren tussen back-endknooppunten en -services of de beschikbaarheid van abonnementen wordt uitgevoerd, kunnen er dubbele berichten optreden. Zie Voor meer informatie over het leveren en opnieuw proberen van berichten, Event Grid berichtbezorging en opnieuw proberen.
- Gebruik het veld blobType om te begrijpen welk type bewerkingen zijn toegestaan op de blob en welke clientbibliotheektypen u moet gebruiken voor toegang tot de blob. Geldige waarden zijn
BlockBlobofPageBlob. - Gebruik het URL-veld met de
CloudBlockBlobconstructors enCloudAppendBlobom toegang te krijgen tot de blob. - Negeer velden die u niet begrijpt. Deze praktijk helpt u bestand te houden tegen nieuwe functies die in de toekomst kunnen worden toegevoegd.
- Als u ervoor wilt zorgen dat de Microsoft.Storage. De gebeurtenis BlobCreated wordt alleen geactiveerd wanneer een blok-blob volledig is vastgelegd. Filter de gebeurtenis voor
CopyBlobdePutBlobaanroepen , REST APIPutBlockListFlushWithCloseaanroepen. Met deze API-aanroepen wordt Microsoft.Storage. De gebeurtenis BlobCreated wordt pas gemaakt nadat de gegevens volledig zijn vastgelegd in een blok-blob. Zie Gebeurtenissen filteren voor meer informatie over het maken van een filter Event Grid.
Functieondersteuning
In deze tabel ziet u hoe deze functie wordt ondersteund in uw account en wat de gevolgen zijn voor de ondersteuning wanneer u bepaalde mogelijkheden inschakelen.
| Type opslagaccount | Blob Storage (standaardondersteuning) | Data Lake Storage Gen2 1 | NFS 3.0 1 | SFTP 1 |
|---|---|---|---|---|
| Standaard algemeen gebruik v2 | ||||
| Premium blok-blobs maken |
1 Data Lake Storage Gen2 en het protocol Network File System (NFS) 3.0 vereisen beide een opslagaccount waarvoor een hiërarchische naamruimte is ingeschakeld.
1 Voor Data Lake Storage Gen2, het NFS-protocol (Network File System) 3.0 en SSH File Transfer Protocol (SFTP) is allemaal een opslagaccount vereist waarvoor een hiërarchische naamruimte is ingeschakeld.
Volgende stappen
Meer informatie over het Event Grid en het uitproberen van Blob Storage-gebeurtenissen: