Partager via


Sessions dynamiques dans Azure Container Apps

Les sessions dynamiques Azure Container Apps offrent un accès rapide à des environnements sandbox sécurisés, idéaux pour exécuter du code ou des applications nécessitant une forte isolation des autres charges de travail.

Les sessions fonctionnent dans le contexte d’un pool de sessions qui atténue le démarrage à froid pour garantir la disponibilité immédiate d’une session.

Avec les sessions, vous obtenez :

  • Fort isolement : les sessions sont isolées les unes des autres et de l’environnement hôte. Chaque session s’exécute dans son propre bac à sable Hyper-V, fournissant une sécurité et une isolation de niveau entreprise. Si vous le souhaitez, vous pouvez activer l’isolation réseau pour améliorer la sécurité.

  • Accès simple : les sessions sont accessibles via une API REST. Un identificateur unique marque chaque session. Si une session avec un identificateur donné n’existe pas, une nouvelle session est automatiquement allouée.

  • Entièrement managé : Container Apps gère entièrement le cycle de vie d’une session. Les sessions sont automatiquement nettoyées lorsqu’elles ne sont plus utilisées.

  • Démarrage rapide : les nouvelles sessions sont allouées en millisecondes. Les démarrages rapides sont réalisés en conservant automatiquement un pool de sessions prêtes mais non allouées.

  • Évolutif : les sessions peuvent s'exécuter à grande échelle. Vous pouvez exécuter des centaines ou des milliers de sessions simultanément.

  • Accès à l’API : les sessions sont exposées à votre application via un point de terminaison HTTP unique.

session

Une session est un environnement bac à sable qui exécute du code non approuvé ou votre application.

Chaque session est isolée de toutes les autres sessions et de l’environnement hôte avec un bac à sable Hyper-V . La technologie Hyper-V est au cœur de l’isolation de session, garantissant que différentes sessions fonctionnent indépendamment tout en établissant les limites de sécurité nécessaires. Pour améliorer la sécurité réseau, vous pouvez activer l’isolation réseau de session sur votre session.

Il existe deux types de sessions différents.

Types de session

Azure Container Apps prend en charge deux types de sessions :

Catégorie Descriptif Modèle de facturation
Sessions d’interpréteur de code Interpréteur de code entièrement managé qui vous permet d’exécuter du code dans un bac à sable préinstallé avec des bibliothèques populaires.

Idéal pour exécuter du code non approuvé, tel que du code fourni par les utilisateurs de votre application ou du code généré par un modèle de langage volumineux (LLM).

Vous pouvez utiliser la session prête à l’emploi ou avec une infrastructure de modèle de langage.
Par session (consommation)
Sessions de conteneur personnalisées Option de conteneur personnel où vous exécutez vos propres images de conteneur dans des environnements sécurisés et isolés.

Cette approche est une bonne option si vous souhaitez exécuter un interpréteur de code personnalisé pour une langue qui n'est pas prise en charge nativement, ou des charges de travail qui nécessitent une isolation stricte.
Plan dédié aux applications de conteneur

Chaque session, quel que soit le type, s’exécute dans le contexte d’un pool de sessions.

Pools de sessions

Pour fournir des temps d'allocation de session inférieurs à la seconde, Azure Container Apps gère un pool de sessions prêtes mais non allouées. Lorsque votre application effectue une demande pour une session qui n’a pas été utilisée précédemment, le pool affecte automatiquement une nouvelle session pour vous. À mesure que les sessions sont allouées, le pool est automatiquement réapprovisionné pour maintenir un nombre constant de sessions prêtes.

Chaque pool de sessions est disponible pour votre application via un emplacement de point de terminaison de gestion de pool unique.

Cycle de vie de session

Le runtime Container Apps gère automatiquement le cycle de vie de chaque session d’un pool. La durée de vie d’une session commence à mesure que la session démarre et se poursuit pendant l’utilisation de la session. Une fois qu'il n'y a pas de demande vers la session après que la période de latence s'est écoulée, la session est supprimée.

Les états suivants définissent ce cycle de vie :

  1. En attente : lorsqu’une session démarre, elle est dans l’état en attente. La durée pendant laquelle une session passe dans cet état dépend de l’image conteneur et des paramètres spécifiés pour le pool de sessions. Une session dans cet état n’est pas ajoutée au pool de sessions prêtes.

  2. Non alloué : une fois qu’une session a été démarrée, elle est ajoutée au pool et devient disponible pour l’allocation. Pour les sessions de conteneur personnalisées, vous pouvez spécifier le nombre de sessions prêtes à être conservées dans le pool. Ce nombre doit être augmenté si les sessions sont allouées plus rapidement qu’elles ne sont réapprovisionnées.

  3. Alloué : lorsque vous envoyez une requête à une session non en cours d'exécution, le pool fournit une nouvelle session et la place dans un état alloué. Les requêtes suivantes avec le même identificateur de session sont routées vers la même session, ce qui permet une réutilisation efficace sans démarrage à froid. Chaque session allouée est associée à un identificateur de session.

  4. Détruit : si une session ne reçoit pas de demandes pour une durée définie par le paramètre, la cooldownPeriodInSeconds session et son Hyper-V bac à sable sont supprimés en toute sécurité. Cette configuration de nettoyage automatique améliore la gestion des ressources et la sécurité.

Le runtime Container Apps gère automatiquement le cycle de vie de chaque session dans un pool de sessions.

Disponibilité dans les régions

Les sessions dynamiques sont disponibles dans les régions suivantes :

Région Interpréteur de code Conteneur personnalisé
Australie Est
Brésil Sud -
Canada Est -
Asie Est
USA Est
Est des États-Unis 2
France Centrale -
Allemagne Centre-Ouest
Italie Nord
Japon Est -
Corée Centrale -
Centre-Nord des États-Unis
Europe Nord
Norvège Est
Pologne Centre
Afrique du Sud Nord -
Inde Sud -
Suède Centre
Suisse Nord
Émirats arabes unis Nord -
Sud du Royaume-Uni
Centre-USA Ouest
Europe Ouest
USA Ouest
USA Ouest 2
Ouest des États-Unis 3

Facturation

Nous facturons les sessions de conteneur personnalisé en fonction des ressources consommées par le pool de sessions. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Facturation d’Azure Container Apps.

Sécurité

Utilisez les méthodes suivantes pour renforcer la sécurité de vos sessions dynamiques.

  • Identificateurs sécurisés : utilisez des identificateurs de session sécurisés à tout moment. Générez des identificateurs de session à l’aide de méthodes de chiffrement pour garantir des valeurs uniques et imprévisibles. Évitez d’utiliser des ID séquentiels qui pourraient être deviner par un attaquant.

  • Utilisez HTTPS : utilisez toujours HTTPS pour chiffrer les données en transit. Cela protège les identificateurs de session et toutes les données sensibles échangées entre le client et le serveur contre l’interception.

  • Limitez la durée de vie de la session : implémentez des délais d’expiration pour les sessions. Par exemple, autorisez un maximum de 15 minutes d’inactivité avant l’arrêt automatique de la session. Cela permet d’atténuer les risques en raison d’un appareil perdu ou sans assistance.

  • Audits et surveillance réguliers : passez régulièrement en revue les pratiques et journaux de gestion des sessions. Implémentez des outils de surveillance pour alerter les activités suspectes, telles que les tentatives de connexion ayant échoué répétées ou les longueurs de session anormales.