Samouczek: tworzenie instalacji woluminu usługi Azure Files w usłudze Azure Container Apps

Dowiedz się, jak zapisywać w magazynie trwałym w aplikacji kontenera przy użyciu instalacji usługi Azure Files Storage. Aby uzyskać więcej informacji na temat instalacji magazynu, zobacz Używanie instalacji magazynu w usłudze Azure Container Apps.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie środowiska usługi Container Apps
  • Tworzenie konta usługi Azure Storage
  • Definiowanie udziału plików na koncie magazynu
  • Łączenie środowiska z udziałem plików magazynu
  • Instalowanie udziału magazynu w pojedynczym kontenerze
  • Zweryfikuj instalację magazynu, wyświetlając dziennik dostępu do witryny internetowej

Uwaga

Usługa Azure Container Apps obsługuje instalowanie udziałów plików przy użyciu protokołów SMB i NFS. W tym samouczku przedstawiono instalowanie udziału usługi Azure Files przy użyciu protokołu SMB. Aby dowiedzieć się więcej na temat instalowania udziałów NFS, zobacz Używanie instalacji magazynu w usłudze Azure Container Apps.

Wymagania wstępne

  • Zainstaluj najnowszą wersję interfejsu wiersza polecenia platformy Azure.

Konfigurowanie środowiska

Poniższe polecenia ułatwiają definiowanie zmiennych i zapewnienie aktualności rozszerzenia usługi Container Apps.

  1. Zaloguj się do interfejsu wiersza polecenia platformy Azure.

    az login
    
  2. Skonfiguruj zmienne środowiskowe używane w różnych poleceniach do naśladowania.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Upewnij się, że masz najnowszą wersję rozszerzenia interfejsu wiersza polecenia platformy Azure usługi Container Apps.

    az extension add -n containerapp --upgrade
    
  4. Microsoft.App Zarejestruj przestrzeń nazw.

    az provider register --namespace Microsoft.App
    
  5. Zarejestruj dostawcę Microsoft.OperationalInsights obszaru roboczego usługi Log Analytics usługi Azure Monitor, jeśli jeszcze go nie użyto.

    az provider register --namespace Microsoft.OperationalInsights
    

Utwórz środowisko

Poniższe kroki umożliwiają utworzenie grupy zasobów i środowiska usługi Container Apps.

  1. Utwórz grupę zasobów.

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

    Po utworzeniu polecenie zwraca komunikat "Powodzenie".

    Na końcu tego samouczka możesz usunąć grupę zasobów, aby usunąć wszystkie usługi utworzone w tym artykule.

  2. Tworzenie środowiska usługi Container Apps.

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

    Po utworzeniu polecenie zwraca komunikat "Powodzenie".

    Instalacja magazynu jest skojarzona ze środowiskiem usługi Container Apps i konfigurowana w ramach poszczególnych aplikacji kontenerów.

Konfigurowanie konta magazynu

Następnie utwórz konto magazynu i ustanów udział plików, aby zainstalować aplikację kontenera.

  1. Zdefiniuj nazwę konta magazynu.

    To polecenie generuje losowy sufiks nazwy konta magazynu w celu zapewnienia unikatowości.

    STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
    
  2. Tworzenie konta usługi 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 utworzeniu polecenie zwraca komunikat "Powodzenie".

  3. Zdefiniuj nazwę udziału plików.

    STORAGE_SHARE_NAME="myfileshare"
    
  4. Utwórz udział plików usługi 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. Pobierz klucz konta magazynu.

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

    Klucz konta magazynu jest wymagany do utworzenia linku magazynu w środowisku usługi Container Apps.

  6. Zdefiniuj nazwę instalacji magazynu.

    STORAGE_MOUNT_NAME="mystoragemount"
    

    Ta wartość jest nazwą używaną do definiowania linku instalacji magazynu ze środowiska usługi Container Apps do konta usługi Azure Storage.

Tworzenie instalacji magazynu

