Auf Englisch lesen

Freigeben über


Tutorial: Erstellen einer Azure Files-Volumeeinbindung in Azure Container Apps

Erfahren Sie, wie Sie auf einen permanenten Speicher in einer Container-App mit einer Azure Files-Speicherbereitstellung schreiben. Weitere Informationen zu Speichereinbindungen finden Sie unter Verwenden von Speichereinbindungen in Azure Container Apps.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen einer Container-Apps-Umgebung
  • Erstellen eines Azure-Speicherkontos
  • Definition einer Dateifreigabe im Speicherkonto
  • Verknüpfen der Umgebung mit der Speicherdateifreigabe
  • Bereitstellen der Speicherfreigabe in einem einzelnen Container
  • Überprüfen der Speicherbereitstellung durch Anzeigen des Websitezugriffsprotokolls

Hinweis

Azure Container Apps unterstützt die Bereitstellung von Dateifreigaben mithilfe der SMB- und NFS-Protokolle. In diesem Tutorial wird die Bereitstellung einer Azure Files-Freigabe mithilfe des SMB-Protokolls veranschaulicht. Weitere Informationen zum Bereitstellen von NFS-Freigaben finden Sie unter Verwenden von Speicherbereitstellungen in Azure Container Apps.

Voraussetzungen

  • Installieren Sie die aktuelle Version der Azure CLI.

Einrichten der Umgebung

Mit den folgenden Befehlen können Sie Variablen definieren und sicherstellen, dass Ihre Container-Apps-Erweiterung auf dem neuesten Stand ist.

  1. Melden Sie sich bei der Azure CLI an.

    Azure CLI
    az login
    
  2. Richten Sie Umgebungsvariablen ein, die in verschiedenen Befehlen zum Folgen verwendet werden.

    Azure CLI
    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Stellen Sie sicher, dass Sie die neueste Version der Container Apps Azure CLI-Erweiterung haben.

    Azure CLI
    az extension add -n containerapp --upgrade
    
  4. Registrieren Sie den Microsoft.App-Namespace.

    Azure CLI
    az provider register --namespace Microsoft.App
    
  5. Registrieren Sie den Anbieter Microsoft.OperationalInsights für den Azure Monitor Log Analytics-Arbeitsbereich, falls Sie ihn bisher noch nicht verwendet haben.

    Azure CLI
    az provider register --namespace Microsoft.OperationalInsights
    

Erstellen einer Umgebung

Die folgenden Schritte erstellen eine Ressourcengruppe und eine Container-Apps-Umgebung.

  1. Erstellen Sie eine Ressourcengruppe.

    Azure CLI
    az group create \
      --name $RESOURCE_GROUP \
      --location $LOCATION \
      --query "properties.provisioningState"
    

    Nach der Erstellung gibt der Befehl eine Nachricht „Erfolgreich“ zurück.

    Am Ende dieses Lernprogramms können Sie die Ressourcengruppe löschen, um alle Dienste zu entfernen, die während dieses Artikels erstellt wurden.

  2. Erstellen Sie eine Container Apps-Umgebung.

    Azure CLI
    az containerapp env create \
      --name $ENVIRONMENT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location "$LOCATION" \
      --query "properties.provisioningState"
    

    Nach der Erstellung gibt der Befehl eine Nachricht „Erfolgreich“ zurück.

    Speicherbereitstellungen sind einer Container-Apps-Umgebung zugeordnet und innerhalb einzelner Container-Apps konfiguriert.

Einrichten eines Speicherkontos

