View a markdown version of this page

Gestion des révisions des fonctions Web - 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.

Gestion des révisions des fonctions Web

Une révision est un instantané immuable du code et de la configuration de votre application Web Function. Pour modifier votre code ou tout paramètre de révision, par exemple timeoutSecondsmaxConcurrencyPerEnvironment, ouenvironmentVariables, vous créez une nouvelle révision. La réception du trafic par la nouvelle révision dépend du mode de déploiement automatique de chaque point de terminaison. Un point de terminaison en LatestRevisionmode achemine tout le trafic vers la nouvelle révision une fois celle-ci devenue active. Un point de terminaison en mode Disabled conserve ses pondérations de révision actuelles jusqu'à ce que vous les modifiiez. Les révisions étant immuables, vous pouvez revenir en arrière en acheminant le trafic vers une révision antérieure. La version précédente doit rester active, et son code, sa clé, son rôle et ses autres dépendances doivent rester disponibles. Pour plus d'informations sur le routage du trafic entre les révisions, consultezModèles de déploiement.

Propriétés de révision

Chaque révision contient la configuration suivante :

Propriété Description Par défaut Modifiable
RevisionID ID unique généré par Lambda lorsque vous créez la révision. – Non (généré)
Révision ARN Le nom de ressource Amazon (ARN) de la révision. – Non (généré)
Fonction ARN L'ARN de la fonction Web à laquelle appartient la révision. – Non (généré)
state État du cycle de vie de la révision (PendingActive, ouFailed). Pour plus de détails, consultez États de révision. – Non (géré par Lambda)
STATEREASON Description de la raison pour laquelle la révision est dans son état actuel, par exemple la cause d'un Failed état. – Non (géré par Lambda)
erreurs Liste des erreurs détectées par Lambda lors de la création ou de la lecture de la révision. Chaque erreur nomme l'attribut concerné et inclut un code d'erreur et un message. Absent lorsque la révision ne comporte aucune erreur. – Non (géré par Lambda)
Créé à CreatedAt Horodatage de création de la révision. – Non (généré)
description Description facultative de la révision que vous fournissez lors de sa création. Aucune Non (immuable)
Config de construction Le code et le runtime de la révision. Contient les runtimeConfig paramètres codeConfig et décrits dans les lignes suivantes. – Non (immuable)
Configuration du code Emplacement du package de déploiement. Contient le s3Object paramètre décrit dans les lignes suivantes. Fait partie debuildConfig. – Non (immuable)
Objet S3 L'emplacement Amazon S3 du package de déploiement. Contient les versionId paramètres bucketkey, et décrits dans les lignes suivantes. Pour plus de détails, consultez Déploiement du code de fonction Web depuis Amazon S3. Fait partie decodeConfig. – Non (immuable)
bucket Nom du compartiment Amazon S3 qui contient le package de déploiement. La gestion des versions S3 doit être activée sur le compartiment. Fait partie des3Object. – Non (immuable)
key La clé d'objet Amazon S3 du package de déploiement. Fait partie des3Object. – Non (immuable)
VersionID L'ID de version de l'objet Amazon S3. Facultatif. Si vous l'omettez, Lambda utilise la dernière version de l'objet au moment de sa création. Quoi qu'il en soit, Lambda associe la révision à une version d'objet spécifique. Fait partie des3Object. Dernière version Non (immuable)
RuntimeConfig La configuration d'exécution. Contient le runtime paramètre décrit dans la ligne suivante. Fait partie debuildConfig. – Non (immuable)
runtime L'identifiant d'exécution (par exemple,nodejs24.x). Pour les environnements d'exécution pris en charge, consultezRuntimes des fonctions Web Lambda. Bien que l'identifiant d'exécution soit fixe pour la révision, le temps d'exécution lui-même n'est pas gelé. Lambda applique automatiquement des correctifs de sécurité et des corrections de bogues au moteur d'exécution, de sorte que l'identifiant (par exemplenodejs24.x) correspond toujours à la dernière version corrigée. Pour plus de détails, consultez Correctif automatique lors de l'exécution. Fait partie deruntimeConfig. – Non (immuable)
Configuration du service Les paramètres d'exécution de la révision. Contient les telemetryConfig paramètres executionRoleArntimeoutSeconds,maxConcurrencyPerEnvironment,environmentVariables, et décrits dans les lignes suivantes. – Non (immuable)
exécution RoleArn L'ARN du rôle IAM assumé par la fonction Web lors de l'exécution. Le rôle accorde des autorisations pour accéder aux AWS services et aux ressources. Obligatoire. Pour plus de détails, consultez Rôle d'exécution. Fait partie deserviceConfig. – Non (immuable)
TimeOutSeconds Durée maximale en secondes pendant laquelle une seule requête HTTP peut être exécutée. Valeurs valides : 3 à 900. Fait partie deserviceConfig. 30 Non (immuable)
maxConcurrencyPerEnvironment Le nombre maximal de requêtes HTTP simultanées par environnement d'exécution. Valeurs valides : 1 à 128. Fait partie deserviceConfig. 64 Non (immuable)
Variables d'environnement Key-value paires disponibles pour votre application au moment de l'exécution. Défini par révision et immuable après la création. Fait partie deserviceConfig. Aucune Non (immuable)
Configuration de télémétrie Paramètres de télémétrie pour la révision. Contient le loggingConfig paramètre décrit dans les lignes suivantes. Si vous ometteztelemetryConfig, Lambda envoie toujours les journaux de votre application au groupe de journaux par défaut. Fait partie deserviceConfig. Aucune Non (immuable)
Configuration de journalisation Configuration de journalisation pour la révision. Contient les systemLogLevel paramètres logGroupapplicationLogLevel, et décrits dans les lignes suivantes. Pour plus de détails, consultez Contrôles de journalisation. Fait partie detelemetryConfig. Aucune Non (immuable)
LogGroup Le groupe de CloudWatch journaux Amazon Logs qui reçoit vos journaux. Les noms de groupes de journaux commençant par aws/ sont réservés et rejetés. Pour plus de détails, consultez Utilisation d'un groupe de journaux personnalisé. Fait partie deloggingConfig. /aws/lambda/web/function-name Non (immuable)
applicationLogLevel La sévérité minimale des journaux de votre application que Lambda envoie à Amazon CloudWatch Logs. Valeurs valides : TRACEDEBUG,INFO,WARN,ERROR, etFATAL. Fait partie deloggingConfig. INFO Non (immuable)
système LogLevel La sévérité minimale des journaux Lambda-generated système que Lambda envoie à Amazon CloudWatch Logs. Valeurs valides : DEBUG, INFO et WARN. Fait partie deloggingConfig. INFO Non (immuable)
kms KeyArn L'ARN de la clé gérée par le client utilisée pour chiffrer le code et les variables d'environnement. Facultatif. Si un MultiRegion point de PerRegion terminaison achemine le trafic vers la révision, utilisez une clé multirégionale avec une réplique dans chacune des régions du point de terminaison. Pour plus de détails, consultez Chiffrement au repos pour les fonctions Web. Aucune Non (immuable)

