Schnellstart: Erstellen und Verwalten von Azure-Dateifreigaben mit der Azure CLIQuickstart: Create and manage Azure file shares using Azure CLI

In dieser Anleitung werden die Grundlagen der Verwendung von Azure-Dateifreigaben mit der Azure CLI Schritt für Schritt beschrieben.This guide walks you through the basics of working with Azure file shares with the Azure CLI. Azure-Dateifreigaben sind genau wie andere Dateifreigaben, werden jedoch in der Cloud gespeichert und von der Azure-Plattform unterstützt.Azure file shares are just like other file shares, but stored in the cloud and backed by the Azure platform. Azure-Dateifreigaben unterstützen das SMB-Protokoll nach Industriestandard und ermöglichen es, Dateien für mehrere Computer, Anwendungen und Instanzen freizugeben.Azure File shares support the industry standard SMB protocol and enable file sharing across multiple machines, applications, and instances.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Öffnen von Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell ist eine interaktive Shell-Umgebung, die in Azure gehostet und über den Browser verwendet wird.Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browse. Mit Azure Cloud Shell können Sie bash oder PowerShell verwenden, um eine Vielzahl von Tools zum Arbeiten mit Azure-Diensten auszuführen.Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell ist mit den Befehlen vorinstalliert, damit Sie den Inhalt in diesem Artikel ausführen können. Sie müssen also in der lokalen Umgebung nichts installieren.Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

Um in Azure Cloud Shell Code aus diesem Artikel auszuführen, öffnen Sie eine Cloud Shell-Sitzung, verwenden Sie für einen Codeblock die Schaltfläche Kopieren, um Code zu kopieren, und fügen Sie ihn mit STRG+UMSCHALT+V (Windows und Linux) oder BEFEHL+UMSCHALT+V (macOS) in die Cloud Shell-Sitzung ein.To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. Eingefügter Code wird nicht automatisch ausgeführt. Sie müssen zum Ausführen von Code die EINGABETASTE drücken.Pasted text is not automatically executed, so press Enter to run code.

Sie können Azure Cloud Shell wie folgt starten:You can launch Azure Cloud Shell with:

Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Dadurch wird nicht automatisch Text in Cloud Shell kopiert.This doesn't automatically copy text to Cloud Shell. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Öffnen Sie shell.azure.com in einem Browser.Open shell.azure.com in your browser. Schaltfläche zum Starten von Azure Cloud ShellLaunch Azure Cloud Shell button
Klicken Sie im Azure-Portal rechts oben im Menü auf die Schaltfläche Cloud Shell:Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell-Schaltfläche im Azure-Portal

Wenn Sie sich für die lokale Installation und Nutzung der Azure CLI entscheiden, müssen Sie für die Schritte dieses Artikels Azure CLI Version 2.0.4 oder höher ausführen.If you decide to install and use Azure CLI locally, for the steps in this article, you must be running Azure CLI version 2.0.4 or later. Führen Sie den Befehl az --version aus, um Ihre Azure CLI-Version zu ermitteln.Run az --version to find your Azure CLI version. Wenn Sie eine Installation oder ein Upgrade ausführen müssen, finden Sie unter Installieren von Azure CLI 2.0 Informationen dazu.If you need to install or upgrade, see Install Azure CLI 2.0.

Standardmäßig wird für Azure CLI-Befehle JSON-Code (JavaScript Object Notation) zurückgegeben.By default, Azure CLI commands return JavaScript Object Notation (JSON). JSON ist die Standardmethode zum Senden und Empfangen der Nachrichten von REST-APIs.JSON is the standard way to send and receive messages from REST APIs. Um die Verwendung von JSON-Antworten zu ermöglichen, wird in einigen Beispielen dieses Artikels für Azure CLI-Befehle der Parameter query verwendet.To facilitate working with JSON responses, some of the examples in this article use the query parameter on Azure CLI commands. Für diesen Parameter wird die JMESPath-Abfragesprache zum Analysieren des JSON-Codes genutzt.This parameter uses the JMESPath query language to parse JSON. Weitere Informationen zur Verwendung der Ergebnisse von Azure CLI-Befehlen per JMESPath-Abfragesprache erhalten Sie im JMESPath-Tutorial.To learn more about how to use the results of Azure CLI commands by following the JMESPath query language, see the JMESPath tutorial.

