Envoyer en streaming les journaux des travaux Azure Spring Apps en temps réel (préversion)

Remarque

Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.

Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.

Cet article s’applique à :❌ De base/Standard ✔️ Entreprise

Cet article décrit comment utiliser Azure CLI afin d’obtenir en temps réel les journaux des travaux pour la résolution des problèmes. Vous pouvez également utiliser les paramètres de diagnostic pour analyser les données de diagnostic dans Azure Spring Apps. Pour plus d’informations, consultez Analyser les journaux et les métriques avec les paramètres de diagnostic. Pour plus d’informations sur le streaming des journaux, consultez Diffuser en continu les journaux de console d’application Azure Spring Apps en temps réel et Envoyer en streaming les journaux des composants managés Azure Spring Apps en temps réel.

Prérequis

  • Azure CLI avec l’extension Azure Spring Apps version 1.24.0 ou ultérieure. Vous pouvez installer cette extension à l’aide de la commande suivante : az extension add --name spring.

Affecter un rôle Azure

Pour envoyer en streaming les journaux des travaux, vous devez disposer des rôles Azure appropriés. Le tableau suivant liste le rôle requis et les opérations pour lesquelles ce rôle reçoit des autorisations :

Rôle requis Opérations
Rôle Lecteur du journal des travaux Azure Spring Apps Microsoft.AppPlatform/Spring/jobs/executions/logstream/action
Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action

Utilisez les étapes suivantes pour configurer un rôle Azure à l’aide du portail Azure :

  1. Ouvrez le portail Azure.

  2. Ouvrez votre instance de service Azure Spring Apps.

  3. Dans le volet de navigation, sélectionnez Contrôle d’accès (IAM).

  4. Dans la page Contrôle d’accès (IAM), sélectionnez Ajouter, puis Ajouter une attribution de rôle.

    Capture d’écran du portail Azure montrant la page Contrôle d’accès (IAM) avec mise en évidence de l’option Ajouter une attribution de rôle.

  5. Dans la page Ajout de l’attribution de rôle, dans la liste Nom, recherchez et sélectionnez le rôle cible, puis sélectionnez Suivant.

    Capture d’écran du portail Azure illustrant la page Ajouter une attribution de rôle avec mise en évidence du nom de rôle Lecteur du journal des travaux Azure Spring Apps.

  6. Sélectionnez Membres, puis recherchez et sélectionnez votre nom d’utilisateur.

  7. Sélectionnez Vérifier + attribuer.

Afficher les dernières lignes des journaux

Cette section fournit des exemples d’utilisation d’Azure CLI pour produire les dernières lignes des journaux.

Afficher les dernières lignes des journaux d’une instance spécifique

Chaque fois qu’un travail est déclenché, une nouvelle exécution de travail est créée. En outre, en fonction du paramètre de parallélisme de votre travail, plusieurs réplicas ou instances s’exécutent en parallèle.

Utilisez la commande suivante pour lister toutes les instances d’une exécution de travail :

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

Vous pouvez obtenir tous les noms d’instance de l’exécution de la tâche à partir de la sortie.

Pour voir les dernières lignes des journaux d’une instance spécifique, utilisez la commande az spring job logs avec l’argument -i/--instance, comme indiqué dans l’exemple suivant :

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name>

Afficher les dernières lignes des journaux de toutes les instances dans une seule commande

Pour afficher les dernières lignes des journaux de toutes les instances, utilisez l’argument --all-instances, comme indiqué dans l’exemple suivant. Le nom de l’instance est le préfixe de chaque ligne de journal. Lorsqu’il existe plusieurs instances, les journaux sont imprimés par lots pour chaque instance. Ainsi, les journaux d’une instance ne sont pas entrelacés avec ceux d’une autre instance.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances

Envoyer en streaming continu les nouveaux journaux

Par défaut, az spring job logs affiche uniquement les journaux existants envoyés en streaming à la console, puis se ferme. Si vous souhaitez envoyer en streaming les nouveaux journaux, ajoutez l’argument -f/--follow.

