Kurz: Vytvoření připojení svazku Azure Files v Azure Container Apps

Naučte se zapisovat do trvalého úložiště v aplikaci kontejneru pomocí připojení služby Azure Files Storage. Další informace o připojeních úložiště najdete v tématu Použití připojení úložiště v Azure Container Apps.

V tomto kurzu se naučíte:

  • Vytvoření prostředí Container Apps
  • Vytvoření účtu služby Azure Storage
  • Definování sdílené složky v účtu úložiště
  • Propojení prostředí se sdílenou složkou úložiště
  • Připojení sdílené složky úložiště v jednotlivém kontejneru
  • Ověření připojení úložiště zobrazením protokolu přístupu k webu

Poznámka:

Azure Container Apps podporuje připojení sdílených složek pomocí protokolů SMB a NFS. Tento kurz ukazuje připojení sdílené složky Azure Files pomocí protokolu SMB. Další informace o připojení sdílených složek NFS najdete v tématu Použití připojení úložiště v Azure Container Apps.

Požadavky

  • Nainstalujte nejnovější verzi Azure CLI.

Nastavení prostředí

Následující příkazy vám pomůžou definovat proměnné a zajistit, aby vaše rozšíření Container Apps bylo aktuální.

  1. Přihlaste se k Azure CLI.

    az login
    
  2. Nastavte proměnné prostředí používané v různých příkazech, které se mají sledovat.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Ujistěte se, že máte nejnovější verzi rozšíření Azure CLI pro Container Apps.

    az extension add -n containerapp --upgrade
    
  4. Zaregistrujte Microsoft.App obor názvů.

    az provider register --namespace Microsoft.App
    
  5. Pokud jste ho ještě nepoužili Microsoft.OperationalInsights , zaregistrujte poskytovatele pro pracovní prostor služby Azure Monitor Log Analytics.

    az provider register --namespace Microsoft.OperationalInsights
    

Vytvořit prostředí

Následující postup vytvoří skupinu prostředků a prostředí Container Apps.

  1. Vytvořte skupinu prostředků.

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

    Po vytvoření příkaz vrátí zprávu "Úspěch".

    Na konci tohoto kurzu můžete odstranit skupinu prostředků a odebrat tak všechny služby vytvořené během tohoto článku.

  2. Vytvořte prostředí Container Apps.

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

    Po vytvoření příkaz vrátí zprávu "Úspěch".

    Připojení úložiště jsou přidružená k prostředí Container Apps a konfigurují se v jednotlivých kontejnerových aplikacích.

Nastavení účtu úložiště

Dále vytvořte účet úložiště a vytvořte sdílenou složku pro připojení k aplikaci kontejneru.

  1. Definujte název účtu úložiště.

    Tento příkaz vygeneruje náhodnou příponu názvu účtu úložiště, aby se zajistila jedinečnost.

    STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
    
  2. Vytvořit účet služby Azure Storage

    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
    

    Po vytvoření příkaz vrátí zprávu "Úspěch".

  3. Definujte název sdílené složky.

    STORAGE_SHARE_NAME="myfileshare"
    
  4. Vytvořte sdílenou složku Azure Storage.

    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. Získejte klíč účtu úložiště.

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

    Klíč účtu úložiště se vyžaduje k vytvoření propojení úložiště v prostředí Container Apps.

  6. Definujte název připojení úložiště.

    STORAGE_MOUNT_NAME="mystoragemount"
    

    Tato hodnota je název, který slouží k definování připojení úložiště z prostředí Container Apps k vašemu účtu Azure Storage.

Vytvoření připojení úložiště

