Rendere persistenti i file in Azure Cloud Shell

Cloud Shell usa File di Azure per rendere persistenti i file tra le sessioni. All'avvio iniziale, Cloud Shell richiede di associare una condivisione file nuova o esistente a file persistenti tra sessioni.

Nota

Bash e PowerShell condividono la stessa condivisione file. È possibile associare una sola condivisione file al montaggio automatico in Cloud Shell.

Il firewall di archiviazione di Azure non è supportato per gli account di archiviazione cloud shell.

Creare una nuova risorsa di archiviazione

Quando si usano le impostazioni di base e si seleziona una sola sottoscrizione, Cloud Shell crea tre risorse per conto dell'utente nell'area di Azure supportata più vicina all'utente:

  • Gruppo di risorse: cloud-shell-storage-<region>
  • Account di archiviazione: cs<uniqueGuid>
  • Fileshare: cs-<user>-<domain>-com-<uniqueGuid>

Screenshot della scelta della sottoscrizione per l'account di archiviazione.

La condivisione file viene montata come clouddrive nella $HOME directory. Si tratta di un'azione una sola volta e i montaggi di condivisione file vengono montati automaticamente nelle sessioni successive.

La condivisione file contiene anche un'immagine da 5 GB che mantiene automaticamente i dati nella $HOME directory. Questa condivisione file viene usata sia per Bash che per PowerShell.

Usare le risorse esistenti

Usando l'opzione avanzata, è possibile associare le risorse esistenti. Quando viene visualizzata la richiesta di installazione dell'archiviazione, selezionare Mostra impostazioni avanzate per visualizzare altre opzioni. Le opzioni di archiviazione popolate filtrano gli account di archiviazione con ridondanza locale, archiviazione con ridondanza geografica e archiviazione con ridondanza della zona.

Nota

L'uso degli account di archiviazione con ridondanza geografica o della zona è consigliato per aumentare la resilienza per la condivisione di file di backup. Il tipo di ridondanza dipende dagli obiettivi e dalla preferenza di prezzo. Altre informazioni sulle opzioni di replica per gli account di Archiviazione di Azure.

Screenshot della configurazione dell'account di archiviazione.

Protezione dell'accesso all'archiviazione

Per la sicurezza, ogni utente deve creare un proprio account di archiviazione. Per il controllo degli accessi in base al ruolo di Azure, gli utenti devono avere accesso ai collaboratori o superiore a livello di account di archiviazione.

Cloud Shell usa una condivisione file di Azure in un account di archiviazione, all'interno di una sottoscrizione specificata. A causa delle autorizzazioni ereditate, gli utenti con diritti di accesso sufficienti alla sottoscrizione possono accedere a tutti gli account di archiviazione e alle condivisioni file contenute nella sottoscrizione.

Gli utenti devono bloccare l'accesso ai file impostando le autorizzazioni all'account di archiviazione o al livello di sottoscrizione.

L'account di archiviazione Cloud Shell contiene file creati dall'utente Cloud Shell nella home directory, che può includere informazioni riservate, inclusi i token di accesso o le credenziali.

Aree di archiviazione supportate

Per trovare l'area corrente, è possibile eseguire env in Bash e individuare la variabile ACC_LOCATIONo da PowerShell eseguire $env:ACC_LOCATION. Le condivisioni file ricevono un'immagine da 5 GB creata automaticamente per mantenere persistente la directory $HOME.

I computer Cloud Shell esistono nelle aree seguenti:

Area Region
Americhe Stati Uniti orientali, Stati Uniti centro-meridionali, Stati Uniti occidentali
Europa Europa settentrionale, Europa occidentale
Asia Pacifico India centrale, Asia sud-orientale

È consigliabile scegliere un'area che soddisfi i requisiti.

Aree di archiviazione secondarie

Se viene usata un'area di archiviazione secondaria, l'account di archiviazione di Azure associato si trova in un'area diversa come Cloud Shell computer in cui vengono montati. Ad esempio, è possibile impostare l'account di archiviazione da individuare in Canada orientale, un'area secondaria, ma il computer Cloud Shell si trova ancora in un'area primaria. I dati inattivi si trovano in Canada, ma vengono elaborati nella Stati Uniti.

Nota

Se viene usata un'area secondaria, l'accesso ai file e l'ora di avvio per Cloud Shell potrebbero essere più lente.

Un utente può eseguire (Get-CloudDrive | Get-AzStorageAccount).Location in PowerShell per visualizzare il percorso della condivisione file.

Limitare la creazione di risorse con i criteri delle risorse di Azure

Gli account di archiviazione creati in Cloud Shell vengono contrassegnati con ms-resource-usage:azure-cloud-shell. Se si vuole impedire agli utenti di creare account di archiviazione in Cloud Shell, creare criteri di risorsa di Azure per i tag attivati da questo tag specifico.

Come funziona l’archiviazione Cloud Shell

Cloud Shell rende persistenti i file tramite entrambe le modalità seguenti:

  • Creazione di un'immagine del disco della directory $HOME per rendere persistenti tutti i contenuti della directory. L'immagine del disco viene salvata nella condivisione file specificata come acc_<User>.img in fileshare.storage.windows.net/fileshare/.cloudconsole/acc_<User>.imge sincronizza automaticamente le modifiche.
  • Montaggio della condivisione file specificata come clouddrive nella $HOME directory per l'interazione diretta con condivisione file. Viene eseguito il mapping di /Home/<User>/clouddrive a fileshare.storage.windows.net/fileshare.

Nota

Tutti i file nella $HOME directory, ad esempio le chiavi SSH, vengono mantenuti nell'immagine del disco utente, archiviata nella condivisione file montata. Applicare le procedure consigliate quando si conservano le informazioni nella $HOME directory e la condivisione file montata.