Teraz możesz zaktualizować konfigurację aplikacji kontenera w celu obsługi instalacji magazynu.

  1. Utwórz link magazynu w środowisku.

    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
    

    To polecenie tworzy łącze między środowiskiem aplikacji kontenera a udziałem plików utworzonym za az storage share-rm pomocą polecenia .

    Teraz, gdy konto magazynu i środowisko są połączone, możesz utworzyć aplikację kontenera korzystającą z instalacji magazynu.

  2. Zdefiniuj nazwę aplikacji kontenera.

    CONTAINER_APP_NAME="my-container-app"
    
  3. Utwórz aplikację kontenera.

    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
    

    To polecenie wyświetla adres URL nowej aplikacji kontenera.

  4. Skopiuj adres URL i wklej go w przeglądarce internetowej, aby przejść do witryny internetowej.

    Po załadowaniu strony zostanie wyświetlony komunikat "Witamy w nginx!". Pozostaw otwartą kartę przeglądarki. Wrócisz do witryny internetowej podczas kroków weryfikacji instalacji magazynu.

    Po potwierdzeniu, że aplikacja kontenera została skonfigurowana, możesz zaktualizować aplikację do za pomocą definicji instalacji magazynu.

  5. Wyeksportuj konfigurację aplikacji kontenera.

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

    Uwaga

    Chociaż ta aplikacja nie ma wpisów tajnych, wiele aplikacji wykonuje wpisy tajne funkcji. Domyślnie podczas eksportowania konfiguracji aplikacji wartości dla wpisów tajnych nie są uwzględniane w wygenerowanym pliku YAML.

    Jeśli nie musisz zmieniać wartości wpisów tajnych, możesz usunąć sekcję secrets , a wpisy tajne pozostaną niezmienione. Alternatywnie, jeśli musisz zmienić wartość wpisu tajnego, przed podjęciem próby zaktualizowania aplikacji upewnij się, że zarówno name dla wszystkich wpisów tajnych, jak i value dla wszystkich wpisów tajnych w pliku. Pominięcie wpisu tajnego secrets z sekcji powoduje usunięcie wpisu tajnego.

  6. Otwórz plik app.yaml w edytorze kodu.

  7. Zastąp definicję volumes: null w template sekcji definicją odwołującą volumes: się do woluminu magazynu. Sekcja szablonu powinna wyglądać następująco:

    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
    

    Nowa template.volumes sekcja zawiera następujące właściwości.

    Właściwości opis
    name Ta wartość odpowiada woluminowi utworzonemu az containerapp env storage set przez wywołanie polecenia .
    storageName Ta wartość definiuje nazwę używaną przez kontenery w środowisku w celu uzyskania dostępu do woluminu magazynu.
    storageType Ta wartość określa typ woluminu magazynu zdefiniowanego dla środowiska. W takim przypadku instalacja usługi Azure Files jest zadeklarowana.

    Sekcja volumes definiuje woluminy na poziomie aplikacji, do których kontener aplikacji lub kontenery przyczepki mogą odwoływać się za pośrednictwem volumeMounts sekcji skojarzonej z kontenerem.

  8. Dodaj sekcję volumeMounts do kontenera nginxcontainers w sekcji .

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

    volumeMounts Nowa sekcja zawiera następujące właściwości:

    Właściwości opis
    volumeName Ta wartość musi być zgodna z nazwą zdefiniowaną volumes w definicji.
    mountPath Ta wartość definiuje ścieżkę w kontenerze, w którym jest zainstalowany magazyn.
  9. Zaktualizuj aplikację kontenera przy użyciu nowej konfiguracji instalacji magazynu.

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

Weryfikowanie instalacji magazynu

Po ustanowieniu instalacji magazynu możesz manipulować plikami w usłudze Azure Storage z kontenera. Użyj następujących poleceń, aby obserwować instalację magazynu w pracy.

  1. Otwórz interaktywną powłokę wewnątrz aplikacji kontenera, aby wykonać polecenia wewnątrz uruchomionego kontenera.

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

    To polecenie może potrwać chwilę, aby otworzyć powłokę zdalną. Gdy powłoka będzie gotowa, możesz wchodzić w interakcje z instalacją magazynu za pomocą poleceń systemu plików.

  2. Przejdź do folderu nginx /var/log/nginx .

    cd /var/log/nginx
    
  3. Wróć do przeglądarki i przejdź do witryny internetowej i odśwież stronę kilka razy.

    Żądania wysyłane do witryny internetowej tworzą serię wpisów strumienia dziennika.

  4. Wróć do terminalu /var/log/nginx i wyświetl wartości folderu.

    Zwróć uwagę, jak pliki access.log i error.log są wyświetlane w tym folderze. Te pliki są zapisywane w instalacji usługi Azure Files w udziale usługi Azure Storage utworzonym w poprzednich krokach.

  5. Wyświetl zawartość pliku access.log .

    cat access.log
    
  6. Zamknij interaktywną powłokę kontenera, aby wrócić do lokalnej sesji terminalu.

  7. Teraz możesz wyświetlić pliki w witrynie Azure Portal, aby sprawdzić, czy istnieją na koncie usługi Azure Storage. Wyświetl nazwę losowo wygenerowanego konta magazynu.

    echo $STORAGE_ACCOUNT_NAME
    
  8. Przejdź do witryny Azure Portal i otwórz konto magazynu utworzone w tej procedurze.

  9. W obszarze Magazyn danych wybierz pozycję Udziały plików.

  10. Wybierz pozycję myshare , aby wyświetlić pliki access.log i error.log .

Czyszczenie zasobów

Jeśli nie zamierzasz nadal używać tej aplikacji, uruchom następujące polecenie, aby usunąć grupę zasobów wraz ze wszystkimi zasobami utworzonymi w tym artykule.

az group delete \
  --name $RESOURCE_GROUP

Następne kroki