Tutoriel : Créer un montage de volume Azure Files dans Azure Container Apps
Apprenez à écrire dans un stockage permanent dans une application conteneur à l’aide d’un montage de stockage Azure Files. Pour plus d’informations sur les montages de stockage, consultez Utiliser des montages de stockage dans Azure Container Apps.
Dans ce tutoriel, vous allez apprendre à :
- Créer un environnement Container Apps
- Création d'un compte Azure Storage
- Définir un partage de fichiers dans le compte de stockage
- Relier l’environnement au partage de fichiers de stockage
- Monter le partage de stockage dans un conteneur individuel
- Vérifier le montage du stockage en affichant le journal d’accès au site web
Remarque
Azure Container Apps prend en charge le montage de partages de fichiers à l’aide de protocoles SMB et NFS. Ce tutoriel présente le montage d’un partage Azure Files à l’aide du protocole SMB. Pour en savoir plus sur le montage de partages NFS, consultez Utiliser des montages de stockage dans Azure Container Apps.
Prérequis
- Installez la dernière version d’Azure CLI.
Configurer l’environnement
Les commandes suivantes vous aident à définir des variables et à vérifier que votre extension Container Apps est à jour.
Se connecter à Azure CLI.
az login
Configurez les variables d’environnement utilisées dans différentes commandes à suivre.
RESOURCE_GROUP="my-container-apps-group" ENVIRONMENT_NAME="my-storage-environment" LOCATION="canadacentral"
Vérifiez que vous disposez de la version la plus récente de l’extension Container Apps Azure CLI.
az extension add -n containerapp --upgrade
Enregistrez l’espace de noms
Microsoft.App
.az provider register --namespace Microsoft.App
Enregistrez le fournisseur
Microsoft.OperationalInsights
sur l’espace de travail Azure Monitor Log Analytics si vous ne l’avez pas déjà utilisé.az provider register --namespace Microsoft.OperationalInsights
Créer un environnement
Les étapes suivantes permettent de créer un groupe de ressources et un environnement Container Apps.
Créez un groupe de ressources.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
Après sa création, la commande retourne un message « Opération réussie ».
À la fin de ce tutoriel, vous pouvez éliminer le groupe de ressources pour supprimer tous les services créés au fil de cet article.
Créez un environnement Container Apps.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"
Après sa création, la commande retourne un message « Opération réussie ».
Les montages de stockage sont associés à un environnement Container Apps et configurés dans des applications conteneur individuelles.
Installer un compte de stockage
Ensuite, créez un compte de stockage et établissez un partage de fichiers à monter dans l’application conteneur.
Définissez un nom de compte de stockage.
Cette commande génère un suffixe aléatoire qui s’ajoute au nom du compte de stockage pour garantir l’unicité.
STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
Création d’un compte 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
Après sa création, la commande retourne un message « Opération réussie ».
Définissez un nom de partage de fichiers.
STORAGE_SHARE_NAME="myfileshare"
Créez le partage de fichiers de stockage Azure.
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
Obtenez la clé du compte de stockage.
STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`
La clé de compte de stockage est nécessaire pour créer le lien de stockage dans votre environnement Container Apps.
Définissez le nom du montage de stockage.
STORAGE_MOUNT_NAME="mystoragemount"
Cette valeur est le nom utilisé pour définir le lien de montage de stockage de votre environnement Container Apps vers votre compte stockage Azure.
Créer le montage de stockage
Vous pouvez maintenant mettre à jour la configuration de l’application conteneur pour prendre en charge le montage de stockage.
Créez le lien de stockage dans l’environnement.
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
Cette commande crée un lien entre l’environnement d’application conteneur et le partage de fichiers créé avec la commande
az storage share-rm
.Maintenant que le compte de stockage et l’environnement sont liés, vous pouvez créer une application conteneur qui utilise le montage de stockage.
Définissez le nom de l’application conteneur.
CONTAINER_APP_NAME="my-container-app"
Créez l’application conteneur.
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
Cette commande affiche l’URL de votre nouvelle application conteneur.
Copiez l’URL et collez-la dans votre navigateur web pour accéder au site web.
Une fois la page chargée, vous verrez le message « Bienvenue dans nginx ! ». Laissez cet onglet de navigateur ouvert. Vous reviendrez au site web pendant les étapes de vérification du montage de stockage.
Maintenant que vous avez confirmé que l’application conteneur est configurée, vous pouvez mettre à jour l’application avec une définition de montage de stockage.
Exportez la configuration de l’application conteneur.
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --output yaml > app.yaml
Notes
Bien que cette application n’ait pas de secrets, de nombreuses applications intègrent des secrets. Par défaut, lorsque vous exportez la configuration d’une application, les valeurs des secrets ne sont pas incluses dans le YAML généré.
Si vous n’avez pas besoin de modifier les valeurs des secrets, vous pouvez supprimer la section
secrets
et vos secrets restent inchangés. Autrement, si vous devez modifier la valeur d’un secret, veillez à fournir à la foisname
etvalue
pour tous les secrets du fichier avant de tenter de mettre à jour l’application. L’omission d’un secret de la sectionsecrets
entraîne la suppression du secret.Ouvrez app.yaml dans un éditeur de code.
Remplacez la
volumes: null
définition de latemplate
section par unevolumes:
définition référençant le volume de stockage. La section du modèle doit ressembler à ce qui suit :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
La nouvelle section
template.volumes
comprend les propriétés suivantes.Propriété Description name
Cette valeur correspond au volume créé en appelant la commande az containerapp env storage set
.storageName
Cette valeur définit le nom utilisé par les conteneurs dans l’environnement pour accéder au volume de stockage. storageType
Cette valeur détermine le type de volume de stockage défini pour l’environnement. Dans ce cas, un montage Azure Files est déclaré. La section
volumes
définit les volumes au niveau de l’application que votre conteneur d’application ou les conteneurs side-car peuvent référencer via une sectionvolumeMounts
associée à un conteneur.Ajoutez une section
volumeMounts
au conteneurnginx
dans la sectioncontainers
.containers: - image: nginx name: my-container-app volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx
La nouvelle section
volumeMounts
comprend les propriétés suivantes :Propriété Description volumeName
Cette valeur doit correspondre au nom défini dans la définition volumes
.mountPath
Cette valeur définit le chemin d’accès dans votre conteneur où le stockage est monté. Mettez à jour l’application conteneur avec la nouvelle configuration de montage de stockage.
az containerapp update \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --yaml app.yaml \ --output table
Vérifier le montage de stockage
Maintenant que le montage de stockage est établi, vous pouvez manipuler des fichiers dans le stockage Azure à partir de votre conteneur. Utilisez les commandes suivantes pour observer le montage de stockage en cours de fonctionnement.
Ouvrez un interpréteur de commandes interactif à l’intérieur de l’application conteneur pour exécuter des commandes à l’intérieur du conteneur en cours d’exécution.
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP
Cette commande peut prendre un moment pour ouvrir l’interpréteur de commandes distant. Une fois l’interpréteur de commandes prêt, vous pouvez interagir avec le montage de stockage via les commandes du système de fichiers.
Accédez au dossier nginx /var/log/nginx.
cd /var/log/nginx
Revenez au navigateur, puis accédez au site web et actualisez la page plusieurs fois.
Les requêtes adressées au site web créent une série d’entrées de flux de journal.
Revenez à votre terminal et répertoriez les valeurs du dossier
/var/log/nginx
.ls
Vous remarquerez que les fichiers access.log et error.log apparaissent dans le dossier. Ces fichiers sont écrits dans le montage Azure Files dans votre partage de stockage Azure créé aux étapes précédentes.
Affichez le contenu du fichier access.log.
cat access.log
Quittez l’interpréteur de commandes interactif du conteneur pour revenir à votre session de terminal locale.
exit
À présent, vous pouvez afficher les fichiers dans le Portail Azure pour vérifier qu’ils existent dans votre compte de stockage Azure. Imprimez le nom de votre compte de stockage généré de manière aléatoire.
echo $STORAGE_ACCOUNT_NAME
Accédez au Portail Azure et ouvrez le compte de stockage créé au cours de cette procédure.
Sous Stockage des données, sélectionnez Partages de fichiers.
Sélectionnez myshare pour afficher les fichiers access.log et error.log.
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser cette application, exécutez la commande suivante pour supprimer le groupe de ressources ainsi que toutes les ressources créées pendant cet article.
az group delete \
--name $RESOURCE_GROUP