comandi di clouddrive

Usare il comando clouddrive

In Cloud Shell è possibile eseguire un comando denominato clouddrive, che consente di aggiornare manualmente la condivisione file montata in Cloud Shell.

Screenshot dell'esecuzione del comando clouddrive in bash.

Elenco clouddrive

Per individuare quale condivisione file è montata come clouddrive, eseguire il df comando .

Il percorso del file in clouddrive mostra il nome dell'account di archiviazione e la condivisione file nell'URL. Ad esempio: //storageaccountname.file.core.windows.net/filesharename

justin@Azure:~$ df
Filesystem                                          1K-blocks   Used  Available Use% Mounted on
overlay                                             29711408 5577940   24117084  19% /
tmpfs                                                 986716       0     986716   0% /dev
tmpfs                                                 986716       0     986716   0% /sys/fs/cgroup
/dev/sda1                                           29711408 5577940   24117084  19% /etc/hosts
shm                                                    65536       0      65536   0% /dev/shm
//mystoragename.file.core.windows.net/fileshareName 5368709120    64 5368709056   1% /home/justin/clouddrive

Montare una nuova clouddrive

Prerequisiti per il montaggio manuale

È possibile aggiornare la condivisione file associata a Cloud Shell usando il clouddrive mount comando .

Nota

Se si monta una nuova condivisione file, viene creata una nuova immagine utente per la $HOME directory. L'immagine precedente $HOME viene mantenuta nella condivisione file precedente.

Eseguire il comando clouddrive mount con i parametri seguenti:

clouddrive mount -s mySubscription -g myRG -n storageAccountName -f fileShareName

Per visualizzare altri dettagli, eseguire clouddrive mount -h, come illustrato di seguito:

Screenshot dell'esecuzione del comando di montaggio clouddrive in bash.

Smontare l'unità clouddrive

È possibile smontare una condivisione file montata in Cloud Shell in qualsiasi momento. Poiché Cloud Shell richiede l'uso di una condivisione file montata, Cloud Shell richiede di creare e montare un'altra condivisione file nella sessione successiva.

  1. Eseguire clouddrive unmount.
  2. Accettare e confermare i prompt.

La condivisione file smontata continua a esistere finché non viene eliminata manualmente. Dopo aver smontato, Cloud Shell non cerca più questa condivisione file nelle sessioni successive. Per visualizzare altri dettagli, eseguire clouddrive unmount -h, come illustrato di seguito:

Screenshot dell'esecuzione del comando di smontaggio clouddrive in bash.

Avviso

Anche se l'esecuzione di questo comando non elimina risorse, eliminando manualmente un gruppo di risorse, un account di archiviazione o una condivisione file mappata a Cloud Shell cancella l'immagine $HOME del disco della directory e tutti i file nella condivisione file. Questa azione non può essere annullata.

PowerShell - Comandi specifici

Elencare le condivisioni file di Azure clouddrive

Il Get-CloudDrive cmdlet recupera le informazioni di condivisione file di Azure attualmente montate dall'oggetto clouddrive in Cloud Shell.

Screenshot dell'esecuzione del comando Get-CloudDrive in PowerShell.

Smontare clouddrive

È possibile smontare una condivisione file di Azure montata in Cloud Shell in qualsiasi momento. Il Dismount-CloudDrive cmdlet smonta una condivisione file di Azure dall'account di archiviazione corrente. Se si smonta clouddrive, viene terminata la sessione corrente.

Se la condivisione file di Azure è stata rimossa, verrà richiesto di creare e montare una nuova condivisione file di Azure nella sessione successiva.

Screenshot dell'esecuzione del comando Dismount-CloudDrive in PowerShell.

Trasferire file locali in Cloud Shell

La directory clouddrive viene sincronizzata con il pannello di archiviazione del portale di Azure. Usare questo pannello per trasferire file locali da e verso la condivisione file. L'aggiornamento dei file dall'interno di Cloud Shell si riflette nell'interfaccia utente grafica di archiviazione file quando il pannello viene aggiornato.

Scaricare i file dal portale di Azure

Screenshot che elenca i file locali nel portale di Azure.

  1. Nel portale di Azure passare alla condivisione file montata.
  2. Selezionare il file di destinazione.
  3. Selezionare il pulsante Scarica.

Scaricare file in Azure Cloud Shell

  1. In una sessione di Azure Cloud Shell selezionare l'icona Carica/Scarica file e selezionare l'opzione Scarica.

  2. Nella finestra di dialogo Scarica un file immettere il percorso del file da scaricare.

    Screenshot della finestra di dialogo di download in Cloud Shell.

    È possibile scaricare solo i file che si trovano nella $HOME cartella.

  3. Selezionare il pulsante Scarica.

Caricare i file

Screenshot che mostra come caricare i file nel portale di Azure.

  1. Passare alla condivisione file montata.
  2. Selezionare il pulsante Carica.
  3. Selezionare uno o più file che si desidera caricare.
  4. Confermare il caricamento.

Si dovrebbe a questo punto vedere che è possibile accedere ai file nella directory clouddrive in Cloud Shell.

Nota

se è necessario definire una funzione in un file e chiamarla dai cmdlet di PowerShell, l'operatore punto deve essere incluso. ad esempio . .\MyFunctions.ps1

Caricare file in Azure Cloud Shell

  1. In una sessione di Azure Cloud Shell selezionare l'icona Carica/Scarica file e selezionare l'opzione Carica. Il browser apre una finestra di dialogo file.
  2. Scegliere il file da caricare e quindi selezionare il pulsante Apri .

Il file viene caricato nella radice della $HOME cartella. È possibile spostare il file dopo il caricamento.

Passaggi successivi