Delen via


Zelfstudie: Een Azure Files-volumekoppeling maken in Azure Container Apps

Meer informatie over het schrijven naar permanente opslag in een container-app met behulp van een Azure Files-opslagkoppeling. Zie Opslagkoppelingen gebruiken in Azure Container Apps voor meer informatie over opslagkoppelingen.

In deze zelfstudie leert u het volgende:

  • Een Container Apps-omgeving maken
  • Een Azure Storage-account maken
  • Een bestandsshare definiëren in het opslagaccount
  • De omgeving koppelen aan de opslagbestandsshare
  • De opslagshare koppelen in een afzonderlijke container
  • Controleer de opslagkoppeling door het toegangslogboek van de website weer te geven

Notitie

Azure Container Apps ondersteunt het koppelen van bestandsshares met behulp van SMB- en NFS-protocollen. In deze zelfstudie ziet u hoe u een Azure Files-share kunt koppelen met behulp van het SMB-protocol. Zie Opslagkoppelingen gebruiken in Azure Container Apps voor meer informatie over het koppelen van NFS-shares.

Vereisten

  • Installeer de nieuwste versie van de Azure CLI.

De omgeving instellen

Met de volgende opdrachten kunt u variabelen definiëren en ervoor zorgen dat uw Container Apps-extensie up-to-date is.

  1. Meld u aan bij de Azure CLI.

    az login
    
  2. Stel omgevingsvariabelen in die in verschillende opdrachten worden gebruikt om te volgen.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Zorg ervoor dat u de nieuwste versie van de Azure CLI-extensie voor Container Apps hebt.

    az extension add -n containerapp --upgrade
    
  4. Registreer de Microsoft.App naamruimte.

    az provider register --namespace Microsoft.App
    
  5. Registreer de Microsoft.OperationalInsights provider voor de Azure Monitor Log Analytics-werkruimte als u deze nog niet eerder hebt gebruikt.

    az provider register --namespace Microsoft.OperationalInsights
    

Een omgeving maken

Met de volgende stappen maakt u een resourcegroep en een Container Apps-omgeving.

  1. Maak een resourcegroep.

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

    Zodra de opdracht is gemaakt, wordt het bericht Geslaagd geretourneerd.

    Aan het einde van deze zelfstudie kunt u de resourcegroep verwijderen om alle services te verwijderen die tijdens dit artikel zijn gemaakt.

  2. Maak een Container Apps-omgeving.

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

    Zodra de opdracht is gemaakt, wordt het bericht Geslaagd geretourneerd.

    Opslagkoppelingen zijn gekoppeld aan een Container Apps-omgeving en geconfigureerd in afzonderlijke container-apps.

Een opslagaccount instellen

Maak vervolgens een opslagaccount en stel een bestandsshare in om te koppelen aan de container-app.

  1. Definieer de naam van een opslagaccount.

    Met deze opdracht wordt een willekeurig achtervoegsel gegenereerd voor de naam van het opslagaccount om de uniekheid te garanderen.

    STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
    
  2. Een Azure Storage-account maken.

    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
    

    Zodra de opdracht is gemaakt, wordt het bericht Geslaagd geretourneerd.

  3. Definieer de naam van een bestandsshare.

    STORAGE_SHARE_NAME="myfileshare"
    
  4. Maak de Azure Storage-bestandsshare.

    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. Haal de sleutel van het opslagaccount op.

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

    De sleutel van het opslagaccount is vereist voor het maken van de opslagkoppeling in uw Container Apps-omgeving.

  6. Definieer de naam van de opslagkoppeling.

    STORAGE_MOUNT_NAME="mystoragemount"
    

    Deze waarde is de naam die wordt gebruikt om de koppeling voor opslagkoppeling vanuit uw Container Apps-omgeving naar uw Azure Storage-account te definiëren.

De opslagkoppeling maken