Teď můžete aktualizovat konfiguraci aplikace kontejneru tak, aby podporovala připojení úložiště.

  1. Vytvořte propojení úložiště v prostředí.

    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
    

    Tento příkaz vytvoří propojení mezi prostředím aplikace kontejneru a sdílenou složkou vytvořenou pomocí az storage share-rm příkazu.

    Teď, když je účet úložiště a prostředí propojené, můžete vytvořit aplikaci kontejneru, která používá připojení úložiště.

  2. Definujte název aplikace kontejneru.

    CONTAINER_APP_NAME="my-container-app"
    
  3. Vytvořte aplikaci typu kontejner.

    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
    

    Tento příkaz zobrazí adresu URL nové aplikace kontejneru.

  4. Zkopírujte adresu URL a vložte ji do webového prohlížeče a přejděte na web.

    Po načtení stránky se zobrazí zpráva Vítá vás nginx!. Nechte tuto kartu prohlížeče otevřenou. Během postupu ověření připojení úložiště se vrátíte na web.

    Teď, když jste potvrdili, že je aplikace kontejneru nakonfigurovaná, můžete aplikaci aktualizovat na definici připojení úložiště.

  5. Export konfigurace aplikace kontejneru

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

    Poznámka:

    I když tato aplikace nemá tajné kódy, mnoho aplikací dělá tajné kódy funkcí. Při exportu konfigurace aplikace se ve výchozím nastavení hodnoty tajných kódů nezahrnou do vygenerovaného YAML.

    Pokud nepotřebujete měnit tajné hodnoty, můžete oddíl odebrat secrets a tajné kódy zůstanou nezměněné. Případně pokud potřebujete změnit hodnotu tajného kódu, nezapomeňte před pokusem o aktualizaci aplikace zadat jak namevalue tajné kódy, tak pro všechny tajné kódy v souboru. Vynechání tajného kódu z oddílu secrets odstraní tajný klíč.

  6. Otevřete soubor app.yaml v editoru kódu.

  7. Nahraďte definici volumes: null v oddílu template definicí volumes: odkazující na svazek úložiště. Oddíl šablony by měl vypadat takto:

    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
    

    template.volumes Nový oddíl obsahuje následující vlastnosti.

    Vlastnost Popis
    name Tato hodnota odpovídá svazku vytvořenému voláním az containerapp env storage set příkazu.
    storageName Tato hodnota definuje název používaný kontejnery v prostředí pro přístup ke svazku úložiště.
    storageType Tato hodnota určuje typ svazku úložiště definovaného pro prostředí. V tomto případě se deklaruje připojení ke službě Azure Files.

    Oddíl volumes definuje svazky na úrovni aplikace, na které kontejner aplikace nebo kontejnery sajdkáře můžou odkazovat prostřednictvím oddílu volumeMounts přidruženého ke kontejneru.

  8. volumeMounts Přidejte oddíl do kontejneru nginx v oddílucontainers.

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

    volumeMounts Nový oddíl obsahuje následující vlastnosti:

    Vlastnost Popis
    volumeName Tato hodnota musí odpovídat názvu definovanému v definici volumes .
    mountPath Tato hodnota definuje cestu v kontejneru, kde je úložiště připojené.
  9. Aktualizujte aplikaci kontejneru pomocí nové konfigurace připojení úložiště.

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

Ověření připojení úložiště

Teď, když je připojení k úložišti vytvořené, můžete manipulovat se soubory ve službě Azure Storage z kontejneru. Pomocí následujících příkazů můžete sledovat připojení úložiště v práci.

  1. Otevřete interaktivní prostředí v aplikaci kontejneru a spusťte příkazy uvnitř spuštěného kontejneru.

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

    Otevření vzdáleného prostředí může chvíli trvat. Jakmile je prostředí připravené, můžete s připojením k úložišti pracovat pomocí příkazů systému souborů.

  2. Přejděte do složky nginx /var/log/nginx .

    cd /var/log/nginx
    
  3. Vraťte se do prohlížeče a několikrát přejděte na web a aktualizujte stránku.

    Požadavky provedené na webu vytvoří řadu položek streamu protokolu.

  4. Vraťte se do terminálu a uveďte hodnoty /var/log/nginx složky.

    Všimněte si, jak se v této složce zobrazují soubory access.log a error.log . Tyto soubory se zapíšou do připojené složky Azure Files ve sdílené složce Azure Storage vytvořené v předchozích krocích.

  5. Zobrazte obsah souboru access.log .

    cat access.log
    
  6. Ukončete interaktivní prostředí kontejneru a vraťte se do relace místního terminálu.

    exit
    
  7. Teď můžete soubory zobrazit na webu Azure Portal a ověřit, že existují ve vašem účtu Azure Storage. Vytiskněte název náhodně vygenerovaného účtu úložiště.

    echo $STORAGE_ACCOUNT_NAME
    
  8. Přejděte na web Azure Portal a otevřete účet úložiště vytvořený v tomto postupu.

  9. V části Úložiště dat vyberte Sdílené složky.

  10. Výběrem mého sdílení zobrazíte soubory access.log a error.log .

Vyčištění prostředků

Pokud nebudete tuto aplikaci dál používat, spuštěním následujícího příkazu odstraňte skupinu prostředků spolu se všemi prostředky vytvořenými v tomto článku.

az group delete \
  --name $RESOURCE_GROUP

Další kroky