Toutes les propriétés de révision sont immuables après leur création. Pour modifier une configuration, créez une nouvelle révision avec les valeurs mises à jour.

Création d'une révision

Lambda crée une révision lorsque vous appelez. CreateWebFunctionRevision Vous indiquez l'emplacement et la configuration du code dans la demande. Une nouvelle révision ne copie pas les paramètres d'une révision existante. Spécifiez tous les paramètres que vous souhaitez conserver, y compris les variables d'environnement. Les paramètres que vous omettez utilisent leurs valeurs par défaut. Pour commencer à partir des valeurs actuelles, get-web-function-revision exécutez-les et buildConfig réutilisez-les serviceConfig avec vos modifications. La nouvelle révision commence à l'état En attente pendant que Lambda télécharge votre code et prépare un artefact de code à partir de celui-ci. Lorsque la préparation est terminée, la révision passe à Active. Si une erreur se produit lors de la préparation, la révision passe en échec et ne peut pas desservir le trafic. Pour plus de détails sur chaque État, voirÉtats de révision.

Avant de créer une révision, téléchargez votre package de déploiement .zip dans un compartiment Amazon S3 versionné et obtenez l'ARN d'un rôle d'exécution que Lambda peut assumer. Pour plus d’informations, consultez Déploiement du code de fonction Web depuis Amazon S3 et Rôle d'exécution.

Pour créer une révision avec du code mis à jour (AWS CLI)
  1. Exécutez la commande suivante pour créer une nouvelle révision. Remplacez le compartiment S3, la clé, l'ARN du rôle et les valeurs de configuration par les vôtres.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role" }'

    La commande utilise les objets suivants. Pour chaque paramètre et sa valeur par défaut, voirPropriétés de révision.

    • buildConfigcontient codeConfig le compartiment Amazon S3 et la clé de votre package de déploiementruntimeConfig, ainsi que le moteur d'exécution (par exemple,nodejs24.x). Ces deux noms sont requis.

    • serviceConfigcontient l'ARN requis executionRoleArn du rôle d'exécution assumé par votre fonction Web lors de son exécution. Il peut également contenir timeoutSecondsmaxConcurrencyPerEnvironment,environmentVariables, ettelemetryConfig.

    La commande renvoie des détails sur la nouvelle révision, y compris sarevisionId. La révision commence à l'état En attente.

  2. Pour vérifier que la révision est active, exécutez la commande suivante. my-web-appRemplacez-le par le nom de votre fonction et rev-a1b2c par celui revisionId de la réponse.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    La révision sera prête quand elle state le seraActive. Dans state l'affirmativeFailed, stateReason décrit la cause. Pour plus de détails, consultez États de révision.

    Juste après avoir créé une révision, c'stateest généralement le casPending. Pour attendre que ce soit le Active cas, exécutez aws lambda-web wait web-function-revision-active avec les mêmes options.

Pour créer une révision avec une configuration mise à jour (AWS CLI)
  1. Pour modifier la configuration sans modifier le code, spécifiez le même emplacement de code avec les nouveaux paramètres. L'exemple suivant modifie le délai d'attente à 60 secondes et ajoute une variable d'environnement.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "timeoutSeconds": 60, "maxConcurrencyPerEnvironment": 32, "environmentVariables": { "DATABASE_URL": "my-database-endpoint", "LOG_LEVEL": "info" } }'
  2. Pour vérifier que la révision est active, exécutez la commande suivante. my-web-appRemplacez-le par le nom de votre fonction et rev-a1b2c par celui revisionId de la réponse.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    La révision sera prête quand elle state le seraActive. Dans state l'affirmativeFailed, stateReason décrit la cause. Pour plus de détails, consultez États de révision.

    Juste après avoir créé une révision, c'stateest généralement le casPending. Pour attendre que ce soit le Active cas, exécutez aws lambda-web wait web-function-revision-active avec les mêmes options.

Après avoir créé la révision, la manière dont le trafic l'atteint dépend du mode de déploiement automatique du terminal. Pour plus de détails, consultez Modèles de déploiement.

Révisions des listes

Pour afficher toutes les révisions d'une fonction Web, utilisez la commande suivante :

aws lambda-web list-web-function-revisions \ --function-name my-web-app

La réponse inclut l'identifiant, l'état, l'horodatage de création et le résumé de la configuration de chaque révision. Utilisez l'identifiant de révision lors de la mise à jour des pondérations de révision du point de terminaison ou lors de la suppression d'une révision.

Supprimer une révision

Vous pouvez supprimer une révision qui n'est plus nécessaire. La suppression d'une révision la supprime définitivement. Votre package de déploiement dans Amazon S3 n'est pas affecté.

Important

Vous ne pouvez pas supprimer une révision vers laquelle un point de terminaison achemine le trafic (une révision dont le poids n'est pas nul pour un point de terminaison). Supprimez la révision des poids de révision de chaque point de terminaison avant de la supprimer.

Pour supprimer une révision (AWS CLI)
  • Exécutez la commande suivante pour supprimer une révision spécifique.

    aws lambda-web delete-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

Limites de révision et nettoyage automatique

Lambda utilise 50 révisions par fonction Web comme cible de nettoyage automatique. La cible n'est pas ajustable. Dans la console Service Quotas, il apparaît sous la forme Révisions par fonction Web (web-function-revisions-per-function).

Il n'est pas nécessaire de supprimer les anciennes révisions pour respecter l'objectif de nettoyage. Lorsqu'une nouvelle révision devient active et que le nombre total de révisions dépasse l'objectif de nettoyage, Lambda supprime automatiquement les révisions les plus anciennes qui ne sont pas utilisées. Une révision est utilisée lorsqu'un point de terminaison achemine le trafic vers celui-ci, y compris lorsqu'il est référencé n'importe où dans la regionalEndpoints propriété d'un point de PerRegion terminaison MultiRegion ou point de terminaison. Lambda ne supprime pas automatiquement une révision en cours d'utilisation ou la révision qui vient de devenir active. Le nettoyage est asynchrone. Le nombre de révisions peut temporairement dépasser 50 alors que les anciennes révisions sont toujours utilisées ou que le nettoyage est en cours. Une révision que vous supprimez de toutes les pondérations de révision, telle qu'une cible d'annulation, peut être supprimée par un nettoyage.

Vous pouvez également supprimer des révisions manuellement à tout moment. Pour la procédure, reportez-vous à la section précédente.

Le package de déploiement de chaque révision peut atteindre 512 Mo (décompressé). Étant donné que vous fournissez votre package de déploiement dans votre propre compartiment Amazon S3 et que Lambda référence votre code directement à partir du compartiment, il n'existe pas de quota de stockage de code distinct pour les fonctions Web. Pour plus de détails, consultez Déploiement du code de fonction Web depuis Amazon S3.

Configuration des paramètres de révision

Toutes les configurations sont définies par révision et sont immuables après leur création. Pour modifier un paramètre, créez une nouvelle révision avec les valeurs mises à jour. Les paramètres suivants contrôlent le comportement d'exécution.

Pour le délai d'expiration des demandes et les paramètres des variables d'environnement, voir Délai d'expiration de la demande et Variables d’environnement inConfiguration des fonctions Web Lambda.

Concurrence par environnement

Le maxConcurrencyPerEnvironment paramètre contrôle le nombre de requêtes HTTP qu'un seul environnement d'exécution gère simultanément. Les valeurs valides sont comprises entre 1 et 128. La valeur par défaut est 64.

Pour les I/O-bound applications (nombreuses demandes en attente d'appels de base de données ou de réseau), une valeur plus élevée maximise l'utilisation. Pour CPU-bound les applications, une valeur inférieure réduit les conflits. Pour plus d'informations, consultez Comportement de dimensionnement pour les fonctions Web Lambda.