Condividi tramite


Reazione a eventi di Archiviazione BLOB di Azure

Gli eventi di Archiviazione di Azure consentono alle applicazioni di reagire agli eventi, ad esempio la creazione e l'eliminazione di BLOB. Non è richiesto l'uso di codice complesso o di servizi di polling costosi e inefficienti. La parte migliore è che si paga solo per ciò che si usa.

Gli eventi di archiviazione BLOB vengono inviati tramite Griglia di eventi di Azure ai sottoscrittori, ad esempio Funzioni di Azure, App per la logica di Azure o anche al listener HTTP. Griglia di eventi offre un recapito di eventi affidabile alle applicazioni tramite criteri avanzati di ripetizione dei tentativi e messaggi non recapitabili.

Vedere l'articolo Schema degli eventi di archiviazione BLOB per visualizzare l'elenco completo degli eventi supportati dall'archiviazione BLOB.

Gli scenari comuni degli eventi di archiviazione BLOB includono l'elaborazione di immagini o video, l'indicizzazione della ricerca o qualsiasi flusso di lavoro orientato ai file. I caricamenti asincroni di file sono operazioni perfette per gli eventi. Quando le modifiche sono poco frequenti, ma lo scenario richiede tempi di risposta immediati, l'architettura basata su eventi può risultare particolarmente efficiente.

Per provare gli eventi di archiviazione BLOB, vedere uno di questi articoli di avvio rapido:

Se si vuole usare questo strumento: Vedere questo articolo:
Azure portal Avvio rapido: Instradare gli eventi di archiviazione BLOB all'endpoint Web con il portale di Azure
PowerShell Avvio rapido: Instradare gli eventi di archiviazione all'endpoint Web con PowerShell
Interfaccia della riga di comando di Azure Avvio rapido: instradare gli eventi di archiviazione a un endpoint Web con l'interfaccia della riga di comando di Azure

Per visualizzare esempi approfonditi di reazione agli eventi di archiviazione BLOB tramite funzioni di Azure, vedere gli articoli seguenti:

Nota

Archiviazione (utilizzo generico v1) non supporta l'integrazione con Griglia di eventi.

Modello di evento

Griglia di eventi usa Sottoscrizioni di eventi per instradare i messaggi di evento ai sottoscrittori. Questa immagine illustra la relazione tra autori di eventi, sottoscrizioni di eventi e gestori di eventi.

Modello di Griglia di eventi di Azure

Prima di tutto, sottoscrivere un endpoint a un evento. Quindi, quando viene attivato un evento, il servizio Griglia di eventi invierà dati sull'evento all'endpoint.

Vedere l'articolo schema degli eventi di archiviazione BLOB per visualizzare:

  • Elenco completo degli eventi di archiviazione BLOB e del modo in cui viene attivato ogni evento.

  • Un esempio dei dati inviati da Griglia di eventi per ognuno di questi eventi.

  • Scopo di ogni coppia di valori chiave che viene visualizzata nei dati.

Filtro degli eventi

Gli eventi BLOB possono essere filtrati in base al tipo di evento, al nome del contenitore o al nome dell'oggetto creato/eliminato. I filtri in Griglia di eventi corrispondono all'inizio o alla fine dell'oggetto in modo che gli eventi con un soggetto corrispondente vadano al sottoscrittore.

Per altre informazioni su come applicare i filtri, vedere Filtrare gli eventi per Griglia di eventi.

L'oggetto di eventi di archiviazione BLOB usa il formato:

/blobServices/default/containers/<containername>/blobs/<blobname>

Per trovare la corrispondenza di tutti gli eventi per un account di archiviazione, è possibile non impostare alcun filtro dell'oggetto.

Per trovare la corrispondenza di eventi da BLOB creati in un set di contenitori che condividono un prefisso, usare un filtro subjectBeginsWith come:

/blobServices/default/containers/containerprefix

Per trovare la corrispondenza di eventi da BLOB creati in un contenitore specifico, usare un filtro subjectBeginsWith come:

/blobServices/default/containers/containername/