Anmelden bei AzureSign in to Azure

Öffnen Sie bei der lokalen Verwendung der Azure CLI eine Eingabeaufforderung, und melden Sie sich bei Azure an, sofern noch nicht geschehen.If you are using the Azure CLI locally, open a prompt and sign in to Azure if you haven't done so already.

az login

Erstellen einer RessourcengruppeCreate a resource group

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.A resource group is a logical container in which Azure resources are deployed and managed. Falls Sie nicht bereits über eine Azure-Ressourcengruppe verfügen, können Sie mit dem Befehl az group create eine Ressourcengruppe erstellen.If you don't already have an Azure resource group, you can use the az group create command to create one.

Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort East US (USA, Osten) erstellt:The following example creates a resource group named myResourceGroup in the East US location:

az group create --name myResourceGroup --location eastus

Speicherkonto erstellenCreate a storage account

Ein Speicherkonto ist ein gemeinsam genutzter Pool mit Speicherplatz, den Sie zum Bereitstellen von Azure-Dateifreigaben oder anderen Speicherressourcen wie Blobs oder Warteschlangen verwenden können.A storage account is a shared pool of storage in which you can deploy Azure file shares or other storage resources, such as blobs or queues. Ein Speicherkonto kann eine unbegrenzte Anzahl von Dateifreigaben enthalten.A storage account can contain an unlimited number of file shares. Auf einer Freigabe kann eine unbegrenzte Anzahl von Dateien gespeichert werden, bis die Kapazitätsgrenzen des Speicherkontos erreicht sind.A share can store an unlimited number of files, up to the capacity limits of the storage account.

Im folgenden Beispiel wird mit dem Befehl az storage account create ein Speicherkonto mit dem Namen mystorageaccount<Zufallszahl> erstellt und der Name dieses Speicherkontos dann in die Variable $STORAGEACCT eingefügt.The following example creates a storage account named mystorageaccount<random number> by using the az storage account create command, and then puts the name of that storage account in the $STORAGEACCT variable. Speicherkontonamen müssen eindeutig sein. Ersetzen Sie daher „mystorageacct“ durch einen eindeutigen Namen.Storage account names must be unique, so make sure to replace "mystorageacct" with a unique name.

STORAGEACCT=$(az storage account create \
    --resource-group "myResourceGroup" \
    --name "mystorageacct" \
    --location eastus \
    --sku Standard_LRS \
    --query "name" | tr -d '"')

Abrufen des SpeicherkontoschlüsselsGet the storage account key

Mit Speicherkontoschlüsseln wird in einem Speicherkonto den Zugriff auf die Ressourcen gesteuert.Storage account keys control access to resources in a storage account. Die Schlüssel werden automatisch erstellt, wenn Sie ein Speicherkonto erstellen.The keys are automatically created when you create a storage account. Sie können die Speicherkontoschlüssel für Ihr Speicherkonto mit dem Befehl az storage account keys list abrufen:You can get the storage account keys for your storage account by using the az storage account keys list command:

STORAGEKEY=$(az storage account keys list \
    --resource-group "myResourceGroup" \
    --account-name $STORAGEACCT \
    --query "[0].value" | tr -d '"')

Erstellen einer Azure-DateifreigabeCreate an Azure file share

Jetzt können Sie Ihre erste Azure-Dateifreigabe erstellen.Now, you can create your first Azure file share. Erstellen Sie Dateifreigaben mit dem Befehl az storage share create.Create file shares by using the az storage share create command. In diesem Beispiel wird eine Azure-Dateifreigabe mit dem Namen myshare erstellt:This example creates an Azure file share named myshare:

az storage share create \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --name "myshare" 

