Beibehalten von Dateien in Azure Cloud Shell

Cloud Shell nutzt Azure Files, um Dateien sitzungsübergreifend beizubehalten. Beim ersten Start fordert Cloud Shell Sie auf, eine neue oder vorhandene Dateifreigabe zu verknüpfen, um Dateien sitzungsübergreifend beizubehalten.

Hinweis

Für Bash und PowerShell wird dieselbe Dateifreigabe verwendet. In Cloud Shell kann der automatischen Bereitstellung nur eine Dateifreigabe zugeordnet werden.

Die Azure Storage-Firewall wird für Cloud Shell-Speicherkonten nicht unterstützt.

Erstellen von neuem Speicher

Wenn Sie die grundlegenden Einstellungen verwenden und nur ein Abonnement auswählen, werden von Cloud Shell in der für Sie unterstützten nächstgelegenen Region drei Ressourcen erstellt:

  • Ressourcengruppe: cloud-shell-storage-<region>
  • Speicherkonto: cs<uniqueGuid>
  • Dateifreigabe: cs-<user>-<domain>-com-<uniqueGuid>

Screenshot der Auswahl des Abonnements für Ihr Speicherkonto

Die Dateifreigabe wird in Ihrem Verzeichnis $HOME als clouddrive eingebunden. Dies ist eine einmalige Aktion, und die Dateifreigabe wird in den nachfolgenden Sitzungen automatisch bereitgestellt.

Die Dateifreigabe enthält auch ein 5 GB-Image, das automatisch Daten in Ihrem $HOME-Verzeichnis speichert. Diese Dateifreigabe wird sowohl für Bash als auch für PowerShell verwendet.

Verwenden vorhandener Ressourcen

Sie können vorhandene Ressourcen zuordnen, indem Sie die erweiterte Option verwenden. Wählen Sie bei der Anzeige mit der Aufforderung zum Einrichten des Speichers die Option Erweiterte Einstellungen anzeigen, um weitere Optionen anzuzeigen. Die aufgefüllten Speicheroptionen werden nach Konten mit lokal redundantem Speicher (LRS), georedundantem Speicher (GRS) und zonenredundantem Speicher (ZRS) gefiltert.

Hinweis

Für zusätzliche Resilienz wird die Verwendung von GRS- oder ZRS-Speicherkonten für Ihre unterstützende Dateifreigabe empfohlen. Die Art der Redundanz hängt von Ihren Zielen und Preisvorstellungen ab. Erhalten Sie weitere Informationen zu Replikationsoptionen für Azure Storage-Konten.

Screenshot der Konfiguration Ihres Speicherkontos

Schützen des Speicherzugriffs

Aus Sicherheitsgründen sollte jeder Benutzer ein eigenes Speicherkonto erstellen. Für die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) benötigen Benutzer Mitwirkenderzugriff oder höher auf Speicherkontoebene.

In Cloud Shell wird eine Azure-Dateifreigabe in einem Speicherkonto innerhalb eines angegebenen Abonnements verwendet. Aufgrund von geerbten Berechtigungen können Benutzer mit ausreichenden Zugriffsrechten für das Abonnement auf alle Speicherkonten und Dateifreigaben zugreifen, die im Abonnement enthalten sind.

Benutzer sollten den Zugriff auf ihre Dateien sperren, indem sie die Berechtigungen auf der Speicherkonto- oder Abonnementebene festlegen.

Das Cloud Shell-Speicherkonto enthält Dateien, die vom Cloud Shell-Benutzer im Basisverzeichnis erstellt werden. Hierbei kann es sich auch um vertrauliche Informationen handeln, z. B. Zugriffstoken oder Anmeldeinformationen.

Unterstützte Speicherregionen

Um die aktuelle Region zu suchen, können Sie env in Bash ausführen und die Variable ACC_LOCATION suchen oder in PowerShell $env:ACC_LOCATION ausführen. Dateifreigaben erhalten ein für Sie erstelltes 5-GB-Image zum Beibehalten Ihres Verzeichnisses $HOME.

Cloud Shell-Computer sind in folgenden Regionen vorhanden:

Bereich Region
Amerika USA, Osten; USA, Süden-Mitte; USA, Westen
Europa „Europa, Norden“, „Europa, Westen“
Asien-Pazifik Indien, Mitte; Asien, Südosten

Sie sollten eine Region auswählen, die Ihren Anforderungen entspricht.

Sekundäre Speicherregionen

