Reagera på Blob Storage-händelser
Azure Storage händelser gör att program kan reagera på händelser, till exempel när blobar skapas och tas bort. Det gör det utan komplicerad kod eller dyra och ineffektiva avsökningstjänster. Det bästa är att du bara betalar för det du använder.
Blob Storage-händelser pushas med hjälp Azure Event Grid till prenumeranter som Azure Functions, Azure Logic Apps eller till och med till din egen HTTP-lyssnare. Event Grid tillhandahåller tillförlitlig händelseleverans till dina program via omfattande återförsöksprinciper och dead-lettering.
I artikeln Schema för Blob Storage-händelser kan du se en fullständig lista över de händelser som stöds av Blob Storage.
Vanliga scenarier för Blob Storage-händelser är bild- eller videobearbetning, sökindexering eller filorienterade arbetsflöden. Asynkrona filuppladdningar passar utmärkt för händelser. När ändringar är ovanliga, men ditt scenario kräver omedelbara svarstider, kan händelsebaserad arkitektur vara särskilt effektiv.
Om du vill prova Blob Storage-händelser kan du läsa någon av dessa snabbstartsartiklar:
| Om du vill använda det här verktyget: | Se den här artikeln: |
|---|---|
| Azure Portal | Snabbstart: Dirigera Blob Storage-händelser till webbslutpunkten med Azure Portal |
| PowerShell | Snabbstart: Dirigera lagringshändelser till en webbslutpunkt med PowerShell |
| Azure CLI | Snabbstart: Dirigera lagringshändelser till en webbslutpunkt med Azure CLI |
Djupgående exempel på hur du reagerar på Blob Storage-händelser med hjälp av Azure-funktioner finns i följande artiklar:
- Självstudie: Använda Azure Data Lake Storage Gen2-händelser för att uppdatera en Databricks Delta-tabell.
- Självstudie: Automatisera storleksändring av överladdade bilder med Event Grid
Anteckning
Storage (generell användning v1) stöder inte integrering med Event Grid.
Händelsemodellen
Event Grid använder händelseprenumerationer för att dirigera händelsemeddelanden till prenumeranter. Den här bilden illustrerar relationen mellan händelseutgivare, händelseprenumerationer och händelsehanterare.

Börja med att prenumerera på en slutpunkt för en händelse. När en händelse utlöses skickar Event Grid data om händelsen till slutpunkten.
Se schemaartikeln för Blob Storage-händelser för att visa:
- En fullständig lista över Blob Storage-händelser och hur varje händelse utlöses.
- Ett exempel på de data som Event Grid skulle skicka för var och en av dessa händelser.
- Syftet med varje nyckelvärdepar som visas i data.
Filtrera händelser
Blobhändelser kan filtreras efter händelsetyp, containernamn eller namn på objektet som skapades/togs bort. Filter i Event Grid matchar början eller slutet av ämnet, så händelser med ett matchande ämne går till prenumeranten.
Mer information om hur du tillämpar filter finns i Filtrera händelser för Event Grid.
Ämnet för Blob Storage-händelser använder formatet:
/blobServices/default/containers/<containername>/blobs/<blobname>
Om du vill matcha alla händelser för ett lagringskonto kan du lämna ämnesfiltren tomma.
Om du vill matcha händelser från blobar som skapats i en uppsättning containrar som delar ett prefix använder du ett subjectBeginsWith filter som:
/blobServices/default/containers/containerprefix
Om du vill matcha händelser från blobar som skapats i en specifik container använder du ett subjectBeginsWith filter som:
/blobServices/default/containers/containername/
Om du vill matcha händelser från blobar som skapats i en specifik container som delar ett blobnamnsprefix använder du subjectBeginsWith ett filter som:
/blobServices/default/containers/containername/blobs/blobprefix
Om du vill matcha händelser från blobar som skapats i en specifik container som delar ett blobsuffix använder du ett filter som subjectEndsWith ".log" eller ".jpg". Mer information finns i Event Grid Koncept.
Metoder för att använda händelser
Program som hanterar Blob Storage-händelser bör följa några rekommenderade metoder:
- Eftersom flera prenumerationer kan konfigureras för att dirigera händelser till samma händelsehanterare är det viktigt att inte anta att händelser kommer från en viss källa, utan att kontrollera ämnet i meddelandet för att säkerställa att det kommer från det lagringskonto som du förväntar dig.
- Kontrollera på samma sätt att eventType är en som du är beredd att bearbeta och förutsätta inte att alla händelser som du tar emot är de typer som du förväntar dig.
- När meddelanden kan tas emot efter en viss fördröjning kan du använda etag-fälten för att förstå om din information om objekt fortfarande är uppdaterad. Information om hur du använder etag-fältet finns i Hantera samtidighet i Blob Storage.
- När meddelanden kan tas emot i oordning använder du sekvenseringsfälten för att förstå ordningen på händelser för ett visst objekt. Sekvenseringsfältet är ett strängvärde som representerar den logiska händelsesekvensen för ett visst blobnamn. Du kan använda standardsträngsjämförelse för att förstå den relativa sekvensen av två händelser med samma blobnamn.
- Storage-händelser garanterar leverans minst en gång till prenumeranter, vilket säkerställer att alla meddelanden matas ut. Men på grund av återförsök mellan backend-noder och tjänster eller tillgängligheten av prenumerationer kan dubblettmeddelanden uppstå. Mer information om meddelandeleverans och omförsök finns i Event Grid och försök igen.
- Använd fältet blobType för att förstå vilken typ av åtgärder som tillåts för bloben och vilka typer av klientbibliotek som du bör använda för att få åtkomst till bloben. Giltiga värden är antingen
BlockBlobellerPageBlob. - Använd URL-fältet med
CloudBlockBlobkonstruktorernaCloudAppendBloboch för att komma åt bloben. - Ignorera fält som du inte förstår. Den här praxis hjälper dig att hålla dig motståndskraftig mot nya funktioner som kan läggas till i framtiden.
- Om du vill kontrollera att Microsoft.Storage. BlobCreated-händelsen utlöses bara när en blockblob har utförts helt, filtrerar händelsen för
CopyBlobPutBlobPutBlockListanropen , REST APIFlushWithCloseanropar. Dessa API-anrop utlöser Microsoft.Storage. BlobCreated-händelse endast efter att data har fullständigt utförts till en blockblob. Information om hur du skapar ett filter finns i Filtrera händelser för Event Grid.
Funktionsstöd
Den här tabellen visar hur den här funktionen stöds i ditt konto och hur det påverkar supporten när du aktiverar vissa funktioner.
| Typ av lagringskonto | Blob Storage (standardstöd) | Data Lake Storage Gen2 1 | NFS 3.0 1 | SFTP 1 |
|---|---|---|---|---|
| Standard generell användning v2 | ||||
| Premium blockblobar |
1 Data Lake Storage Gen2 och NFS 3.0-protokollet (Network File System) kräver båda ett lagringskonto med en hierarkisk namnrymd aktiverad.
1 Data Lake Storage Gen2, NFS 3.0-protokollet (Network File System) och stöd för SSH File Transfer Protocol (SFTP) kräver alla ett lagringskonto med en hierarkisk namnrymd aktiverad.
Nästa steg
Läs mer om Event Grid ge Blob Storage-händelser ett försök: