Déploiements propagés pour les fonctions Lambda - AWS Lambda

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.

Déploiements propagés pour les fonctions Lambda

Utilisez des déploiements propagés pour contrôler les risques associés à l'introduction de nouvelles versions de votre fonction Lambda. Dans un déploiement propagé, le système déploie automatiquement la nouvelle version de la fonction et envoie progressivement un volume croissant de trafic vers la nouvelle version. La quantité de trafic et le taux d'augmentation sont des paramètres que vous pouvez configurer.

Vous configurez un déploiement progressif à l'aide de AWS CodeDeploy etAWS SAM. CodeDeploy est un service qui automatise les déploiements d'applications sur les plateformes informatiques Amazon telles qu'Amazon EC2 et. AWS Lambda Pour plus d'informations, voir Qu'est-ce que c'est CodeDeploy ? . En utilisant CodeDeploy pour déployer votre fonction Lambda, vous pouvez facilement surveiller l'état du déploiement et lancer une annulation si vous détectez des problèmes.

AWS SAM est une infrastructure open source qui permet de créer des applications sans serveur. Vous créez un modèle AWS SAM (au format YAML) pour spécifier la configuration des composants requis pour le déploiement propagé. AWS SAM utilise le modèle pour créer et configurer les composants. Pour plus d'informations, consultez Qu'est-ce qu'AWS SAM ?

Dans un déploiement propagé, AWS SAM effectue les tâches suivantes :

  • Il configure votre fonction Lambda et crée un alias.

    La configuration de routage d'alias est la capacité sous-jacente qui implémente le déploiement propagé.

  • Il crée une CodeDeploy application et un groupe de déploiement.

    Le groupe de déploiement gère le déploiement propagé et la restauration (si nécessaire).

  • Il détecte le moment où vous créez une nouvelle version de votre fonction Lambda.

  • Il déclenche CodeDeploy le lancement du déploiement de la nouvelle version.

Exemple de modèle Lambda AWS SAM

L'exemple suivant présente un modèle AWS SAM pour un déploiement propagé simple.

AWSTemplateFormatVersion : '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: A sample SAM template for deploying Lambda functions. Resources: # Details about the myDateTimeFunction Lambda function myDateTimeFunction: Type: AWS::Serverless::Function Properties: Handler: myDateTimeFunction.handler Runtime: nodejs18.x # Creates an alias named "live" for the function, and automatically publishes when you update the function. AutoPublishAlias: live DeploymentPreference: # Specifies the deployment configuration Type: Linear10PercentEvery2Minutes

Ce modèle définit une fonction Lambda nommée myDateTimeFunction avec les propriétés suivantes.

AutoPublishAlias

La propriété AutoPublishAlias crée un alias nommé live. De plus, l'infrastructure AWS SAM détecte automatiquement le moment où vous enregistrez du code nouveau pour la fonction. L'infrastructure publie ensuite une nouvelle version de fonction et met à jour l'alias live de sorte qu'il pointe vers la nouvelle version.

DeploymentPreference

La DeploymentPreference propriété détermine la vitesse à laquelle l' CodeDeploy application déplace le trafic de la version d'origine de la fonction Lambda vers la nouvelle version. La valeur Linear10PercentEvery2Minutes déplace 10 % du trafic toutes les deux minutes vers la nouvelle version.

Pour obtenir la liste des configurations de déploiement prédéfinies, consultez Configurations de déploiement.

Pour un didacticiel détaillé sur l'utilisation des fonctions Lambda, voir Déployer une fonction Lambda mise à jour CodeDeploy avec. CodeDeploy