Wenn eine sekundäre Speicherregion verwendet wird, befindet sich das zugehörige Azure Storage-Konto in einer anderen Region als der Cloud Shell-Computer, auf dem Sie es einbinden. Sie können z. B. festlegen, dass sich Ihr Speicherkonto in „Kanada, Osten“, einer sekundären Region, befindet, während sich Ihr Cloud Shell-Computer jedoch weiterhin in einer primären Region befindet. Ihre ruhenden Daten befinden sich in Kanada, werden jedoch in den USA verarbeitet.

Hinweis

Wenn eine sekundäre Region verwendet wird, können der Dateizugriff und die Startzeit für Cloud Shell verlangsamt sein.

Ein Benutzer kann (Get-CloudDrive | Get-AzStorageAccount).Location in PowerShell ausführen, um den Speicherort seiner Dateifreigabe anzuzeigen.

Beschränken der Ressourcenerstellung mit einer Azure-Ressourcenrichtlinie

Speicherkonten, die in Cloud Shell erstellt werden, erhalten das Tag ms-resource-usage:azure-cloud-shell. Wenn Sie nicht möchten, dass Benutzer*innen Speicherkonten in Cloud Shell erstellen, können Sie eine Azure-Ressourcenrichtlinie für Tags erstellen, die durch das jeweilige Tag ausgelöst werden.

Funktionsweise von Cloud Shell-Speicher

Cloud Shell nutzt die beiden folgenden Methoden zum Beibehalten von Dateien:

  • Es wird ein Datenträgerimage Ihres Verzeichnisses $HOME erstellt, um alle Inhalte im Verzeichnis beizubehalten. Das Datenträgerimage wird in der von Ihnen angegebenen Dateifreigabe als acc_<User>.img unter fileshare.storage.windows.net/fileshare/.cloudconsole/acc_<User>.img gespeichert, und die Änderungen werden automatisch synchronisiert.
  • Ihre angegebene Dateifreigabe wird zur direkten Interaktion mit der Freigabe als clouddrive in Ihr Verzeichnis $HOME eingebunden. /Home/<User>/clouddrive wird fileshare.storage.windows.net/fileshare zugeordnet.

Hinweis

Alle Dateien in Ihrem Verzeichnis $HOME, z.B. SSH-Schlüssel, werden dauerhaft in Ihrem Benutzerdatenträgerimage beibehalten, das in der eingebundenen Dateifreigabe gespeichert ist. Nutzen Sie beim dauerhaften Speichern von Informationen in Ihrem Verzeichnis $HOME und auf der eingebundenen Dateifreigabe die bewährten Methoden.

clouddrive-Befehle

Verwenden des Befehls clouddrive

In Cloud Shell können Sie den Befehl clouddrive ausführen, mit dem Sie die in Cloud Shell bereitgestellte Dateifreigabe manuell aktivieren können.

Screenshot der Ausführung des Befehls „clouddrive“ in Bash

Auflisten von clouddrive

Führen Sie den df-Befehl aus, um zu ermitteln, welche Dateifreigabe als clouddrive bereitgestellt wird.

Der Dateipfad zu „clouddrive“ zeigt den Namen Ihres Speicherkontos und die Dateifreigabe in der URL. Zum Beispiel, //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

Einbinden eines neuen clouddrive-Verzeichnisses

Voraussetzungen für die manuelle Bereitstellung

Sie können die Dateifreigabe aktualisieren, die Cloud Shell zugeordnet ist, indem Sie den Befehl clouddrive mount verwenden.

Hinweis

Wenn Sie eine neue Dateifreigabe einbinden, wird für Ihr $HOME-Verzeichnis ein neues Benutzerimage erstellt. Ihre vorheriges $HOME-Image wird in Ihrer vorherigen Dateifreigabe gespeichert.

Führen Sie den Befehl clouddrive mount mit den folgenden Parametern aus:

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

Führen Sie clouddrive mount -h wie hier gezeigt aus, um weitere Details anzuzeigen:

Screenshot der Ausführung des Befehls „clouddrive mount“ in Bash

Aufheben der Einbindung von clouddrive

Sie können die Bereitstellung einer Dateifreigabe in Cloud Shell jederzeit aufheben. Da Cloud Shell eine eingebundene Dateifreigabe benötigt, um verwendet werden zu können, fordert Cloud Shell Sie auf, bei der nächsten Sitzung eine weitere Dateifreigabe zu erstellen und einzubinden.

  1. Führen Sie clouddrive unmount aus.
  2. Lesen und bestätigen Sie die Eingabeaufforderungen.

