Udostępnij przez


Samouczek: Zamontowanie woluminu Azure Files w usłudze Azure Container Apps

Dowiedz się, jak zapisywać w trwałej pamięci masowej w aplikacji kontenerowej przy użyciu punktu montażu Azure Files. Aby uzyskać więcej informacji na temat montowania magazynu, zobacz Używanie montowania magazynu w usłudze Azure Container Apps.

Z tego samouczka dowiesz się, jak wykonywać następujące działania:

  • Tworzenie środowiska usługi Container Apps
  • Tworzenie konta usługi Azure Storage
  • Określenie udziału plików w koncie magazynowym
  • Powiąż środowisko z udziałem plików storage.
  • Montowanie udziału magazynu w jednym kontenerze
  • Zweryfikuj punkt montowania magazynu, wyświetlając dziennik dostępu do witryny internetowej

Uwaga

Usługa Azure Container Apps obsługuje montowanie 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 montowania udziałów NFS, sprawdź Montowanie zasobów w usłudze Azure Container Apps.

Wymagania wstępne

Konfigurowanie środowiska

Następujące polecenia definiują zmienne środowiskowe i upewnij się, że rozszerzenie Container Apps jest aktualne.

  1. Zaloguj się do Azure CLI.

    az login
    
  2. Skonfiguruj zmienne środowiskowe używane w kolejnych poleceniach.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Upewnij się, że masz najnowszą wersję rozszerzenia CLI Azure dla Container Apps.

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

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

    az provider register --namespace Microsoft.OperationalInsights
    

Tworzenie środowiska

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".

    Punkty montowania magazynu są skojarzone ze środowiskiem aplikacji kontenerowych i konfigurowane w ramach poszczególnych aplikacji kontenerowych.

Konfigurowanie konta magazynu

Następnie utwórz konto magazynu i utwórz udział plików, aby podłączyć go do aplikacji kontenera.

  1. Zdefiniuj nazwę konta pamięci masowej.

    To polecenie generuje losowy sufiks nazwy konta magazynu w celu zapewnienia unikalnoś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ł plikowy 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. Usługa Container Apps nie obsługuje dostępu tożsamościowego do udziałów plików platformy Azure.

  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.

Stwórz punkt montażu dysku

Teraz możesz zaktualizować konfigurację aplikacji kontenera, aby obsługiwać montowanie magazynu.

  1. Utwórz link do pamięci masowej 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, który został utworzony za pomocą polecenia az storage share-rm.

    Teraz, gdy konto magazynu i środowisko są połączone, możesz utworzyć aplikację kontenera, która korzysta z punktu montowania 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 montowania pamięci.

    Po potwierdzeniu, że aplikacja kontenera została skonfigurowana, możesz zaktualizować aplikację, dodając definicję połączenia 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 tajemnic, wiele aplikacji zawiera sekrety. Domyślnie podczas eksportowania konfiguracji aplikacji wartości tajnych danych 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 podano zarówno name, jak i value dla wszystkich wpisów tajnych w pliku. Pominięcie tajemnicy z sekcji secrets powoduje usunięcie tej tajemnicy.

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

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

    template:
      containers:
      - image: nginx
        imageType: ContainerImage
        name: my-container-app
        resources:
          cpu: 0.5
          ephemeralStorage: 2Gi
          memory: 1Gi
        volumeMounts:
        - volumeName: my-azure-file-volume
          mountPath: /var/log/nginx
      initContainers: null
      revisionSuffix: ''
      scale:
        cooldownPeriod: 300
        maxReplicas: 1
        minReplicas: 1
        pollingInterval: 30
        rules: null
      serviceBinds: null
      terminationGracePeriodSeconds: null
      volumes:
      - name: my-azure-file-volume
        storageName: mystoragemount
        storageType: AzureFile
    

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

    Nieruchomość / Majątek Opis
    name Ta wartość odpowiada woluminowi utworzonemu przez wywołanie polecenia az containerapp env storage set.
    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 pomocnicze mogą odwoływać się za pomocą sekcji volumeMounts powiązanej z kontenerem.

  8. Dodaj sekcję volumeMounts do kontenera nginx w sekcji containers.

    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:

    Nieruchomość / Majątek 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 punktu montowania pamięci.

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

Weryfikowanie instalacji magazynu

Po zamontowaniu magazynu, możesz zarządzać plikami w usłudze Azure Storage z poziomu kontenera. Użyj następujących poleceń, aby obserwować działanie montowania pamięci masowej.

  1. Otwórz interaktywną powłokę dla aplikacji kontenerowej, aby wykonywać polecenia wewnątrz działającego 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. Aby uzyskać więcej informacji, zobacz Łączenie z konsolą kontenera w usłudze Azure Container Apps.

  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 kierowane do witryny internetowej tworzą serię wpisów w strumieniu dziennika.

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

    ls
    

    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.

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

    echo $STORAGE_ACCOUNT_NAME
    
  8. Przejdź do portalu Azure i otwórz konto magazynowe 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