Remarque
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.
Outre l’interpréteur de code intégré fourni par les sessions dynamiques Azure Container Apps, vous pouvez également utiliser des conteneurs personnalisés pour définir vos propres bacs à sable de session.
Note
Cet article s’applique uniquement aux pools de sessions de conteneur personnalisées. Sauf indication contraire, les fonctionnalités décrites ici ne sont pas disponibles pour les pools de sessions d’interpréteur de code.
Utilisations pour les sessions de conteneur personnalisées
Les conteneurs personnalisés vous permettent de créer des solutions adaptées à vos besoins. Ils vous permettent d’exécuter du code ou des applications dans des environnements rapides et éphémères et offrent des espaces bac à sable sécurisés avec Hyper-V. En outre, ils peuvent être configurés avec une isolation réseau facultative. Voici quelques exemples :
Interpréteurs de code : quand vous devez exécuter du code non approuvé dans des bacs à sable sécurisés par un langage non pris en charge dans l’interpréteur intégré, ou si vous avez besoin d’un contrôle total sur l’environnement de l’interpréteur de code.
Exécution isolée : Lorsque vous devez exécuter des applications dans des scénarios hostiles et multi-locataires dans lesquels chaque locataire ou utilisateur dispose de son propre environnement sandbox. Ces environnements sont isolés les uns des autres et de l’application hôte. Voici quelques exemples d’applications qui exécutent du code fourni par l’utilisateur, du code qui accorde à l’utilisateur final l’accès à un interpréteur de commandes cloud, des agents d’IA et des environnements de développement.
Utilisation de sessions de conteneur personnalisées
Pour utiliser des sessions de conteneur personnalisées, vous créez d’abord un pool de sessions avec une image conteneur personnalisée. Azure Container Apps démarre automatiquement les conteneurs dans leurs propres bacs à sable Hyper-V à l’aide de l’image fournie. Une fois le conteneur démarré, il est disponible pour le pool de sessions.
Lorsque votre application demande une session, une instance est allouée instantanément à partir du pool. La session reste active jusqu’à ce qu’elle entre dans un état inactif, qui est ensuite automatiquement arrêté et détruit.
Sondes de conteneur pour les pools de sessions
Utilisez des sondes de conteneur pour configurer des vérifications d’intégrité pour les pools de sessions de conteneur personnalisées et gérer des instances de session saines.
Note
Les sondes de conteneur requièrent une version d'API 2025-02-02-preview ou ultérieure.
Les sondes de conteneur vous permettent de définir des contrôles d’intégrité pour les conteneurs de session, similaires aux sondes d’intégrité dans Azure Container Apps. Lorsqu’il est configuré, le pool de sessions surveille chaque instance de session et supprime les instances non saines.
Pool de sessions :
- Garantit que les instances de session prêtes sont en bonne santé selon les sondes.
- Supprime automatiquement les instances de session non saines.
- Effectue un scale-up pour maintenir le nombre configuré
readySessionInstancesavec des sessions saines.
Les pools de sessions prennent en charge les types de sondes Liveness et Startup. Pour plus d’informations sur le fonctionnement des sondes, consultez Sondes d’intégrité dans Azure Container Apps.
Paramétrage
Lorsque vous créez ou mettez à jour un pool de sessions, spécifiez des sondes dans la properties.customContainerTemplate.containers section de votre charge utile de requête.
Pour obtenir la spécification complète de l’API, consultez l’API SessionPools.
Exemple
{
"properties": {
"customContainerTemplate": {
"containers": [
{
"name": "my-session-container",
"image": "myregistry.azurecr.io/my-session-image:latest",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080
},
"periodSeconds": 10,
"failureThreshold": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/ready",
"port": 8080
},
"periodSeconds": 5,
"failureThreshold": 30
}
]
}
]
},
"dynamicPoolConfiguration": {
"readySessionInstances": 5
}
}
}
Résolution des problèmes
Si votre pool de sessions ne maintient pas le nombre attendu de readySessionInstances en bonne santé, tenez compte des éléments suivants :
- Vérifiez les journaux de conteneur : passez en revue les journaux de conteneur de session pour identifier les problèmes liés aux points de terminaison de sonde ou au démarrage du conteneur. Consultez Afficher les journaux d’activité pour les pools de sessions de conteneur personnalisées.
- Vérifiez la configuration de la sonde : vérifiez que les chemins de sonde, les ports et les seuils sont configurés correctement pour votre application.
- Passez en revue l’intégrité du conteneur : vérifiez les problèmes à l’intérieur de votre conteneur qui empêchent les points de terminaison de sonde de répondre correctement.
Arrêter une session
Utilisez l’API Arrêter la session pour arrêter une session dans un pool de sessions de conteneur personnalisé.
Les pools de sessions prennent en charge la gestion automatique des sessions via lifecycleConfiguration, qui gère le cycle de vie de session en fonction de votre configuration. Toutefois, il existe des scénarios où vous aurez peut-être besoin d’un contrôle plus grand.
Après avoir alloué une session, vous pouvez appeler cette API pour l’arrêter manuellement à tout moment. Cela est utile quand :
- Vous devez nettoyer les ressources avant qu’une session atteigne son délai de vie.
- Votre pool de sessions a atteint sa limite maximale de sessions simultanées et vous devez libérer de la capacité pour les nouvelles sessions.
- Une session a terminé son travail et vous souhaitez libérer immédiatement des ressources.
Référence d’API
Requête
POST {PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier={SessionIdentifier}
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
api-version |
ficelle | Oui | Version de l’API à utiliser (par exemple). 2025-10-02-preview |
identifier |
ficelle | Oui | Identificateur unique de la session à arrêter. |
Exemples
Requête
POST https://{PoolManagementEndpoint}/.management/stopSession?api-version=2025-10-02-preview&identifier=testSessionIdentifier
Réponse
HTTP/1.1 200 OK
Content-Type: text/plain
Session testSessionIdentifier in session pool testSessionPool stopped.
Journalisation
Les pools de sessions de conteneur personnalisés s’intègrent à Azure Monitor et Log Analytics. Les journaux d’application sont capturés uniquement si votre conteneur écrit la sortie vers stdout ou stderr. Veuillez vous assurer que votre application émet des journaux dans la console.
Prerequisites
- Un environnement Azure Container Apps avec un pool de sessions de conteneur personnalisé
- Un espace de travail Log Analytics (ou en créer un lors de l’installation)
Configuration de la journalisation
Étape 1 : Activer la journalisation Azure Monitor
- Accédez à votre environnement Container Apps dans le portail Azure.
- Sous Surveillance, sélectionnez Options de journalisation.
- Définissez la destination des journaux sur Azure Monitor.
Étape 2 : Configurer les paramètres de diagnostic
- Dans votre environnement Container Apps, accédez aux paramètres de diagnostic sous Surveillance.
- Sélectionnez + Ajouter le paramètre de diagnostic.
- Indiquez un nom pour votre paramètre de diagnostic.
- Sous Journaux, sélectionnez les catégories de journaux associées à la session que vous souhaitez capturer.
- Sous Détails de la destination, sélectionnez Envoyer à l’espace de travail Log Analytics.
- Choisissez votre espace de travail Log Analytics (ou créez-en un).
- Cliquez sur Enregistrer.
Tableaux Log Analytics
| Catégorie de journal | Table d'Analytics Log | Description |
|---|---|---|
| Logs d'application | AppEnvSessionConsoleLogs |
Sortie standard (stdout) et erreur standard (stderr) émise par l’application conteneurisée. |
| Journaux de plateforme |
AppEnvSessionLifecycleLogs, AppEnvSessionPoolEvents |
Événements générés par la plateforme liés à l’allocation, au cycle de vie et à l’état opérationnel du pool de sessions. |
Si les journaux sont envoyés directement à Log Analytics, les tables utilisent le suffixe _CL (par exemple, AppEnvSessionConsoleLogs_CL). Lorsque les journaux d’activité sont routés via les paramètres de diagnostic Azure Monitor, les noms de tables n’incluent pas le suffixe _CL.
Afficher les journaux de session
Une fois les paramètres de diagnostic configurés, les journaux sont envoyés à votre espace de travail Log Analytics.
Journaux de requêtes dans Log Analytics
- Accédez à votre espace de travail Log Analytics dans le portail Azure.
- Sélectionnez Journaux sous Général.
- Utilisez kusto Query Language (KQL) pour interroger les journaux de session.
Exemples de requêtes
Affichez les journaux de console récents à partir de sessions :
AppEnvSessionConsoleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
| take 100
Afficher les événements de cycle de vie de session :
AppEnvSessionLifecycleLogs
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
Afficher les événements du pool de sessions :
AppEnvSessionPoolEvents
| where TimeGenerated > ago(1h)
| order by TimeGenerated desc
Metrics
Azure Container Apps émet des métriques Azure Monitor pour les pools de sessions de conteneur personnalisées. Utilisez ces métriques pour suivre la capacité et l’activité du pool au fil du temps.
Métriques prises en charge
Pour obtenir la liste complète, consultez Métriques prises en charge - Microsoft.App/sessionpools - Azure Monitor.
| Unité de mesure | Nom dans l’API REST | Unité | Aggregation | Dimensions | Fragments de temps | Exportation DS |
|---|---|---|---|---|---|---|
|
Nombre de sessions en cours d’exécution Nombre de pods de session en cours d’exécution dans le pool de sessions |
PoolExecutingPodCount |
Nombre | Total (Somme), Moyenne, Maximum, Minimum | poolName |
PT1M | Oui |
|
Création du nombre de sessions Nombre de pods de session créés dans le pool de sessions |
PoolPendingPodCount |
Nombre | Total (Somme), Moyenne, Maximum, Minimum | poolName |
PT1M | Oui |
|
Nombre de sessions prêtes Nombre de pods de session prêts dans le pool de sessions |
PoolReadyPodCount |
Nombre | Total (Somme), Moyenne, Maximum, Minimum | poolName |
PT1M | Oui |
Afficher les métriques de session
Vous pouvez utiliser des métriques d’environnement Azure Monitor ou Container Apps pour afficher les métriques basées sur les sessions.
Option 1 : Métriques Azure Monitor
- Ouvrez la page Métriques Azure Monitor.
- Sélectionnez comme étendue votre pool de sessions de conteneur personnalisé.
- Choisissez une métrique et une agrégation à afficher.
Option 2 : Métriques d’environnement Container Apps
- Dans le portail Azure, ouvrez votre environnement Container Apps.
- Sélectionnez Métriques.
- Utilisez Scope pour sélectionner votre pool de sessions de conteneur personnalisé.
- Choisissez une métrique et une agrégation à afficher.