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.
Zaloguj się do interfejsu wiersza polecenia platformy Azure.
az login
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"
Upewnij się, że masz najnowszą wersję rozszerzenia interfejsu wiersza polecenia platformy Azure usługi Container Apps.
az extension add -n containerapp --upgrade
Microsoft.App
Zarejestruj przestrzeń nazw.az provider register --namespace Microsoft.App
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.
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.
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.
Zdefiniuj nazwę konta magazynu.
To polecenie generuje losowy sufiks nazwy konta magazynu w celu zapewnienia unikatowości.
STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
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".
Zdefiniuj nazwę udziału plików.
STORAGE_SHARE_NAME="myfileshare"
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
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.
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.
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.
Zdefiniuj nazwę aplikacji kontenera.
CONTAINER_APP_NAME="my-container-app"
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.
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.
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ównoname
dla wszystkich wpisów tajnych, jak ivalue
dla wszystkich wpisów tajnych w pliku. Pominięcie wpisu tajnegosecrets
z sekcji powoduje usunięcie wpisu tajnego.Otwórz plik app.yaml w edytorze kodu.
Zastąp definicję
volumes: null
wtemplate
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średnictwemvolumeMounts
sekcji skojarzonej z kontenerem.Dodaj sekcję
volumeMounts
do konteneranginx
containers
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. 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.
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.
Przejdź do folderu nginx /var/log/nginx .
cd /var/log/nginx
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.
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.
Wyświetl zawartość pliku access.log .
cat access.log
Zamknij interaktywną powłokę kontenera, aby wrócić do lokalnej sesji terminalu.
exit
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
Przejdź do witryny Azure Portal i otwórz konto magazynu utworzone w tej procedurze.
W obszarze Magazyn danych wybierz pozycję Udziały plików.
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