Per trovare la corrispondenza di eventi da BLOB creati in un contenitore specifico che condividono un prefisso di nome di BLOB, usare un filtro subjectBeginsWith come:

/blobServices/default/containers/containername/blobs/blobprefix

Per trovare la corrispondenza di eventi da BLOB creati in un contenitore specifico che condividono un suffisso di BLOB, usare un filtro subjectEndsWith, ad esempio ".log" o ".jpg". Per altre informazioni, vedere Concetti di Griglia di eventi di Azure.

Procedure consigliate per l'utilizzo di eventi

Per le applicazioni che gestiscono gli eventi di archiviazione BLOB è consigliabile seguire alcune procedure:

  • Dal momento che vi possono essere più sottoscrizioni configurate per instradare gli eventi allo stesso gestore eventi, è importante non presupporre che gli eventi derivino da un'origine specifica, ma controllare l'argomento del messaggio per assicurarsi che provengano dall'account di archiviazione previsto.

  • Controllare anche che il tipo di evento che si verifica, eventType, sia un oggetto che si è preparati a elaborare e non presupporre che tutti gli eventi che si ricevono siano dei tipi previsti.

  • Mentre la maggior parte dei messaggi arriva quasi in tempo reale, non esiste alcun contratto di servizio intorno al tempo necessario per l'arrivo di un messaggio. In alcuni casi, l'arrivo del messaggio potrebbe richiedere alcuni minuti. Poiché i messaggi possono arrivare in ritardo, usare i campi etag per capire se le informazioni sugli oggetti sono ancora aggiornate. Per informazioni su come usare il campo etag, vedere Gestire la concorrenza in Archiviazione BLOB.

  • Quando i messaggi possono arrivare fuori servizio, usare i campi sequencer per comprendere l'ordine degli eventi in qualsiasi oggetto specifico. Il campo sequencer è un valore stringa che rappresenta la sequenza logica di eventi per qualsiasi nome di BLOB specifico. È possibile usare il confronto tra stringhe standard per comprendere la sequenza relativa di due eventi sullo stesso nome BLOB.

  • Gli eventi di archiviazione garantiscono il recapito dei messaggi ai sottoscrittori per almeno una volta, in modo da garantire l'invio di tutti i messaggi. Tuttavia, a causa di nuovi tentativi tra nodi back-end e servizi o disponibilità di sottoscrizioni, possono presentarsi messaggi duplicati. Per altre informazioni sul recapito dei messaggi e sui nuovi tentativi, vedere Recapito dei messaggi e nuovi tentativi di invio di Griglia di eventi.

  • Usare il campo blobType per capire il tipo di operazioni consentite sul BLOB e quali tipi di librerie client è consigliabile usare per accedere al BLOB. I valori validi sono BlockBlob o PageBlob.

  • Usare il campo URL con i costruttori CloudBlockBlob e CloudAppendBlob per accedere al BLOB.

  • Ignorare i campi che non si conoscono. Questa procedura consentirà di rimanere flessibili alle nuove funzionalità che potrebbero essere aggiunte in futuro.

  • Se si vuole assicurarsi che l'evento Microsoft.Storage.BlobCreated venga attivato solo quando viene eseguito il commit completo di un BLOB in blocchi, filtrare l'evento per le chiamate API REST CopyBlob, PutBlob, PutBlockList o FlushWithClose. Queste chiamate API attivano l'evento Microsoft.Storage.BlobCreated solo dopo il commit completo dei dati in un BLOB in blocchi. Per informazioni su come creare un filtro, vedere Filtrare gli eventi per Griglia di eventi.

Supporto funzionalità

Il supporto di questa funzionalità potrebbe essere influenzato dall'abilitazione dei protocolli Data Lake Storage Gen2, NFS (Network File System) 3.0 o SFTP (SSH File Transfer Protocol). Se è stata abilitata una di queste funzionalità, vedere Supporto delle funzionalità di Archiviazione del BLOB negli account di Archiviazione di Azure per valutare il supporto per questa funzionalità.

Passaggi successivi

Sono disponibili altre informazioni su Griglia di eventi e la possibilità di provare a usare gli eventi di archiviazione BLOB: