Le macchine virtuali di Azure, siano esse virtual machine o cloud service, sono un servizio gestito completamente da Microsoft che sfruttano i file VHD per memorizzare i dischi sull'infrastruttura di storage di Azure. Questo significa che godiamo di tutti i benefici offerti dallo storage, come gli snapshot e i backup automatici. Tramite gli Azure Disk possiamo poi avere più dischi e scrivere i nostri file. A tutto questo c'è però un limite: solo una VM può usare lo stesso disco.
Ci sono scenari in cui le VM devono condividere file tra di loro e in questi casi possiamo sfruttare un servizio introdotto recentemente di nome Azure File. Essi danno la possibilità di accedere ad uno storage utilizzando il protocollo SMB 2.1, il quale è ampiamente sfruttato nelle share di rete per permettere a più PC di operare su uno stesso storage. Questo vuol dire che possiamo accedere contemporaneamente da più VM e soprattutto usare le normali API di IO offerte da Window per enumerare, leggere e scrivere.
Per sfruttare questa funzionalità dobbiamo innanzitutto configurare la share attraverso PowerShell (assicurarsi di avere l'ultima versione):
# Creo il contesto con le credenziali $ctx=New-AzureStorageContext nomeAccount chiavePrimariaoSecondaria # Creo la share New-AzureStorageShare miashare -Context $ctx
Creata la share possiamo sfruttarla dalle macchine virtuali o dai cloud service. Per farlo ci basta usare il comando net use, come di seguito.
cmdkey /add:nomeAccount.file.core.windows.net /user:nomeAccount /pass:chiavePrimariaoSecondaria net use z: \\nomeAccount.file.core.windows.net\miashare
Nell'esempio precedente memorizziamo le chiavi nello store di Windows per evitare di reinserirle. Da notare che le credenziali sono le medesime chiavi dello storage di Azure. Possiamo automatizzare queste righe di codice con i startup task dei cloud service così da non dover procedere manualmente al setup. A questo punto troveremo a disposizione l'unità Z: nella quale possiamo inserire i nostri file e cartelle.
Da notare che non possiamo mappare l'unità sul nostro PC, ma solo su macchine virtuali Azure. Possiamo però accederci tramite le API REST e con i relativi SDK di ogni linguaggio.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Gestire i dati con Azure Cosmos DB Data Explorer
Hosting di componenti WebAssembly in un'applicazione Blazor static
Change tracking e composition in Entity Framework
Utilizzare Azure Cosmos DB con i vettori
Utilizzare un service principal per accedere a Azure Container Registry
Gestire il colore CSS con HWB
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Gestire domini wildcard in Azure Container Apps
Recuperare l'ultima versione di una release di GitHub
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API