Lorsque vous utilisez l’option -f/--follow pour les dernières lignes des journaux instantanés, le service de streaming de journaux Azure Spring Apps envoie des journaux de pulsation au client toutes les minutes, sauf si le travail écrit des journaux en continu. Les messages du journal des pulsations utilisent le format suivant : 2023-12-18 09:12:17.745: No log from server.

Envoyer en streaming les journaux d’une instance spécifique

Utilisez les commandes suivantes pour obtenir les noms d’instance et les journaux de flux pour une instance spécifique :

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name> \
    --follow

Envoyer en streaming les journaux de toutes les instances

Utilisez la commande suivante pour envoyer en streaming les journaux de toutes les instances :

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances \
    --follow

Lorsque vous envoyez en streaming les journaux de plusieurs instances d’une exécution de travail, les journaux d’une instance sont entrelacés avec ceux des autres instances.

Envoyer en streaming les journaux dans une instance d’injection de réseau virtuel

Pour une instance Azure Spring Apps déployée dans un réseau virtuel personnalisé, vous pouvez accéder au streaming des journaux par défaut à partir d’un réseau privé. Pour plus d’informations, consultez Déploiement d’Azure Spring Apps dans un réseau virtuel

Azure Spring Apps vous permet également d’accéder aux journaux des travaux en temps réel à partir d’un réseau public.

Remarque

L’activation du point de terminaison de streaming de journaux sur le réseau public ajoute une IP entrante publique à votre réseau virtuel. Faites preuve de prudence si c’est une préoccupation pour vous.

Utilisez les étapes suivantes pour activer un point de terminaison de streaming de journaux sur le réseau public :

  1. Sélectionnez l’instance de service Azure Spring Apps déployée dans votre réseau virtuel, puis sélectionnez Mise en réseau dans le volet de navigation.

  2. Sélectionnez l’onglet Injection dans le VNet.

  3. Définissez l’état de Ressources de plan de données sur le réseau public sur Activer pour activer un point de terminaison de streaming de journaux sur le réseau public. Ce processus prend quelques minutes.

    Capture d’écran du portail Azure montrant la page Mise en réseau avec l’onglet Injection dans le VNet sélectionné et la section Résolution des problèmes mise en évidence.

Une fois que vous avez activé le point de terminaison public du streaming de journaux, vous pouvez accéder aux journaux des travaux à partir d’un réseau public, comme si vous accédiez à une instance normale.

Sécuriser le trafic vers le point de terminaison public de streaming de journaux

Le streaming de journaux pour les travaux utilise Azure RBAC pour authentifier les connexions aux travaux. Par conséquent, seuls les utilisateurs disposant des rôles appropriés peuvent accéder aux journaux.

Pour garantir la sécurité de vos travaux lorsque vous exposez un point de terminaison public pour eux, sécurisez le point de terminaison en filtrant le trafic réseau vers votre service avec un groupe de sécurité réseau. Pour plus d’informations, consultez Tutoriel : Filtrer le trafic réseau avec un groupe de sécurité réseau à l’aide du portail Azure. Un groupe de sécurité réseau contient des règles de sécurité qui autorisent ou refusent le trafic réseau entrant ou sortant en direction/à partir des différents types de ressources Azure. Pour chaque règle, vous pouvez spécifier la source et la destination, le port et le protocole.

Remarque

Si vous ne pouvez pas accéder aux journaux des travaux dans l’instance d’injection de réseau virtuel à partir d’Internet une fois que vous avez activé un point de terminaison public de streaming de journaux, vérifiez votre groupe de sécurité réseau pour voir si vous avez autorisé ce trafic entrant.

Le tableau suivant présente un exemple de règle de base que nous recommandons. Vous pouvez utiliser des commandes comme nslookup avec le point de terminaison <service-name>.private.azuremicroservices.io pour obtenir l’adresse IP cible d’un service.

Priorité Nom Port Protocole Source Destination Action
100 Nom de la règle 80 TCP Internet Adresse IP d’un service Allow
110 Nom de la règle 443 TCP Internet Adresse IP d’un service Allow

Étapes suivantes