Übung: Verwenden von Datenvolumes

Abgeschlossen

Standardmäßig ist Azure Container Instances zustandslos. Wenn der Container abstürzt oder beendet wird, gehen alle Zustände verloren. Sie müssen ein Volume aus einem externen Speicher einbinden, um den Zustand nach Ablauf der Lebensdauer des Containers abzurufen.

Binden Sie eine Azure-Dateifreigabe in eine Azure-Containerinstanz ein, damit Sie Daten speichern und später darauf zugreifen können.

Erstellen einer Azure-Dateifreigabe

Erstellen Sie ein Speicherkonto und eine Dateifreigabe. Später können Sie die Dateifreigabe für den Zugriff auf eine Azure-Containerinstanz freigeben.

  1. Geben Sie einen eindeutigen Namen für Ihr Speicherkonto ein. Führen Sie zu Lernzwecken den folgenden Befehl aus, um einen eindeutigen Namen in einer Bash-Variable zu speichern:

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. Führen Sie den folgenden Befehl az storage account create aus, um Ihr Speicherkonto zu erstellen:

    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. Führen Sie den folgenden Befehl aus, um die Verbindungszeichenfolge für das Speicherkonto in einer Umgebungsvariable mit dem Namen AZURE_STORAGE_CONNECTION_STRING zu platzieren:

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --output tsv)
    

    AZURE_STORAGE_CONNECTION_STRING ist eine spezielle Umgebungsvariable, die von der Azure-Befehlszeilenschnittstelle (Azure CLI) verstanden wird. export macht diese Variable für andere CLI-Befehle zugänglich, die Sie später ausführen.

  4. Führen Sie diesen Befehl aus, um eine Dateifreigabe mit dem Namen aci-share-demo im Speicherkonto zu erstellen:

    az storage share create --name aci-share-demo
    

Erhalten der Anmeldeinformationen für das Speicherkonto

Um eine Azure-Dateifreigabe als Volume in Azure Container Instances einzubinden, benötigen Sie diese drei Werte:

  • Speicherkontoname
  • Freigabename
  • Speicherkonto-Zugriffsschlüssel

Sie verfügen bereits über die ersten zwei Werte. Der Name des Speicherkontos wird in der Bash-Variable STORAGE_ACCOUNT_NAME gespeichert. Sie haben aci-share-demo im vorherigen Schritt als Freigabename angegeben. Sie erhalten nun den verbleibenden Wert: den Zugriffsschlüssel für das Speicherkonto.

  1. Führen Sie den folgenden Befehl aus, um den Speicherkontoschlüssel abzurufen:

    STORAGE_KEY=$(az storage account keys list \
      --resource-group learn-deploy-aci-rg \
      --account-name $STORAGE_ACCOUNT_NAME \
      --query "[0].value" \
      --output tsv)
    

    Das Ergebnis wird in einer Bash-Variable namens STORAGE_KEY gespeichert.

  2. Optional können Sie den Namen des Speicherschlüssels auch in der Konsole ausgeben.

    echo $STORAGE_KEY
    

Bereitstellen eines Containers und Einbinden der Dateifreigabe

Geben Sie die Freigabe und den Bereitstellungspunkt des Volumes bei der Erstellung des Containers an, um eine Azure-Dateifreigabe als Volume in einem Container bereitzustellen.

  1. Führen Sie den Befehl az container create aus, um einen Container zu erstellen, der /aci/logs/ in die Dateifreigabe einbindet:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --image mcr.microsoft.com/azuredocs/aci-hellofiles \
      --location eastus \
      --ports 80 \
      --ip-address Public \
      --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \
      --azure-file-volume-account-key $STORAGE_KEY \
      --azure-file-volume-share-name aci-share-demo \
      --azure-file-volume-mount-path /aci/logs/
    
  2. Führen Sie az container show aus, um die öffentliche IP-Adresse des Containers abzurufen:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. Navigieren Sie in einem Browser zur IP-Adresse des Containers. Sie erhalten die folgende Seite:

    Screenshot of the Azure Container Instances file share demo running in a browser.

  4. Geben Sie Text in das Formular ein, und klicken Sie auf Absenden. Auf diese Weise wird eine Datei mit dem Text erstellt, den Sie in der Azure-Dateifreigabe eingegeben haben.

  5. Führen Sie den Befehl az storage file list aus, um die Dateien in der Dateifreigabe anzuzeigen:

    az storage file list -s aci-share-demo -o table
    
  6. Führen Sie az storage file download aus, um eine Datei in Ihre Cloud Shell-Sitzung herunterzuladen. Ersetzen Sie <Dateiname> durch eine der Dateien, die im vorherigen Schritt angezeigt wurden:

    az storage file download -s aci-share-demo -p <filename>
    
  7. Führen Sie den Befehl cat zum Ausgeben der Inhalte der Datei aus.

    cat <filename>
    

Denken Sie daran, dass Ihre Daten erhalten bleiben, wenn der Container beendet wird. Sie können die Dateifreigabe in andere Containerinstanzen einbinden, um diesen die Daten zur Verfügung zu stellen.