Freigabenamen dürfen nur Kleinbuchstaben, Zahlen und einzelne Bindestriche enthalten (ein Bindestrich am Anfang ist nicht zulässig).Share names can contain only lowercase letters, numbers, and single hyphens (but they can't start with a hyphen). Ausführliche Informationen zur Benennung von Dateifreigaben und Dateien finden Sie unter Benennen und Referenzieren von Freigaben, Verzeichnissen, Dateien und Metadaten.For complete details about naming file shares and files, see Naming and referencing shares, directories, files, and metadata.

Verwenden Ihrer Azure-DateifreigabeUse your Azure file share

Azure Files bietet zwei Methoden für die Arbeit mit Dateien und Ordnern in Ihrer Azure-Dateifreigabe: das SMB-Protokoll (Server Message Block) nach Industriestandard und das REST-Protokoll „File“.Azure Files provides two methods of working with files and folders within your Azure file share: the industry standard Server Message Block (SMB) protocol and the File REST protocol.

Informationen zum Einbinden einer Dateifreigabe mit SMB finden Sie im folgenden Dokument für Ihr jeweiliges Betriebssystem:To mount a file share with SMB, see the following document based on your OS:

Verwenden einer Azure-Dateifreigabe mit dem REST-Protokoll „File“Using an Azure file share with the File REST protocol

Das REST-Protokoll „File“ kann direkt verwendet werden (Sie können also REST-HTTP-Aufrufe selbst erstellen). Gängiger ist jedoch die Verwendung der Azure CLI, des Azure PowerShell-Moduls oder eines Azure Storage SDK. Bei allen diesen Methoden steht ein praktischer Wrapper um das REST-Protokoll „File“ in der Skript-/Programmiersprache Ihrer Wahl zur Verfügung.It is possible work directly with the File REST protocol directly (handcrafting REST HTTP calls yourself), but the most common way to use the File REST protocol is to use the Azure CLI, the Azure PowerShell module, or an Azure Storage SDK, all of which provide a nice wrapper around the File REST protocol in the scripting/programming language of your choice.

Die meisten Benutzer werden ihre Azure-Dateifreigabe in Azure Files wahrscheinlich über das SMB-Protokoll nutzen, da sie so die bereits vorhandenen Anwendungen und Tools verwenden können, die sie erwarten. Es gibt jedoch auch Gründe, die für die Verwendung der REST-API „File“ sprechen:We expect most uses of Azure Files will want to work with their Azure file share over the SMB protocol, as this allows them to use the existing applications and tools they expect to be able to use, but there are several reasons why it is advantageous to use the File REST API rather than SMB, such as:

  • Sie durchsuchen Ihre Dateifreigabe über Bash in Azure Cloud Shell. (In diesem Fall können Dateifreigaben nicht über SMB eingebunden werden.)You are browsing your file share from the Azure Bash Cloud Shell (which cannot mount file shares over SMB).
  • Sie müssen ein Skript oder eine Anwendung über einen Client ausführen, der keine SMB-Freigabe einbinden kann (beispielsweise ein lokaler Client, für den die Blockierung von Port 445 nicht aufgehoben wurde).You need to execute a script or application from a client that cannot mount an SMB share, such as on-premises clients that do not have port 445 unblocked.
  • Sie nutzen serverlose Ressourcen (beispielsweise Azure Functions).You are taking advantage of serverless resources, such as Azure Functions.

Die folgenden Beispiele zeigen, wie Sie über die Azure CLI Ihre Azure-Dateifreigabe mit dem REST-Protokoll „File“ ändern.The following examples show how to use the Azure CLI to manipulate your Azure file share with the File REST protocol.

Erstellen eines VerzeichnissesCreate a directory

Verwenden Sie den Befehl az storage directory create, um im Stammverzeichnis Ihrer Azure-Dateifreigabe ein neues Verzeichnis mit dem Namen myDirectory zu erstellen:To create a new directory named myDirectory at the root of your Azure file share, use the az storage directory create command:

az storage directory create \
   --account-name $STORAGEACCT \
   --account-key $STORAGEKEY \
   --share-name "myshare" \
   --name "myDirectory" 

Hochladen einer DateiUpload a file

Zum Demonstrieren eines Dateiuploads mit dem Befehl az storage file upload erstellen Sie zuerst eine Datei zum Hochladen auf das temporäre Cloud Shell-Laufwerk.To demonstrate how to upload a file by using the az storage file upload command, first create a file to upload on the Cloud Shell scratch drive. Im folgenden Beispiel erstellen Sie die Datei und laden diese anschließend hoch:In the following example, you create and then upload the file:

date > ~/clouddrive/SampleUpload.txt

az storage file upload \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare" \
    --source "~/clouddrive/SampleUpload.txt" \
    --path "myDirectory/SampleUpload.txt"

Beim lokalen Ausführen der Azure CLI ersetzen Sie ~/clouddrive durch einen Pfad, der auf Ihrem Computer vorhanden ist.If you're running Azure CLI locally, substitute ~/clouddrive with a path that exists on your machine.

Nach dem Hochladen der Datei können Sie mit dem Befehl az storage file list sicherstellen, dass die Datei auf Ihre Azure-Dateifreigabe hochgeladen wurde:After you upload the file, you can use the az storage file list command to make sure that the file was uploaded to your Azure file share:

az storage file list \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare" \
    --path "myDirectory" \
    --output table

Herunterladen einer DateiDownload a file

Sie können den Befehl az storage file download verwenden, um eine Kopie der Datei herunterzuladen, die Sie auf das temporäre Cloud Shell-Laufwerk hochgeladen haben:You can use the az storage file download command to download a copy of the file that you uploaded to the Cloud Shell scratch drive:

# Delete an existing file by the same name as SampleDownload.txt, if it exists, because you've run this example before
rm -rf ~/clouddrive/SampleDownload.txt

az storage file download \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare" \
    --path "myDirectory/SampleUpload.txt" \
    --dest "~/clouddrive/SampleDownload.txt"

Kopieren von DateienCopy files

Eine häufige Aufgabe besteht darin, Dateien von einer Dateifreigabe auf eine andere oder in oder aus einem Azure Blob-Speichercontainer zu kopieren.A common task is to copy files from one file share to another file share, or to or from an Azure Blob storage container. Erstellen Sie eine neue Freigabe, um diese Funktionalität zu demonstrieren.To demonstrate this functionality, create a new share. Kopieren Sie die Datei, die Sie auf diese neue Freigabe hochgeladen haben, indem Sie den Befehl az storage file copy verwenden:Copy the file that you uploaded to this new share by using the az storage file copy command:

az storage share create \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --name "myshare2"

az storage directory create \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare2" \
    --name "myDirectory2"

az storage file copy start \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --source-share "myshare" \
    --source-path "myDirectory/SampleUpload.txt" \
    --destination-share "myshare2" \
    --destination-path "myDirectory2/SampleCopy.txt"

Wenn Sie die Dateien auf der neuen Freigabe auflisten, sollte die kopierte Datei angezeigt werden:Now, if you list the files in the new share, you should see your copied file:

az storage file list \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare2" \
    --output table

Der Befehl az storage file copy start ist für Dateiverschiebungen zwischen Azure-Dateifreigaben und Azure-Blobspeichercontainern zwar gut geeignet, aber wir empfehlen Ihnen, für größere Verschiebungen AzCopy zu verwenden.Although the az storage file copy start command is convenient for file moves between Azure file shares and Azure Blob storage containers, we recommend that you use AzCopy for larger moves. (Mit „größer“ ist hier die Anzahl oder Größe von zu verschiebenden Dateien gemeint.) Informieren Sie sich über AzCopy für Linux und AzCopy für Windows.(Larger in terms of the number or size of files being moved.) Learn more about AzCopy for Linux and AzCopy for Windows. AzCopy muss lokal installiert sein.AzCopy must be installed locally. AzCopy ist in Cloud Shell nicht verfügbar.AzCopy isn't available in Cloud Shell.

Erstellen und Verwalten von FreigabemomentaufnahmenCreate and manage share snapshots

Eine weitere nützliche Aufgabe, die Sie mit einer Azure-Dateifreigabe durchführen können, ist die Erstellung von Freigabemomentaufnahmen.Another useful task that you can do with an Azure file share is create share snapshots. Mit einer Momentaufnahme wird eine Kopie einer Azure-Dateifreigabe für einen bestimmten Zeitpunkt erstellt.A snapshot preserves a point-in-time copy of an Azure file share. Freigabemomentaufnahmen ähneln einigen Betriebssystemtechnologien, mit denen Sie unter Umständen bereits vertraut sind:Share snapshots are similar to some operating system technologies that you might already be familiar with:

SNAPSHOT=$(az storage share snapshot \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --name "myshare" \
    --query "snapshot" | tr -d '"')

Durchsuchen des Inhalts einer FreigabemomentaufnahmeBrowse share snapshot contents

Sie können den Inhalt einer Freigabemomentaufnahme durchsuchen, indem Sie den Zeitstempel der Freigabemomentaufnahme, die Sie mit der Variablen $SNAPSHOT erfasst haben, an den Befehl az storage file list übergeben:You can browse the contents of a share snapshot by passing the time stamp of the share snapshot that you captured in the $SNAPSHOT variable to the az storage file list command:

az storage file list \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare" \
    --snapshot $SNAPSHOT \
    --output table

Auflisten von FreigabemomentaufnahmenList share snapshots

Verwenden Sie den folgenden Befehl, um eine Liste mit den Momentaufnahmen anzuzeigen, die Sie für Ihre Freigabe erstellt haben:To see the list of snapshots that you've taken for your share, use the following command:

az storage share list \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --include-snapshot \
    --query "[? name=='myshare' && snapshot!=null]" | tr -d '"'

Wiederherstellen von einer FreigabemomentaufnahmeRestore from a share snapshot

Sie können eine Datei mit dem zuvor verwendeten Befehl az storage file copy start wiederherstellen.You can restore a file by using the az storage file copy start command that you used earlier. Löschen Sie zuerst die Datei „SampleUpload.txt“, die Sie hochgeladen haben, damit Sie sie aus der Momentaufnahme wiederherstellen können:First, delete the SampleUpload.txt file that you uploaded, so you can restore it from the snapshot:

# Delete SampleUpload.txt
az storage file delete \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --share-name "myshare" \
    --path "myDirectory/SampleUpload.txt"
 # Build the source URI for a snapshot restore
URI=$(az storage account show \
    --resource-group "myResourceGroup" \
    --name $STORAGEACCT \
    --query "primaryEndpoints.file" | tr -d '"')
 URI=$URI"myshare/myDirectory/SampleUpload.txt?sharesnapshot="$SNAPSHOT
 # Restore SampleUpload.txt from the share snapshot
az storage file copy start \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --source-uri $URI \
    --destination-share "myshare" \
    --destination-path "myDirectory/SampleUpload.txt"

Löschen einer FreigabemomentaufnahmeDelete a share snapshot

Mit dem Befehl az storage share delete können Sie eine Freigabemomentaufnahme löschen.You can delete a share snapshot by using the az storage share delete command. Verwenden Sie die Variable, die den $SNAPSHOT-Verweis auf den Parameter --snapshot enthält:Use the variable that contains the $SNAPSHOT reference to the --snapshot parameter:

az storage share delete \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY \
    --name "myshare" \
    --snapshot $SNAPSHOT

Bereinigen von RessourcenClean up resources

Wenn Sie den Vorgang abgeschlossen haben, können Sie den Befehl az group delete verwenden, um die Ressourcengruppe und alle dazugehörigen Ressourcen zu entfernen:When you are done, you can use the az group delete command to remove the resource group and all related resources:

az group delete --name "myResourceGroup"

Alternativ hierzu können Sie auch Ressourcen einzeln entfernen.Alternatively, you can remove resources individually.

  • Entfernen Sie die Azure-Dateifreigaben, die Sie für diesen Artikel erstellt haben, wie folgt:To remove the Azure file shares that you created for this article:

    az storage share delete \
        --account-name $STORAGEACCT \
        --account-key $STORAGEKEY \
        --name "myshare" \
        --delete-snapshots include
    
    az storage share delete \
        --account-name $STORAGEACCT \
        --account-key $STORAGEKEY \
        --name "myshare2" \
        --delete-snapshots include
    
  • Entfernen Sie das Speicherkonto selbst wie folgt:To remove the storage account itself. (Hiermit werden implizit die von Ihnen erstellten Azure-Dateifreigaben und alle anderen ggf. erstellten Speicherressourcen, z.B. ein Azure-Blobspeichercontainer, entfernt.)(This implicitly removes the Azure file shares that you created, and any other storage resources that you might have created, such as an Azure Blob storage container.)

    az storage account delete \
        --resource-group "myResourceGroup" \
        --name $STORAGEACCT \
        --yes
    

Nächste SchritteNext steps