Die nicht eingebundene Dateifreigabe bleibt so lange bestehen, bis Sie sie manuell löschen. Nach dem Aufheben der Bereitstellung sucht Cloud Shell in nachfolgenden Sitzungen nicht mehr nach dieser Dateifreigabe. Führen Sie clouddrive unmount -h wie hier gezeigt aus, um weitere Details anzuzeigen:

Screenshot der Ausführung des Befehls „clouddrive unmount“ in Bash

Warnung

Durch Ausführung dieses Befehls werden keine Ressourcen gelöscht. Wenn Sie aber eine Ressourcengruppe, ein Speicherkonto oder eine Dateifreigabe mit Zuordnung zu Cloud Shell manuell löschen, werden dadurch sowohl Ihr Datenträgerimage im Verzeichnis $HOME als auch alle Dateien in Ihrer Dateifreigabe gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.

PowerShell-spezifische Befehle

Auflisten von clouddrive-Azure-Dateifreigaben

Das Cmdlet Get-CloudDrive ruft Informationen zu den derzeit von clouddrive in Cloud Shell eingebundenen Azure-Dateifreigaben ab.

Screenshot der Ausführung des Befehls „Get-CloudDrive“ in PowerShell

Aufheben der Bereitstellung von clouddrive

Sie können die Einbindung einer Azure-Dateifreigabe in Cloud Shell jederzeit aufheben. Das Cmdlet Dismount-CloudDrive hebt die Einbindung einer Azure-Dateifreigabe für das aktuelle Speicherkonto auf. Durch das Aufheben der Einbindung von clouddrive wird die aktuelle Sitzung beendet.

Wenn die Azure-Dateifreigabe entfernt wurde, werden Sie in der nächsten Sitzung aufgefordert, eine neue Azure-Dateifreigabe zu erstellen und einzubinden.

Screenshot der Ausführung des Befehls „Dismount-CloudDrive“ in PowerShell

Übertragen Sie lokale Dateien auf Cloud Shell

Das Verzeichnis clouddrive wird mit dem Blatt „Storage“ im Azure-Portal synchronisiert. Verwenden Sie dieses Blatt, um lokale Dateien in Ihre oder aus Ihrer Dateifreigabe zu übertragen. Die Aktualisierung von Dateien aus Cloud Shell wird auf der GUI für die Dateispeicherung widergespiegelt, wenn Sie das Blatt aktualisieren.

Herunterladen von Dateien aus dem Azure-Portal

Screenshot der Auflistung lokaler Dateien im Azure-Portal

  1. Navigieren Sie im Azure-Portal zur bereitgestellten Dateifreigabe.
  2. Wählen Sie die Zieldatei aus.
  3. Wählen Sie die Schaltfläche Herunterladen.

Herunterladen von Dateien in Azure Cloud Shell

  1. Wählen Sie in einer Azure Cloud Shell-Sitzung das Symbol Dateien hochladen/herunterladen und dann die Option Herunterladen aus.

  2. Geben Sie im Dialogfeld Datei herunterladen den Pfad zu der Datei ein, die Sie herunterladen möchten.

    Screenshot des Dialogfelds „Herunterladen“ in Cloud Shell

    Sie können nur Dateien herunterladen, die sich unter Ihrem Ordner $HOME befinden.

  3. Wählen Sie die Schaltfläche Herunterladen.

Hochladen von Dateien

Screenshot des Hochladens von Dateien im Azure-Portal

  1. Navigieren Sie zu Ihrer bereitgestellten Dateifreigabe.
  2. Klicken Sie auf die Schaltfläche Hochladen.
  3. Wählen Sie die Dateien aus, die Sie hochladen möchten.
  4. Bestätigen Sie den Upload.

Nun sollten Sie die Dateien angezeigt werden, auf die Sie in Ihrem Verzeichnis clouddrive in Cloud Shell zugreifen können.

Hinweis

Wenn Sie eine Funktion in einer Datei definieren und diese über die PowerShell-Cmdlets aufrufen müssen, muss der Punktoperator enthalten sein. Beispiel: . .\MyFunctions.ps1

Hochladen von Dateien in Azure Cloud Shell

  1. Wählen Sie in einer Azure Cloud Shell-Sitzung das Symbol Dateien hochladen/herunterladen und dann die Option Hochladen aus. Ihr Browser öffnet ein Dateidialogfeld.
  2. Wählen Sie die Datei, die Sie hochladen möchten, und wählen Sie dann die Schaltfläche Öffnen aus.

Die Datei wird in den Stamm Ihres Ordners $HOME hochgeladen. Sie können die Datei nach dem Upload verschieben.

Nächste Schritte