Partager via


Tutoriel : mettre à jour une application conteneur déployée à partir du code source

Cet article montre comment mettre à jour l’application conteneur que vous avez créée dans l’article précédent, Générer et déployer votre code source sur Azure Container Apps.

Si vous n’avez pas effectué les étapes décrites dans l’article précédent, arrêtez ici et revenez à cet article une fois que toutes les étapes sont effectuées.

Dans ce tutoriel, vous allez :

  • Apporter une modification de code à votre application.
  • Envoyer vos modifications au registre de conteneurs avec une nouvelle balise.
  • Afficher l’application mise à jour dans un navigateur.
  • Interroger le flux de journal pour afficher les messages enregistrés.

Prérequis

Pour terminer ce projet, vous avez besoin des outils, des ressources et de l’application conteneur créés dans le tutoriel précédent, Générer et déployer à partir du code source vers Azure Container Apps.

Programme d’installation

  1. Si nécessaire, connectez-vous à Azure à partir de l’interface CLI.

    az login
    
  2. Créez des variables d’environnement. Si vos variables d’environnement du dernier tutoriel existent toujours dans votre terminal, vous pouvez ignorer cette étape.

    Si vous devez recréer les variables d’environnement, vous devez d’abord rechercher le nom du registre de conteneurs que vous avez créé dans le dernier article.

    Exécutez la commande suivante pour rechercher le registre de conteneurs que vous avez créé dans le dernier tutoriel.

    az acr list --query "[].{Name:name}" --output table
    

    Une fois que vous avez le nom de votre registre de conteneurs, remplacez <REGISTRY_NAME> par votre nom de registre et exécutez la commande suivante.

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Mettez à jour et exécutez votre code source.

    Remplacez le contenu de Startup.cs par le code suivant.

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }
    
        public void Configure(IApplicationBuilder app, ILogger<Startup> logger)
        {
            app.UseRouting();
    
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    logger.LogInformation("Hello Logger!");
                    await context.Response.WriteAsync("Hello Logger!");
                });
            });
        }
    }
    

    Cette version du code inscrit un enregistreur d’événements pour écrire des informations dans la console et le flux de journal Container Apps.

    Générez votre projet dans la configuration Release (Mise en production).

    dotnet build -c Release
    

    Ensuite, exécutez votre application pour vérifier que votre code est implémenté correctement.

    dotnet run --configuration Release
    

Générer et envoyer (push) l’image à un registre

Maintenant que votre code est mis à jour, vous pouvez envoyer (push) la dernière version en tant qu’image nouvelle à votre registre de conteneurs.

Pour vous assurer que la balise utilisée pour votre registre est unique, utilisez la commande suivante pour créer un nom de balise.

IMAGE_TAG=$(date +%s)

Vous pouvez maintenant générer et envoyer (push) votre nouvelle image conteneur au Registre à l’aide de la commande suivante.

az acr build \
    -t $REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG \
    -r $REGISTRY_NAME .

Créer une nouvelle révision

Vous pouvez créer une révision de votre application conteneur en fonction de la nouvelle image conteneur que vous avez envoyée (push) à votre registre.

az containerapp revision copy \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG" \
  --output none

La commande revision copy crée une révision de votre application conteneur avec l’image conteneur spécifiée à partir du Registre.

Vérifier le déploiement

Maintenant que votre application est déployée, vous pouvez rechercher l’URL avec cette commande.

az containerapp show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --query properties.configuration.ingress.fqdn -o tsv

Dans un navigateur web, accédez à l’URL de l’application. Une fois l’application conteneur démarrée, elle génère Hello Logger!.

Interroger le flux de journal

Vous venez de voir la sortie envoyée au navigateur. Vous pouvez maintenant utiliser la commande suivante pour voir les messages consignés dans le flux de journal.

az containerapp logs show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --follow

La requête retourne une réponse similaire à l’exemple suivant :

{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Hosting environment: Production"}
{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Content root path: /app"}
{"TimeStamp", "xxxx", "Log": "info: Startup[0]"}
{"TimeStamp", "xxxx", "Log": "Hello Logger!""}

Notez comment vous pouvez voir le message Hello Logger! dans le flux.

Pour arrêter de suivre le flux, vous pouvez entrer Cmd/Ctrl + C pour arrêter les messages.

Nettoyer les ressources

Si vous n’allez pas utiliser les ressources Azure créées dans ce tutoriel, vous pouvez les supprimer avec la commande suivante.

az group delete --name my-demo-group

Conseil

Vous rencontrez des problèmes ? Faites-le nous savoir sur GitHub en ouvrant un problème dans le dépôt Azure Container Apps.

Étapes suivantes

Continuez pour apprendre à vous connecter aux services dans Azure Container Apps.