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
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Eseguire attività pianificate con Azure Container Jobs
Evitare la script injection nelle GitHub Actions
Utilizzare la session affinity con Azure Container Apps
Eseguire operazioni sui blob con Azure Storage Actions
.NET Conference Italia 2023
Usare le collection expression per inizializzare una lista di oggetti in C#
Criptare la comunicazione con mTLS in Azure Container Apps
Eseguire le GitHub Actions offline
Disabilitare automaticamente un workflow di GitHub
Effettuare chiamate con versioning da Blazor ad ASP.NET Core