Dela via


Självstudie: Skapa en Azure Files-volymmontering i Azure Container Apps

Lär dig att skriva till permanent lagring i en containerapp med hjälp av en Azure Files-lagringsmontering. Mer information om lagringsmonteringar finns i Använda lagringsmonteringar i Azure Container Apps.

I den här självstudien lär du dig att:

  • Skapa en Container Apps-miljö
  • Skapa ett Azure Storage-konto
  • Definiera en filresurs i lagringskontot
  • Länka miljön till lagringsfilresursen
  • Montera lagringsresursen i en enskild container
  • Verifiera lagringsmonteringen genom att visa åtkomstloggen för webbplatsen

Kommentar

Azure Container Apps stöder montering av filresurser med hjälp av SMB- och NFS-protokoll. Den här självstudien visar hur du monterar en Azure Files-resurs med hjälp av SMB-protokollet. Mer information om hur du monterar NFS-resurser finns i Använda lagringsmonteringar i Azure Container Apps.

Förutsättningar

  • Installera den senaste versionen av Azure CLI.

Konfigurera miljön

Följande kommandon hjälper dig att definiera variabler och se till att containerapptillägget är uppdaterat.

  1. Logga in på Azure CLI.

    az login
    
  2. Konfigurera miljövariabler som används i olika kommandon att följa.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Se till att du har den senaste versionen av Azure CLI-tillägget för Container Apps.

    az extension add -n containerapp --upgrade
    
  4. Microsoft.App Registrera namnområdet.

    az provider register --namespace Microsoft.App
    
  5. Registrera providern Microsoft.OperationalInsights för Azure Monitor Log Analytics-arbetsytan om du inte har använt den tidigare.

    az provider register --namespace Microsoft.OperationalInsights
    

Skapa en miljö

Följande steg skapar en resursgrupp och en Container Apps-miljö.

  1. Skapa en resursgrupp.

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

    När kommandot har skapats returneras meddelandet "Lyckades".

    I slutet av den här självstudien kan du ta bort resursgruppen för att ta bort alla tjänster som skapades under den här artikeln.

  2. Skapa en Container Apps-miljö.

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

    När kommandot har skapats returneras meddelandet "Lyckades".

    Lagringsmonteringar är associerade med en Container Apps-miljö och konfigureras i enskilda containerappar.

Konfigurera ett lagringskonto

Skapa sedan ett lagringskonto och upprätta en filresurs som ska monteras i containerappen.

  1. Definiera ett lagringskontonamn.

    Det här kommandot genererar ett slumpmässigt suffix till lagringskontots namn för att säkerställa unikhet.

    STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
    
  2. skapa ett Azure Storage-konto

    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
    

    När kommandot har skapats returneras meddelandet "Lyckades".

  3. Definiera ett filresursnamn.

    STORAGE_SHARE_NAME="myfileshare"
    
  4. Skapa Azure Storage-filresursen.

    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. Hämta lagringskontonyckeln.

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

    Lagringskontonyckeln krävs för att skapa lagringslänken i containerappmiljön.

  6. Definiera namnet på lagringsmonteringen.

    STORAGE_MOUNT_NAME="mystoragemount"
    

    Det här värdet är det namn som används för att definiera länken för lagringsmontering från containerappmiljön till ditt Azure Storage-konto.

Skapa lagringsmonteringen

