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.
Création de fonctions Lambda avec Node.js
Vous pouvez exécuter JavaScript du code avec Node.js dans AWS Lambda. Lambda fournit des environnements d’exécution pour Node.js, qui exécutent votre code afin de traiter des événements. Votre code s'exécute dans un environnement qui inclut le AWS SDK pour JavaScript, avec les informations d'identification d'un rôle Gestion des identités et des accès AWS (IAM) que vous gérez. Pour en savoir plus sur les versions du kit SDK incluses dans les environnements d’exécution Node.js, consultez Versions du SDK incluses dans l’environnement d’exécution.
Lambda prend en charge les environnements d’exécution Node.js suivants.
| Name | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage |
|---|---|---|---|---|---|
|
Node.js 24 |
|
Amazon Linux 2023 |
30 avril 2028 |
1 juin 2028 |
1 juillet 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30 avril 2027 |
1 juin 2027 |
1 juillet 2027 |
|
Node.js 20 |
|
Amazon Linux 2023 |
30 avril 2026 |
1 juin 2026 |
1 juillet 2026 |
Pour créer une fonction Node.js.
-
Ouvrez la console Lambda
. -
Sélectionnez Créer une fonction.
-
Configurez les paramètres suivants :
-
Nom de la fonction : saisissez le nom de la fonction.
-
Exécution : Choisissez Node.js 24.x.
-
-
Choisissez Créer une fonction.
La console crée une fonction Lambda avec un seul fichier source nommé index.mjs. Vous pouvez modifier ce fichier et ajouter d'autres fichiers dans l'éditeur de code intégré. Dans la section DÉPLOYER, choisissez Déployer pour mettre à jour le code de votre fonction. Ensuite, pour exécuter votre code, choisissez Créer un événement de test dans la section ÉVÉNEMENTS DE TEST.
Le fichier index.mjs exporte une fonction nommée handler qui accepte un objet événement et un objet contexte. Il s’agit de la fonction de gestionnaire que Lambda appelle lors de l’appel de la fonction. Le runtime de la fonction Node.js obtient des événements d’invocations à partir de Lambda et les transmet au gestionnaire. Dans la configuration de fonction, la valeur de gestionnaire est index.handler.
Lorsque vous enregistrez votre code de fonction, la console Lambda crée un package de déploiement d’archive de fichiers .zip. Lorsque vous développez votre code de fonction en dehors de la console (à l’aide d’un IDE), vous devez créer un package de déploiement pour charger votre code dans la fonction Lambda.
Le runtime de la fonction transmet un objet de contexte au gestionnaire, en plus de l’événement d’invocation. L’objet de contexte contient des informations supplémentaires sur l’invocation, la fonction et l’environnement d’exécution. Des informations supplémentaires sont disponibles dans les variables d’environnement.
Votre fonction Lambda est fournie avec un groupe de CloudWatch journaux Logs. La fonction runtime envoie les détails de chaque appel à CloudWatch Logs. Il relaie tous les journaux que votre fonction génère pendant l’invocation. Si votre fonction renvoie une erreur, Lambda met en forme l’erreur et la renvoie à l’appelant.
Rubriques
Versions du SDK incluses dans l’environnement d’exécution
Tous les environnements d'exécution Lambda Node.js pris en charge incluent une version mineure spécifique de la AWS SDK pour JavaScript v3, et non la dernière version.
Exemple index.mjs
import packageJson from '@aws-sdk/client-s3/package.json' with { type: 'json' }; export const handler = async () => ({ version: packageJson.version });
Ceci renvoie une réponse au format suivant :
{ "version": "3.632.0" }
Pour de plus amples informations, veuillez consulter Utilisation du SDK pour la JavaScript version 3 dans votre gestionnaire.
Utilisation de keep-alive pour les connexions TCP
L' HTTP/HTTPS agent Node.js par défaut crée une nouvelle connexion TCP pour chaque nouvelle demande. Pour éviter le coût lié à l’établissement de nouvelles connexions, keep-alive est activé par défaut dans tous les environnements d’exécution Node.js pris en charge. Keep-alive peut réduire les temps de requête pour les fonctions Lambda qui effectuent plusieurs appels d’API à l’aide du kit SDK.
Pour désactiver keep-alive, consultez la section Réutilisation des connexions avec keep-alive dans le fichier Node.js du guide du développeur du AWS SDK pour 3.x. JavaScript Pour plus d'informations sur l'utilisation de keep-alive, voir HTTP keep-alive est activé par défaut dans le AWS SDK modulaire ou sur le blog des outils de JavaScript
Chargement des certificats CA
Pour les versions de l’environnement d’exécution Node.js antérieures à Node.js 18, Lambda charge automatiquement les certificats CA (autorité de certification) spécifiques à Amazon afin de vous permettre de créer plus facilement des fonctions qui interagissent avec d’autres Services AWS. Par exemple, Lambda inclut les certificats Amazon RDS nécessaires pour valider le certificat d’identité du serveur installé sur votre base de données Amazon RDS. Ce comportement peut avoir un impact sur les performances lors des démarrages à froid.
À partir de Node.js 20, Lambda ne charge plus de certificats CA supplémentaires par défaut. L’exécution Node.js 20 contient un fichier de certificat contenant tous les certificats Amazon CA situés à l’adresse /var/runtime/ca-cert.pem. Pour restaurer le même comportement à partir de Node.js 18 et exécutions antérieures, définissez la variable d’environnement NODE_EXTRA_CA_CERTSsur /var/runtime/ca-cert.pem.
Pour des performances optimales, nous vous recommandons d’effectuer la création d’une offre groupée uniquement pour les certificats dont vous avez besoin avec votre package de déploiement et de les charger via la variable d’environnement NODE_EXTRA_CA_CERTS. Le fichier de certificats doit être composé d’un ou de plusieurs certificats d’autorité de certification racine ou intermédiaire sécurisés au format PEM. Par exemple, pour RDS, incluez les certificats requis à côté de votre code en tant que certificates/rds.pem. Chargez ensuite les certificats en réglant NODE_EXTRA_CA_CERTS sur /var/task/certificates/rds.pem.
Fonctionnalités expérimentales de Node.js
Les versions en amont du langage Node.js activent certaines fonctionnalités expérimentales par défaut. Lambda désactive ces fonctionnalités pour garantir la stabilité de l’exécution et des performances constantes. Le tableau suivant répertorie les fonctionnalités expérimentales désactivées par Lambda.
| Fonctionnalité expérimentale | Versions de Node.js prises en charge | Indicateur Node.js appliqué par Lambda | Indicateur Lambda à réactiver |
|---|---|---|---|
|
Prise en charge de l’importation de modules à l’aide de require dans les modules ES |
Node.js 20, Node.js 22 |
|
|
|
Prise en charge de la détection automatique des modules ES par rapport aux modules CommonJS |
Node.js 22 |
|
|
Pour activer une fonctionnalité expérimentale désactivée, définissez l’indicateur de réactivation dans la variable d’environnement NODE_OPTIONS. Par exemple, pour activer la prise en charge de require dans les modules ES, réglez NODE_OPTIONS sur --experimental-require-module. Lambda détecte ce remplacement et supprime l’indicateur de désactivation correspondant.
Important
L’utilisation de fonctionnalités expérimentales peut entraîner des problèmes d’instabilité et de performance. Ces fonctionnalités sont susceptibles d’être modifiées ou supprimées dans les futures versions de Node.js. Les fonctions qui utilisent des fonctionnalités expérimentales ne sont pas éligibles au contrat de niveau de service (SLA) Lambda ou à AWS Support