Erstellen Sie als Nächstes ein Speicherkonto und richten Sie eine Dateifreigabe ein, die an die Container-App bereitgestellt werden soll.

  1. Legen Sie einen Speicherkontonamen fest.

    Dieser Befehl generiert ein zufälliges Suffix mit dem Namen des Speicherkontos, um die Eindeutigkeit sicherzustellen.

    Azure CLI
    STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
    
  2. Erstellen eines Azure-Speicherkontos.

    Azure CLI
    az storage account create \
      --resource-group $RESOURCE_GROUP \
      --name $STORAGE_ACCOUNT_NAME \
      --location "$LOCATION" \
      --kind StorageV2 \
      --sku Standard_LRS \
      --enable-large-file-share \
      --query provisioningState
    

    Nach der Erstellung gibt der Befehl eine Nachricht „Erfolgreich“ zurück.

  3. Definieren Sie einen Dateifreigabenamen.

    Bash
    STORAGE_SHARE_NAME="myfileshare"
    
  4. Erstellen Sie die Azure Storage-Dateifreigabe.

    Azure CLI
    az storage share-rm create \
      --resource-group $RESOURCE_GROUP \
      --storage-account $STORAGE_ACCOUNT_NAME \
      --name $STORAGE_SHARE_NAME \
      --quota 1024 \
      --enabled-protocols SMB \
      --output table
    
  5. Erhalten Sie den Speicherkontoschlüssel.

    Bash
    STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`
    

    Der Speicherkontoschlüssel ist erforderlich, um den Speicherlink in Ihrer Container-Apps-Umgebung zu erstellen.

  6. Definieren Sie den Namen der Speicherbereitstellung.

    Bash
    STORAGE_MOUNT_NAME="mystoragemount"
    

    Dieser Wert ist der Name, der verwendet wird, um den Speicherbereitstellungslink aus Ihrer Container-Apps-Umgebung mit Ihrem Azure Storage-Konto zu definieren.

Erstellen der Speicherbereitstellung

Jetzt können Sie die Container-App-Konfiguration aktualisieren, um die Speicherbereitstellung zu unterstützen.

  1. Erstellen Sie den Speicherlink in der Umgebung.

    Azure CLI
    az containerapp env storage set \
      --access-mode ReadWrite \
      --azure-file-account-name $STORAGE_ACCOUNT_NAME \
      --azure-file-account-key $STORAGE_ACCOUNT_KEY \
      --azure-file-share-name $STORAGE_SHARE_NAME \
      --storage-name $STORAGE_MOUNT_NAME \
      --name $ENVIRONMENT_NAME \
      --resource-group $RESOURCE_GROUP \
      --output table
    

    Mit diesem Befehl wird eine Verknüpfung zwischen der Container-App-Umgebung und der mit dem az storage share-rm-Befehl erstellten Dateifreigabe erstellt.

    Jetzt, da das Speicherkonto und die Umgebung verknüpft sind, können Sie eine Container-App erstellen, die die Speicherbereitstellung verwendet.

  2. Legen Sie den Container-App-Namen fest.

    Bash
    CONTAINER_APP_NAME="my-container-app"
    
  3. Erstellen Sie die Container-App.

    Azure CLI
    az containerapp create \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT_NAME \
      --image nginx \
      --min-replicas 1 \
      --max-replicas 1 \
      --target-port 80 \
      --ingress external \
      --query properties.configuration.ingress.fqdn
    

    Dieser Befehl zeigt die URL Ihrer neuen Container-App an.

  4. Kopieren Sie die URL und fügen Sie sie in Ihren Webbrowser ein, um zur Website zu navigieren.

    Sobald die Seite geladen wurde, wird die Meldung „Willkommen bei nginx!“ angezeigt. Lassen Sie diese Browserregisterkarte geöffnet. Sie kehren während der Überprüfungsschritte der Speicherbereitstellung zur Website zurück.

    Nachdem Sie bestätigt haben, dass die Container-App konfiguriert ist, können Sie die App mit einer Speicherbereitstellungsdefinition aktualisieren.

  5. Exportieren Sie die Konfiguration der Container-App.

    Azure CLI
    az containerapp show \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --output yaml > app.yaml
    

    Hinweis

    Auch wenn diese Anwendung keine geheimen Schlüssel enthält, verwenden viele Apps geheime Schlüssel. Wenn Sie die Konfiguration einer App exportieren, sind die Werte für geheime Schlüssel standardmäßig nicht in der generierten YAML enthalten.

    Wenn Sie keine geheimen Werte ändern müssen, können Sie den Abschnitt secrets entfernen und Ihre geheimen Schlüssel bleiben unverändert. Wenn Sie den Wert eines geheimen Schlüssels ändern müssen, stellen Sie sicher, dass Sie sowohl name als auch value für alle geheimen Schlüssel in der Datei angeben, bevor Sie versuchen, die App zu aktualisieren. Wenn der geheime Schlüssel ausgelassen wird, löscht der Abschnitt secrets den geheimen Schlüssel.

  6. Öffnen Sie app.yaml in einem Code-Editor.

  7. Ersetzen Sie die Definition volumes: null im Abschnitt template durch die Definition volumes:, die auf das Speichervolume verweist. Der Vorlagenabschnitt sollte wie folgt aussehen:

    yml
    template:
      volumes:
      - name: my-azure-file-volume
        storageName: mystoragemount
        storageType: AzureFile
      containers:
      - image: nginx
        name: my-container-app
        volumeMounts:
        - volumeName: my-azure-file-volume
          mountPath: /var/log/nginx
        resources:
          cpu: 0.5
          ephemeralStorage: 3Gi
          memory: 1Gi
      initContainers: null
      revisionSuffix: ''
      scale:
        maxReplicas: 1
        minReplicas: 1
        rules: null
    

    Der Abschnitt template.volumes enthält die folgenden Eigenschaften:

    Eigenschaft BESCHREIBUNG
    name Dieser Wert entspricht dem Volumen, das durch Aufrufen des az containerapp env storage set-Befehls erstellt wird.
    storageName Dieser Wert definiert den Namen, der von Containern in der Umgebung verwendet wird, um auf das Speichervolumen zuzugreifen.
    storageType Dieser Wert bestimmt den für die Umgebung definierten Speichervolumentyp. In diesem Fall wird ein Azure Files Mount deklariert.

    Der Abschnitt volumes definiert Volumes auf App-Ebene, auf die Ihr Anwendungscontainer oder Seitenwagencontainer verweisen kann, über einen volumeMounts-Abschnitt, der einem Container zugeordnet ist.

  8. Fügen Sie einen volumeMounts-Abschnitt zum nginx-Container im containers-Abschnitt hinzu.

    yml
    containers:
      - image: nginx
        name: my-container-app
        volumeMounts:
        - volumeName: my-azure-file-volume
          mountPath: /var/log/nginx
    

    Der neue volumeMounts-Abschnitt enthält die folgenden Eigenschaften:

    Eigenschaft BESCHREIBUNG
    volumeName Dieser Wert muss dem Namen entsprechen, der in der volumes-Definition definiert ist.
    mountPath Dieser Wert definiert den Pfad in Ihrem Container, in dem der Speicher bereitgestellt wird.
  9. Aktualisieren Sie die Container-App mit der neuen Speicherbereitstellungskonfiguration.

    Azure CLI
    az containerapp update \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --yaml app.yaml \
      --output table
    

Verifizieren der Speicherbereitstellung

Jetzt, da die Speicherbereitstellung eingerichtet wurde, können Sie Dateien in Azure Storage aus Ihrem Container bearbeiten. Verwenden Sie die folgenden Befehle, um die Speicherbereitstellung bei der Arbeit zu beobachten.

  1. Öffnen Sie eine interaktive Shell innerhalb der Container-App, um Befehle im ausgeführten Container auszuführen.

    Azure CLI
    az containerapp exec \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP
    

    Es kann für den Befehl einen Moment dauern, um die RemoteShell- zu öffnen. Sobald die Shell bereit ist, können Sie mit der Speicherbereitstellung über Dateisystembefehle interagieren.

  2. Wechseln Sie zum Ordner nginx /var/log/nginx.

    Bash
    cd /var/log/nginx
    
  3. Kehren Sie zum Browser zurück und navigieren Sie zu der Website, und aktualisieren Sie die Seite einige Male.

    Die Anforderungen, die an die Website vorgenommen wurden, erstellen eine Reihe von Protokolldatenstromeinträgen.

  4. Kehren Sie zu Ihrem Terminal zurück und listen Sie die Werte des /var/log/nginx-Ordners auf.

    Bash
    ls
    

    Beachten Sie, wie die Dateien access.log und error.log in diesem Ordner angezeigt werden. Diese Dateien werden in die Azure Files Mount in Ihrer Azure Storage-Freigabe geschrieben, die in den vorherigen Schritten erstellt wurde.

  5. Zeigen Sie die Inhalte der Datei access.log an.

    Bash
    cat access.log
    
  6. Beenden Sie die interaktive Shell des Containers, um zu Ihrer lokalen Terminalsitzung zurückzukehren.

    Bash
    exit
    
  7. Jetzt können Sie die Dateien im Azure-Portal anzeigen, um zu überprüfen, ob sie in Ihrem Azure Storage-Konto vorhanden sind. Drucken Sie den Namen Ihres zufällig generierten Speicherkontos.

    Bash
    echo $STORAGE_ACCOUNT_NAME
    
  8. Navigieren Sie zu dem Azure-Portal und öffnen Sie das Speicherkonto, das in dieser Prozedur erstellt wurde.

  9. Wählen Sie unter Datenspeicher die Option Dateifreigaben.

  10. Wählen Sie myshare aus, um die Dateien access.log und error.log anzuzeigen.

Bereinigen von Ressourcen

Wenn Sie diese Anwendung nicht weiter verwenden möchten, führen Sie den folgenden Befehl aus, um die Ressourcengruppe zusammen mit allen in dieser Schnellstartanleitung erstellten Ressourcen zu löschen.

Azure CLI
az group delete \
  --name $RESOURCE_GROUP

Nächste Schritte