Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Améliorer les performances de démarrage avec Lambda SnapStart
Lambda SnapStart pour Java peut améliorer les performances de démarrage des applications sensibles à la latence jusqu'à 10 fois sans frais supplémentaires, généralement sans modifier votre code de fonction. Le principal facteur de latence au démarrage (souvent appelé temps de démarrage à froid) est le temps que Lambda passe à initialiser la fonction, ce qui inclut le chargement du code de la fonction, le démarrage de l’environnement d’exécution et l’initialisation du code de la fonction.
Avec SnapStart, Lambda initialise votre fonction lorsque vous publiez une version de fonction. Lambda prend un instantané Firecracker microVM
Important
Si vos applications dépendent de l’unicité de l’état, vous devez évaluer votre code de fonction et vérifier qu’il est résilient aux opérations instantanées. Pour de plus amples informations, veuillez consulter Gérer l'unicité avec Lambda SnapStart.
Rubriques
- Fonctions prises en charge et limitations
- Régions prises en charge
- Considérations de compatibilité
- SnapStart tarification
- Comparaison entre Lambda SnapStart et la simultanéité provisionnée
- Ressources supplémentaires
- Activation et gestion de Lambda SnapStart
- Gérer l'unicité avec Lambda SnapStart
- Implémenter le code avant ou après les captures d'écran des fonctions Lambda
- Surveillance pour Lambda SnapStart
- Modèle de sécurité pour Lambda SnapStart
- Maximisez les performances Lambda SnapStart
- Résolution SnapStart des erreurs liées aux fonctions Lambda Java
Fonctions prises en charge et limitations
SnapStart prend en charge les environnements d'exécution gérés par Java 11 et versions ultérieures. Les autres environnements d'exécution gérés (tels que nodejs20.x
et python3.12
), Exécutions uniquement basées sur le système d'exploitationet les images de conteneurs ne sont pas pris en charge.
SnapStart ne prend pas en charge la simultanéité provisionnée, Amazon Elastic File System EFS (Amazon) ou le stockage éphémère supérieur à 512 Mo.
Pour travailler avec SnapStart, vous pouvez utiliser la console Lambda, le AWS Command Line Interface (AWS CLI), le LambdaAPI, le, AWS SDK for Java AWS CloudFormation, AWS Serverless Application Model (AWS SAM) et. AWS Cloud Development Kit (AWS CDK) Pour de plus amples informations, veuillez consulter Activation et gestion de Lambda SnapStart.
Note
Vous ne pouvez l'utiliser SnapStart que sur des versions de fonctions publiées et des alias pointant vers des versions. Vous ne pouvez pas l'utiliser SnapStart sur la version non publiée d'une fonction ($LATEST).
Régions prises en charge
SnapStart est disponible dans les versions suivantes Régions AWS :
USA Est (Virginie du Nord)
USA Est (Ohio)
USA Ouest (Californie du Nord)
USA Ouest (Oregon)
Afrique (Le Cap)
Asie-Pacifique (Hong Kong)
Asie-Pacifique (Mumbai)
Asie-Pacifique (Hyderabad)
Asie-Pacifique (Tokyo)
Asie-Pacifique (Séoul)
Asie-Pacifique (Osaka)
Asie-Pacifique (Singapour)
Asie-Pacifique (Sydney)
Asie-Pacifique (Jakarta)
Asie-Pacifique (Melbourne)
Canada (Centre)
Europe (Stockholm)
Europe (Francfort)
Europe (Zurich)
Europe (Irlande)
Europe (Londres)
Europe (Paris)
Europe (Milan)
Europe (Espagne)
Moyen-Orient (UAE)
Moyen-Orient (Bahreïn)
Amérique du Sud (Sao Paulo)
Considérations de compatibilité
Avec SnapStart, Lambda utilise un seul instantané comme état initial pour plusieurs environnements d'exécution. Si votre fonction utilise l'un des éléments suivants pendant la phase d'initialisation, vous devrez peut-être apporter quelques modifications avant de l'utiliser SnapStart :
- Unicité
-
Si votre code d’initialisation génère un contenu unique qui est inclus dans l’instantané, ce contenu peut ne pas être unique lorsqu’il est réutilisé dans plusieurs environnements d’exécution. Pour conserver l'unicité lors de l'utilisation SnapStart, vous devez générer un contenu unique après l'initialisation. Cela inclut des secrets uniques et uniquesIDs, ainsi que l'entropie utilisée pour générer du pseudo-hasard. Pour savoir comment restaurer l’unicité, consultez Gérer l'unicité avec Lambda SnapStart.
- Connexions réseau
-
L’état des connexions que votre fonction établit pendant la phase d’initialisation n’est pas garanti lorsque Lambda reprend votre fonction à partir d’un instantané. Validez l’état de vos connexions réseau et rétablissez-les si nécessaire. Dans la plupart des cas, les connexions réseau établies par AWS SDK an reprennent automatiquement. Pour les autres connexions, consultez les bonnes pratiques.
- Données temporaires
-
Certaines fonctions téléchargent ou initialisent des données éphémères, telles que des informations d’identification temporaires ou des horodatages mis en cache, pendant la phase d’initialisation. Actualisez les données éphémères dans le gestionnaire de fonctions avant de les utiliser, même lorsque vous ne les utilisez pas. SnapStart
SnapStart tarification
Il n'y a aucun coût supplémentaire pour SnapStart. Vous êtes facturé en fonction du nombre de demandes pour vos fonctions, de la durée d’exécution de votre code et de la mémoire configurée pour votre fonction. La durée est calculée à partir du moment où votre code commence à s’exécuter jusqu’à son retour ou sa fin, arrondie à la milliseconde la plus proche.
Les frais de durée s'appliquent au code exécuté dans le gestionnaire de fonctions, au code d'initialisation déclaré en dehors du gestionnaire, au temps nécessaire au chargement du runtime (JVM) et à tout code exécuté dans un hook d'exécution. Pour plus d’informations sur la façon dont Lambda calcule la durée, consultez Surveillance pour Lambda SnapStart.
Pour les fonctions configurées avec SnapStart, Lambda recycle régulièrement les environnements d'exécution et réexécute votre code d'initialisation. Pour des raisons de résilience, Lambda crée des instantanés dans plusieurs régions. Des frais s'appliquent chaque fois que Lambda réexécute votre code d'initialisation dans une autre région. Pour plus d’informations sur la façon dont Lambda calcule les frais, consultez Tarification AWS Lambda
Comparaison entre Lambda SnapStart et la simultanéité provisionnée
La Lambda SnapStart et la simultanéité provisionnée peuvent réduire les démarrages à froid et les latences exceptionnelles lorsqu'une fonction prend de l'ampleur. SnapStart vous aide à améliorer les performances de démarrage jusqu'à 10 fois sans frais supplémentaires. La simultanéité provisionnée permet aux fonctions d’être initialisées et prêtes à répondre en un nombre de millisecondes à deux chiffres. La configuration de la simultanéité provisionnée entraîne des frais pour votre. Compte AWS Utilisez la simultanéité provisionnée si votre application a des exigences strictes en matière de latence de démarrage à froid. Vous ne pouvez pas utiliser les deux SnapStart et la simultanéité provisionnée sur la même version de fonction.
Note
SnapStart fonctionne mieux lorsqu'il est utilisé avec des invocations de fonctions à grande échelle. Les fonctions qui sont rarement invoquées peuvent ne pas bénéficier des mêmes améliorations de performance.
Ressources supplémentaires
En plus de lire les autres rubriques de ce chapitre, nous vous recommandons également d'essayer l' AWS Lambda SnapStartatelier Starting up faster with with