U kunt nu de configuratie van de container-app bijwerken ter ondersteuning van de opslagkoppeling.

  1. Maak de opslagkoppeling in de omgeving.

    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
    

    Met deze opdracht maakt u een koppeling tussen de container-app-omgeving en de bestandsshare die met de az storage share-rm opdracht is gemaakt.

    Nu het opslagaccount en de omgeving zijn gekoppeld, kunt u een container-app maken die gebruikmaakt van de opslagkoppeling.

  2. Definieer de naam van de container-app.

    CONTAINER_APP_NAME="my-container-app"
    
  3. Maak de container-app.

    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
    

    Met deze opdracht wordt de URL van uw nieuwe container-app weergegeven.

  4. Kopieer de URL en plak deze in uw webbrowser om naar de website te navigeren.

    Zodra de pagina is geladen, ziet u het bericht Welkom bij nginx!. Houd dit browsertabblad geopend. U keert terug naar de website tijdens de verificatiestappen voor opslagkoppelingen.

    Nu u hebt bevestigd dat de container-app is geconfigureerd, kunt u de app bijwerken naar een definitie voor opslagkoppeling.

  5. Exporteer de configuratie van de container-app.

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

    Notitie

    Hoewel deze toepassing geen geheimen heeft, hebben veel apps geheimen. Wanneer u de configuratie van een app exporteert, worden de waarden voor geheimen standaard niet opgenomen in de gegenereerde YAML.

    Als u geen geheime waarden hoeft te wijzigen, kunt u de secrets sectie verwijderen en blijven uw geheimen ongewijzigd. Als u de waarde van een geheim wilt wijzigen, moet u ook zowel de name als value voor alle geheimen in het bestand opgeven voordat u de app probeert bij te werken. Als u een geheim weglaat uit de secrets sectie, wordt het geheim verwijderd.

  6. Open app.yaml in een code-editor.

  7. Vervang de volumes: null definitie in de template sectie door een volumes: definitie die verwijst naar het opslagvolume. De sjabloonsectie moet er als volgt uitzien:

    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
    

    De nieuwe template.volumes sectie bevat de volgende eigenschappen.

    Eigenschappen Beschrijving
    name Deze waarde komt overeen met het volume dat is gemaakt door de az containerapp env storage set opdracht aan te roepen.
    storageName Deze waarde definieert de naam die wordt gebruikt door containers in de omgeving voor toegang tot het opslagvolume.
    storageType Deze waarde bepaalt het type opslagvolume dat is gedefinieerd voor de omgeving. In dit geval wordt een Azure Files-koppeling gedeclareerd.

    De volumes sectie definieert volumes op app-niveau waarnaar uw toepassingscontainer of sidecar-containers kunnen verwijzen via een volumeMounts sectie die is gekoppeld aan een container.

  8. Voeg een volumeMounts sectie toe aan de nginx container in de containers sectie.

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

    De nieuwe volumeMounts sectie bevat de volgende eigenschappen:

    Eigenschappen Beschrijving
    volumeName Deze waarde moet overeenkomen met de naam die is gedefinieerd in de volumes definitie.
    mountPath Deze waarde definieert het pad in uw container waar de opslag is gekoppeld.
  9. Werk de container-app bij met de nieuwe configuratie voor opslagkoppeling.

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

De opslagkoppeling controleren

Nu de opslagkoppeling tot stand is gebracht, kunt u bestanden in Azure Storage bewerken vanuit uw container. Gebruik de volgende opdrachten om de opslagkoppeling op het werk te observeren.

  1. Open een interactieve shell in de container-app om opdrachten uit te voeren in de actieve container.

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

    Het kan even duren voordat deze opdracht de externe shell opent. Zodra de shell gereed is, kunt u communiceren met de opslagkoppeling via bestandssysteemopdrachten.

  2. Ga naar de map nginx /var/log/nginx .

    cd /var/log/nginx
    
  3. Ga terug naar de browser en navigeer naar de website en vernieuw de pagina een paar keer.

    De aanvragen die op de website worden gedaan, maken een reeks logboekstreamvermeldingen.

  4. Ga terug naar de terminal en vermeld de waarden van de /var/log/nginx map.

    U ziet hoe de access.log - en error.log-bestanden in deze map worden weergegeven. Deze bestanden worden naar de Azure Files-koppeling geschreven in uw Azure Storage-share die u in de vorige stappen hebt gemaakt.

  5. De inhoud van het access.log-bestand weergeven.

    cat access.log
    
  6. Sluit de interactieve shell van de container af om terug te keren naar uw lokale terminalsessie.

    exit
    
  7. U kunt nu de bestanden bekijken in Azure Portal om te controleren of ze bestaan in uw Azure Storage-account. Druk de naam van uw willekeurig gegenereerde opslagaccount af.

    echo $STORAGE_ACCOUNT_NAME
    
  8. Navigeer naar Azure Portal en open het opslagaccount dat in deze procedure is gemaakt.

  9. Selecteer onder Gegevensopslag bestandsshares.

  10. Selecteer myshare om de access.log en error.log bestanden weer te geven.

Resources opschonen

Als u deze toepassing niet wilt blijven gebruiken, voert u de volgende opdracht uit om de resourcegroep te verwijderen, samen met alle resources die in dit artikel zijn gemaakt.

az group delete \
  --name $RESOURCE_GROUP

Volgende stappen