Nello script #186 abbiamo visto una delle ultime caratteristiche che sono state inserite nell'ormai consolidato servizio di Storage Blob della piattaforma di Microsoft Azure. Non è infatti l'unica, perché di recente sono state rilasciate funzionalità che rendono più semplice questo servizio e molto di più che un file system.
Nella stessa sezione Data protection, sempre attraverso il portale (e strumenti alternativi), è possibile attivare anche il versioning automatico dei blob.
Una volta attivato tutti i blob dell'account ricevono un id di versione ogni qual volta aggiungiamo, modifichiamo o un blob. L'id è visibile nelle operazioni di GET attraverso l'header x-ms-version-id e non è altro che un timestamp. Se modifichiamo un blob una nuova versione viene associata e il vecchio file rimane raggiungibile attraverso il precedente version id e indicando il parametro versionid in querystring nell'operazione di GET. In caso di cancellazione il file non è più visibile, ma è ancora raggiungibile attraverso le versioni precedenti. L'ultima, quindi, non sarà più recuperabile.
Il versioning automatico è per certi versi simile allo snapshot, ma quest'ultimo richiede un approccio manuale e più chiamate per raggiungere lo stesso scopo. Dall'altro lato però è più specifico e ci permette di indicare quali blob tenere da parte.
Possiamo usare il versioning contemporaneamente allo snapshot, seppure sconsigliato, oppure al soft delete, visto nello script #109, poiché non siamo al riparo da cancellazioni involontarie. Possiamo usare inoltre il lifecycle automatico (script #125) per portare le versioni da un pricing tier cool o archive per abbassare il costo dello storage. Se usiamo operazioni di update di singoli blocchi allora lo spazio imputato è relativo solo a quest'ultimo, diversamente, se sostituiamo l'intero blob o se lo spostiamo in un altro tier, l'intero spazio viene imputato.
Per maggiori informazioni e dettagli sul billing rimandiamo alla pagina specifica https://docs.microsoft.com/en-us/azure/storage/blobs/versioning-overview
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Azure Cosmos DB con i vettori
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Code scanning e advanced security con Azure DevOps
Cambiare la chiave di partizionamento di Azure Cosmos DB
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Criptare la comunicazione con mTLS in Azure Container Apps
Aggiungere interattività lato server in Blazor 8
Routing statico e PreRendering in una Blazor Web App
Gestire domini wildcard in Azure Container Apps
Utilizzare un service principal per accedere a Azure Container Registry
Eseguire una query su SQL Azure tramite un workflow di GitHub