Nu kan du uppdatera konfigurationen av containerappen för att stödja lagringsmonteringen.

  1. Skapa lagringslänken i miljön.

    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
    

    Det här kommandot skapar en länk mellan containerappmiljön och filresursen som skapats az storage share-rm med kommandot .

    Nu när lagringskontot och miljön är länkade kan du skapa en containerapp som använder lagringsmonteringen.

  2. Definiera namnet på containerappen.

    CONTAINER_APP_NAME="my-container-app"
    
  3. Skapa containerappen.

    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
    

    Det här kommandot visar URL:en för din nya containerapp.

  4. Kopiera URL:en och klistra in den i webbläsaren för att navigera till webbplatsen.

    När sidan har lästs in visas meddelandet "Välkommen till nginx!". Håll den här webbläsarfliken öppen. Du kommer tillbaka till webbplatsen under verifieringsstegen för lagringsmonteringen.

    Nu när du har bekräftat att containerappen har konfigurerats kan du uppdatera appen till med en definition för lagringsmontering.

  5. Exportera containerappens konfiguration.

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

    Kommentar

    Även om det här programmet inte har hemligheter, gör många appar funktionshemligheter. När du exporterar en apps konfiguration inkluderas som standard inte värdena för hemligheter i den genererade YAML:en.

    Om du inte behöver ändra hemliga värden kan du ta bort secrets avsnittet och dina hemligheter förblir oförändrade. Om du behöver ändra en hemlighets värde måste du också ange både name och value för alla hemligheter i filen innan du försöker uppdatera appen. Om du utelämnar en hemlighet från secrets avsnittet tas hemligheten bort.

  6. Öppna app.yaml i en kodredigerare.

  7. volumes: null Ersätt definitionen i template avsnittet med en volumes: definition som refererar till lagringsvolymen. Mallavsnittet bör se ut så här:

    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
    

    Det nya template.volumes avsnittet innehåller följande egenskaper.

    Property beskrivning
    name Det här värdet matchar volymen som skapas genom att anropa az containerapp env storage set kommandot.
    storageName Det här värdet definierar namnet som används av containrar i miljön för att få åtkomst till lagringsvolymen.
    storageType Det här värdet avgör vilken typ av lagringsvolym som definierats för miljön. I det här fallet deklareras en Azure Files-montering.

    Avsnittet volumes definierar volymer på appnivå som din programcontainer eller sidovagnscontainrar kan referera till via ett volumeMounts avsnitt som är associerat med en container.

  8. Lägg till ett volumeMounts avsnitt i containern nginx i avsnittet containers .

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

    Det nya volumeMounts avsnittet innehåller följande egenskaper:

    Property beskrivning
    volumeName Det här värdet måste matcha det namn som definierats i volumes definitionen.
    mountPath Det här värdet definierar sökvägen i containern där lagringen är monterad.
  9. Uppdatera containerappen med den nya konfigurationen för lagringsmontering.

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

Kontrollera lagringsmonteringen

Nu när lagringsmonteringen har upprättats kan du ändra filer i Azure Storage från containern. Använd följande kommandon för att observera lagringsmonteringen på jobbet.

  1. Öppna ett interaktivt gränssnitt i containerappen för att köra kommandon i containern som körs.

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

    Det här kommandot kan ta en stund att öppna fjärrgränssnittet. När gränssnittet är klart kan du interagera med lagringsmonteringen via filsystemkommandon.

  2. Ändra till mappen nginx /var/log/nginx .

    cd /var/log/nginx
    
  3. Gå tillbaka till webbläsaren och gå till webbplatsen och uppdatera sidan några gånger.

    Begäranden som görs till webbplatsen skapar en serie loggströmsposter.

  4. Gå tillbaka till terminalen och visa en lista över värdena för /var/log/nginx mappen.

    Observera hur access.log - och error.log-filerna visas i den här mappen. De här filerna skrivs till Azure Files-monteringen i din Azure Storage-resurs som skapades i föregående steg.

  5. Visa innehållet i access.log-filen.

    cat access.log
    
  6. Avsluta containerns interaktiva gränssnitt för att återgå till den lokala terminalsessionen.

    exit
    
  7. Nu kan du visa filerna i Azure-portalen för att kontrollera att de finns i ditt Azure Storage-konto. Skriv ut namnet på ditt slumpmässigt genererade lagringskonto.

    echo $STORAGE_ACCOUNT_NAME
    
  8. Gå till Azure-portalen och öppna lagringskontot som skapades i den här proceduren.

  9. Under Datalagring väljer du Filresurser.

  10. Välj myshare för att visa filerna access.log och error.log .

Rensa resurser

Om du inte fortsätter att använda det här programmet kör du följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här artikeln.

az group delete \
  --name $RESOURCE_GROUP

Nästa steg