Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide de démarrage rapide explique comment déployer une application web Go conteneurisée sur Azure Container Apps.
Azure Container Apps vous permet d’exécuter le code d’application empaqueté dans n’importe quel conteneur sans gérer l’infrastructure cloud complexe ou les orchestrateurs de conteneurs complexes. Il élimine également la nécessité de vous soucier du modèle d’exécution ou de programmation. Les utilisations courantes d’Azure Container Apps sont notamment les suivantes : déploiement de points de terminaison d’API, hébergement d’applications de traitement en arrière-plan, gestion du traitement piloté par les événements et exécution de microservices.
Suivez ce didacticiel pour découvrir comment créer une image Docker, la déployer sur Azure Container Registry et déployer une application web Go sur Azure Container Apps.
Prérequis
- Abonnement Azure : Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Go installé : Version 1.18 ou ultérieure
- Docker Desktop
Programme d’installation
Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande az login et suivez les invites pour procéder à l’authentification.
az login
Pour vous assurer que vous exécutez la dernière version de l’interface CLI à l’aide de la commande az upgrade.
az upgrade
Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.
Si vous recevez des erreurs concernant les paramètres manquants lorsque vous exécutez az containerapp des commandes dans Azure CLI, vérifiez que vous disposez de la dernière version de l’extension Azure Container Apps installée.
az extension add --name containerapp --upgrade
Remarque
À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true.
az extension add --name containerapp --upgrade --allow-preview true
Maintenant que l’extension ou le module actuel est installé, inscrivez les espaces de noms Microsoft.App, Microsoft.ContainerRegistry et Microsoft.OperationalInsights.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Remarque
Les ressources Azure Container Apps ont migré de l’espace Microsoft.Web de noms vers l’espace Microsoft.App de noms. Pour plus d’informations, consultez Migration de l’espace de noms de Microsoft.Web vers Microsoft.App en mars 2022.
Télécharger l’exemple d’application
Pour suivre ce tutoriel, vous avez besoin d’un exemple d’application à conteneuriser. Le dépôt GitHub msdocs-go-go-webapp-quickstart fournit un exemple d’application web Go. Téléchargez ou clonez l’exemple d’application sur votre station de travail locale.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Création d’un Azure Container Registry
Azure Container Registry vous permet de créer, de stocker et de gérer des images conteneur. Utilisez-le pour stocker l’image Docker qui contient l’exemple d’application web Go fournie dans l’exemple de référentiel mentionné précédemment.
Exécutez les commandes suivantes pour créer un Azure Container Registry :
Définissez des variables d’environnement pour les ressources que vous allez créer. Remplacez le texte de l’espace réservé entre crochets par les valeurs appropriées. Le nom de votre Azure Container Registry doit être unique au niveau mondial.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryLes exemples de commandes permettant de définir les variables d’environnement concernent l’interpréteur de commandes Bash. Si vous utilisez un autre type de shell, adaptez les commandes en conséquence.
Créez un groupe de ressources Azure avec la commande az group create.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONCréez un Azure Container Registry à l’aide de la commande az acr create.
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicConnectez-vous à l’instance de conteneur Azure avec la commande az acr login.
az acr login --name $ACR_NAMERemarque
Si vous obtenez une erreur similaire à l’erreur suivante lorsque vous exécutez la
az acr logincommande, vérifiez que le démon Docker s’exécute sur votre système :You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
Générer et envoyer l’image Docker
Après avoir créé un Registre de conteneurs Azure, générez et envoyez (push) l’image Docker de l’exemple d’application web Go.
Exécutez les commandes suivantes pour générer et envoyer (push) l’image au Registre.
Définissez la variable d’environnement pour l’image Docker que vous allez créer. Remplacez le texte de l’espace réservé entre crochets par les valeurs appropriées.
IMAGE_NAME="go-webapp" # Name for the Docker imageLes exemples de commandes permettant de définir les variables d’environnement concernent l’interpréteur de commandes Bash. Si vous utilisez un autre interpréteur de commandes, ajustez les commandes en conséquence.
Obtenez les informations du serveur de connexion avec la commande az acr show et stockez-la dans une variable d’environnement.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Générez l’image Docker localement.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .Envoyer l’image Docker vers Azure Container Registry.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestVérifiez que l’image a été envoyée avec succès vers Azure Container Registry avec la commande az acr repository list.
az acr repository list \ --name $ACR_NAME \ --output table
Maintenant que vous disposez d’une image disponible dans Azure Container Registry, vous êtes prêt à déployer Azure Container App et son environnement.
Créer un environnement Azure Container Apps
Azure Container Apps n’a pas la complexité d’un orchestrateur de conteneurs, mais il a toujours besoin d’un moyen d’établir des limites sécurisées. Les environnements Azure Container Apps fournissent cette fonctionnalité. Les applications de conteneur déployées dans un même environnement partagent le même réseau virtuel et écrivent les journaux dans le même espace de travail Log Analytics. Avant de pouvoir déployer une application de conteneur Azure, il vous faut un environnement pour le faire.
Définissez des variables d’environnement pour les ressources que vous allez créer. Remplacez le texte de l’espace réservé entre crochets par les valeurs appropriées.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appLes exemples de commandes permettant de définir les variables d’environnement concernent l’interpréteur de commandes Bash. Si vous utilisez un autre interpréteur de commandes, ajustez les commandes en conséquence.
Exécutez la commande az containerapp env create pour créer un environnement Azure Container Apps.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Déployer sur Azure Container Apps
À ce stade, vous avez effectué les étapes suivantes :
- Création d’un registre de conteneurs Azure.
- Construit et poussé une image Docker vers le registre.
- Configurez un environnement Azure Container Apps.
La dernière étape consiste à déployer l’application.
Exécutez la commande az containerapp create pour déployer l’application web Go sur Azure Container Apps.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--registry-identity system \
--target-port 8080 \
--ingress external
Le paramètre --registry-identity system configure l’identité managée affectée par le système sur l’application conteneur. L’application conteneur utilise cette identité plutôt que son nom d’utilisateur et son mot de passe, ce qui est moins sécurisé, pour s’authentifier auprès du registre de conteneurs. La commande crée également automatiquement une AcrPull attribution de rôle pour l’identité, l’autorisant à extraire des images du Registre. Pour utiliser des identités managées pour l’authentification et l’autorisation, le registre doit être un Azure Container Registry.
Vérifier l’URL de l’application web
Exécutez la commande az containerapp show pour obtenir le nom de domaine complet (FQDN) de l’entrée de l’application web.
APP_FQDN=$(az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Exécutez la commande curl sur le nom de domaine complet et confirmez que la sortie reflète le code HTML du site web. Vous pouvez également ouvrir l’URL dans un navigateur web pour interagir avec l’application web.
curl "https://$APP_FQDN"« La commande retourne le code HTML de la page d’accueil de l’application web semblable à ce qui suit :
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
Nettoyer les ressources
Lorsque vous en avez terminé avec l’exemple d’application, vous pouvez supprimer d’Azure toutes les ressources pour l’application. Cela permet d’éviter les frais courants et d’encombrer votre abonnement Azure. Supprimer le groupe de ressources permet également de supprimer toutes les ressources qu’il contient. Cette méthode est la plus rapide pour supprimer toutes les ressources Azure de votre application.
Pour supprimer un groupe de ressources et ses ressources, exécutez la commande az group delete.
az group delete \
--name $RESOURCE_GROUP_NAME \
--no-wait