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
Selettore CSS :has() e i suoi casi d'uso avanzati
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Collegare applicazioni server e client con .NET Aspire
Proteggere le risorse Azure con private link e private endpoints
Introduzione alle Container Queries
Simulare Azure Cosmos DB in locale con Docker
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Recuperare l'ultima versione di una release di GitHub
Managed deployment strategy in Azure DevOps
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Generare una User Delegation SAS in .NET per Azure Blob Storage