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 événementielles Lambda avec Node.js
Tu peux courir JavaScript code avec Node.js dans AWS Lambda Fonctions événementielles. Lambda fournit temps d'exécution pour Node.js qui exécutent votre code pour traiter les événements. Votre code s'exécute dans un environnement qui inclut le AWS SDK pour JavaScript, avec les informations d'identification d'un Gestion des identités et des accès AWS rôle (IAM) que vous gérez. Pour en savoir plus sur les versions du SDK incluses dans le Node.js temps d'exécution, voir Runtime-included Versions du SDK.
Lambda prend en charge les éléments suivants Node.js temps d'exécution.
| Nom | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage |
|---|---|---|---|---|---|
|
Node.js 26 |
|
Amazon Linux 2023 |
Non planifié |
Non planifié |
Non planifié |
|
Node.js 24 |
|
Amazon Linux 2023 |
30 avril 2028 |
1 juin 2028 |
1 juillet 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30 avril 2027 |
29 juillet 2027 |
31 août 2027 |
Pour créer un Node.js Fonction événementielle
-
Ouvrez la console Lambda
. -
Choisissez Créer une fonction d'événement.
-
Configurez les paramètres suivants :
-
Nom de la fonction : saisissez le nom de la fonction.
-
Temps d'exécution: Choisissez Node.js 24. x.
-
-
Choisissez Créer une fonction d'événement.
La console crée une fonction événementielle 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'invocation de la fonction. Le Node.js function runtime obtient les événements d'invocation 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 CloudWatch Groupe de journaux. L'exécution de la fonction envoie les détails de chaque appel à CloudWatch Journaux. 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
Définissez le gestionnaire de fonctions d'événement Lambda dans Node.js
Déployez les fonctions d'événement Node.js Lambda avec des archives de fichiers .zip
Déployer des fonctions d'événement Node.js Lambda avec des images de conteneur
Utilisation de couches pour les fonctions d' Node.js événement Lambda
Enregistrez et surveillez les fonctions des Node.js événements Lambda
Runtime-included Versions du SDK
Tous Lambda pris en charge Node.js temps d'exécution inclure une version mineure spécifique du AWS SDK pour JavaScript v3, pas le 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 plus d’informations, consultez Utilisation du SDK pour la JavaScript version 3 dans votre gestionnaire.
Utilisation de keep-alive pour les connexions TCP
La valeur par défaut Node.js HTTP/HTTPS l'agent crée une nouvelle connexion TCP pour chaque nouvelle demande. Pour éviter les coûts liés à l'établissement de nouvelles connexions, keep-alive est activé par défaut dans tous prise en charge Node.js temps d'exécution. Keep-alive peut réduire les temps de requête pour les fonctions Lambda qui effectuent plusieurs appels d'API à l'aide du SDK.
Pour désactiver keep-alive, voir Réutiliser les connexions avec keep-alive in Node.js dans le AWS SDK pour JavaScript Guide du développeur 3.x. Pour plus d'informations sur l'utilisation de keep-alive, voir HTTP keep-alive est activé par défaut dans le mode modulaire AWS SDK pour JavaScript
Chargement des certificats CA
Pour Node.js versions d'exécution jusqu'à Node.js 18, Lambda se charge automatiquement Amazon-specific des certificats CA (autorité de certification) pour 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.
Commençant par Node.js 20, Lambda ne charge plus de certificats CA supplémentaires par défaut. Le Node.js L'environnement d'exécution 2.0 contient un fichier de certificat contenant tous les certificats Amazon CA situés à l'adresse /var/runtime/ca-cert.pem. Pour rétablir le même comportement à partir de Node.js 18 environnements d'exécution et versions antérieures, définissez NODE_EXTRA_CA_CERTS variable d'environnement pour /var/runtime/ca-cert.pem.
Pour des performances optimales, nous vous recommandons de regrouper uniquement les certificats dont vous avez besoin avec votre package de déploiement et de les charger via le NODE_EXTRA_CA_CERTS variable d'environnement. 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.
Expérimental Node.js fonctionnalités
L'amont Node.js les versions linguistiques 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 | Supporté Node.js versions | Node.js drapeau 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, Node.js 24 |
|
|
|
Prise en charge de la détection automatique des modules ES par rapport aux modules CommonJS |
Node.js 22, Node.js 24 |
|
|
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 peuvent être modifiées ou supprimées à l'avenir Node.js versions. Les fonctions qui utilisent des fonctionnalités expérimentales ne sont pas éligibles au contrat de niveau de service (SLA) Lambda ou à AWS Support