Utilisation de la plateforme Elastic Beanstalk Node.js - AWS Elastic Beanstalk

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.

Utilisation de la plateforme Elastic Beanstalk Node.js

Cette rubrique explique comment configurer, créer et exécuter vos applications Node.js sur Elastic Beanstalk.

AWS Elastic Beanstalk prend en charge un certain nombre de branches de plate-forme pour différentes versions du langage de programmation Node.js. Voir Node.js dans le document AWS Elastic Beanstalk Platforms pour une liste complète.

Elastic Beanstalk fournit des options de configuration que vous pouvez utiliser pour personnaliser le logiciel qui s'exécute sur des instances EC2 dans votre environnement Elastic Beanstalk. Vous pouvez configurer des variables d'environnement requises pour votre application, activer la rotation des journaux sur Amazon S3 et mapper des dossiers dans la source de votre application contenant des fichiers statiques vers des chemins desservis par le serveur proxy.

Des options de configuration sont disponibles dans la console Elastic Beanstalk pour modifier la configuration d'un environnement en cours d'exécution. Pour éviter de perdre la configuration de votre environnement en le résiliant, vous pouvez utiliser des configurations enregistrées pour enregistrer vos paramètres et les appliquer par la suite à un autre environnement.

Pour enregistrer les paramètres dans votre code source, vous pouvez inclure des fichiers de configuration. Les paramètres des fichiers de configuration sont appliquées chaque fois que vous créez un environnement ou que vous déployez votre application. Vous pouvez également utiliser des fichiers de configuration pour installer des packages, exécuter des scripts ou effectuer d'autres opérations de personnalisation d'instance lors des déploiements.

Vous pouvez inclure un fichier Package.json dans votre offre groupée source pour installer des packages pendant le déploiement, fournir une commande de démarrage et spécifier la version Node.js que vous souhaitez que votre application utilise. Vous pouvez inclure un fichier npm-shrinkwrap.json pour verrouiller les versions de dépendances.

La plateforme Node.js inclut un serveur proxy qui diffuse les ressources statiques, achemine le trafic vers votre application et compresse les réponses. Vous pouvez étendre ou remplacer la configuration du serveur proxy par défaut pour les scénarios avancés.

Il existe plusieurs options pour démarrer votre application. Vous pouvez ajouter un Procfile à votre offre groupée source pour spécifier la commande qui démarre votre application. Lorsque vous ne fournissez pas de Procfile mais un fichier package.json, Elastic Beanstalk exécute npm start. Si vous n'en fournissez pas non plus, Elastic Beanstalk recherche le fichier app.js ou server.js, dans cet ordre, et exécute le script.

Les paramètres appliqués dans la console Elastic Beanstalk remplacent les mêmes paramètres des fichiers de configuration, s'ils existent. Cela vous permet d'utiliser les paramètres par défaut dans les fichiers de configuration et de les remplacer par des paramètres spécifiques à l'environnement dans la console. Pour plus d'informations sur la priorité et les autres méthodes de modification des paramètres, consultez Options de configuration.

Pour plus d'informations sur les différentes manières d'étendre une plateforme Elastic Beanstalk basée sur Linux, consultez Extension des plateformes Linux Elastic Beanstalk.

Configuration de votre environnement Node.js

Vous pouvez utiliser les paramètres de la Node.js plateforme pour affiner le comportement de vos EC2 instances Amazon. Vous pouvez modifier la configuration de l'EC2instance Amazon pour votre environnement Elastic Beanstalk à l'aide de la console Elastic Beanstalk.

Utilisez la console Elastic Beanstalk pour permettre la rotation des journaux sur Amazon S3 et configurer des variables que votre application peut lire à partir de l'environnement.

Pour configurer votre environnement Node.js dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

Options du conteneur

Vous pouvez spécifier ces options spécifiques à la plateforme :

  • Proxy server (Serveur proxy) – Serveur proxy à utiliser sur vos instances d'environnement. Par défaut, NGNIX est utilisé.

Options du journal

La section Options du journal a deux paramètres :

  • Instance profile (Profil d'instance) – Spécifie le profil d'instance qui est autorisé à accéder au compartiment Amazon S3 associé à votre application.

  • Activer la rotation des fichiers journaux vers Amazon S3 : indique si les fichiers journaux des EC2 instances Amazon de votre application sont copiés dans le compartiment Amazon S3 associé à votre application.

Fichiers statiques

Pour améliorer les performances, vous pouvez utiliser la section Fichiers statiques pour configurer le serveur proxy pour qu'il diffuse des fichiers statiques (par exemple, HTML ou des images) à partir d'un ensemble de répertoires au sein de votre application Web. Pour chaque répertoire, vous définissez le chemin virtuel sur le mappage de répertoires. Lorsque le serveur proxy reçoit une demande pour un fichier dans le chemin spécifié, il fournit le fichier directement au lieu d'acheminer la demande vers votre application.

Pour en savoir plus sur la configuration des fichiers statiques à l'aide des fichiers de configuration ou de la console Elastic Beanstalk, consultez Service de fichiers statiques.

Propriétés de l'environnement

Utilisez la section Propriétés de l'environnement pour spécifier les paramètres de configuration de l'environnement sur EC2 les instances Amazon qui exécutent votre application. Ces paramètres sont passés en tant que paires clé-valeur à l'application.

Dans l'Node.jsenvironnement qui s'exécute AWS Elastic Beanstalk, vous pouvez accéder aux variables d'environnement en exécutantprocess.env.ENV_VARIABLE.

var endpoint = process.env.API_ENDPOINT

La plateforme Node.js définit la variable d'environnement PORT sur le port vers lequel le serveur proxy transfère le trafic. Pour de plus amples informations, veuillez consulter Configuration du serveur proxy sur Elastic Beanstalk.

Pour plus d’informations, consultez Propriétés de l'environnement et autres paramètres de logiciel.

Les catégories de configuration logicielle de console suivantes ne sont prises en charge que sur un environnement Node.js Elastic Beanstalk qui utilise une version de plate-forme Amazon Linux (antérieure à AMI Amazon Linux 2).

Remarques
  • Les informations contenues dans cette rubrique s'appliquent uniquement aux branches de plateforme basées sur Amazon Linux AMI (AL1). AL2Les branches de AL2 plate-forme 023/ sont incompatibles avec les versions précédentes de la plateforme Amazon Linux AMI (AL1) et nécessitent des paramètres de configuration différents.

  • Le 18 juillet 2022, Elastic Beanstalk a défini le statut de toutes les branches de la plateforme basées sur Amazon AMI Linux () comme étant retirées. AL1 Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

Sur la page de configuration, spécifiez les informations suivantes :

  • Proxy serveur (Serveur proxy) – Indique le serveur web à utiliser comme proxy pour se connecter à Node.js. Par défaut, NGINX est utilisé. Si vous sélectionnez none (aucun), les mappages de fichiers statiques ne prendront pas effet et la compression GZIP sera désactivée.

  • version Node.js : spécifie la version de Node.js. Pour obtenir la liste des versions Node.js prises en charge, consultez Node.js dans le guide des plateformes AWS Elastic Beanstalk .

  • GZIP compression (Compression ) : indique si la compression GZIP est activée. La compression GZIP est activée par défaut.

  • Node command (Commande Node) : vous permet de saisir la commande utilisée pour démarrer l'application Node.js. Une chaîne vide (par défaut) signifie qu'Elastic Beanstalk utiliseapp.js, puis server.jset ensuite npm start.

Espaces de noms de la configuration Node.js

Vous pouvez utiliser un fichier de configuration pour définir des options de configuration et exécuter d'autres tâches de configuration d'instance pendant les déploiements. Les options de configuration peuvent être définies par le service Elastic Beanstalk ou la plateforme que vous utilisez et sont organisées en espaces de noms.

Vous pouvez choisir le proxy à utiliser sur les instances de votre environnement à l'aide de l'espace de noms aws:elasticbeanstalk:environment:proxy. L'exemple suivant configure votre environnement pour qu'il utilise le serveur proxy Apache HTTPD.

Exemple .ebextensions/nodejs-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

Vous pouvez configurer le proxy pour qu'il traite les fichiers statiques à l'aide de l'espace de noms aws:elasticbeanstalk:environment:proxy:staticfiles. Pour plus d'informations et pour voir un exemple, consultez Service de fichiers statiques.

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. Outre les fichiers de configuration, vous pouvez également définir les options de configuration à l'aide de la console, des configurations enregistrées, de l'EB CLI ou du AWS CLI. Pour plus d’informations, consultez Options de configuration.

Si votre environnement Elastic Node.js Beanstalk utilise une version de la plateforme AMI Amazon Linux (antérieure à Amazon Linux 2), prenez en compte les configurations et recommandations spécifiques de cette section.

Remarques
  • Les informations contenues dans cette rubrique s'appliquent uniquement aux branches de plateforme basées sur Amazon Linux AMI (AL1). AL2Les branches de AL2 plate-forme 023/ sont incompatibles avec les versions précédentes de la plateforme Amazon Linux AMI (AL1) et nécessitent des paramètres de configuration différents.

  • Le 18 juillet 2022, Elastic Beanstalk a défini le statut de toutes les branches de la plateforme basées sur Amazon AMI Linux () comme étant retirées. AL1 Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2.

Elastic Beanstalk prend en charge certaines options de configuration spécifiques à la plate-forme pour les versions de la plate-forme Amazon Linux. AMI Node.js Vous pouvez choisir le serveur proxy à exécuter devant votre application, une version spécifique de Node.js à exécuter et la commande utilisée pour exécuter votre application.

Pour le serveur proxy, vous pouvez utiliser un serveur proxy NGINX ou Apache. Vous pouvez définir la valeur none sur l'option ProxyServer. Dans ce cas, Elastic Beanstalk exécute votre application en mode autonome, pas derrière un serveur proxy. Si votre environnement exécute une application autonome, mettez à jour votre code pour écouter le port vers lequel NGINX transfère le trafic.

var port = process.env.PORT || 8080; app.listen(port, function() { console.log('Server running at http://127.0.0.1:%s', port); });

En termes de version linguistique prise en charge, la AMI plateforme Node.js Amazon Linux est différente des autres plateformes gérées par Elastic Beanstalk. En effet, chaque version de la plateforme Node.js ne prend en charge que quelques versions linguistiques Node.js. Pour obtenir la liste des versions Node.js prises en charge, consultez Node.js dans le guide Plateformes AWS Elastic Beanstalk .

Vous pouvez utiliser une option de configuration spécifique à la plateforme pour définir la version de langage. Pour obtenir des instructions, consultez Configuration de votre environnement Node.js. Vous pouvez également utiliser la console Elastic Beanstalk pour mettre à jour la version Node.js que votre environnement utilise dans le cadre de la mise à jour de la version de votre plateforme .

Note

Lorsque la prise en charge de la version de Node.js que vous utilisez est supprimée de la plateforme, vous devez modifier ou supprimer le paramètre de version avant de procéder à une mise à jour de la plateforme. Cela peut se produire lorsqu'une faille de sécurité est identifiée pour une ou plusieurs versions de Node.js

Dans ce cas, la tentative de mise à jour vers une nouvelle version de la plate-forme qui ne prend pas en charge la configuration NodeVersionéchoue. Pour éviter d'avoir à créer un nouvel environnement, remplacez l'option de NodeVersionconfiguration par une version de Node.js prise en charge à la fois par l'ancienne version de plate-forme et par la nouvelle, ou supprimez le paramètre d'option, puis effectuez la mise à jour de la plate-forme.

Pour configurer la version Node.js de votre environnement dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans la page de présentation de l'environnement, sous Platform (Plateforme), choisissez Change (Changer).

  4. Dans la boîte de dialogue Update platform version (Mettre à jour la version de la plateforme) sélectionnez une version Node.js.

    Confirmation de la mise à jour de la version de la plateforme Elastic Beanstalk
  5. Choisissez Save (Enregistrer).

La AMI plateforme Node.js Amazon Linux définit des options supplémentaires dans les aws:elasticbeanstalk:container:nodejs espaces de noms aws:elasticbeanstalk:container:nodejs:staticfiles et.

Le fichier de configuration suivant indique à Elastic Beanstalk d'utiliser npm start pour exécuter l'application. Il définit également le type de proxy sur Apache et active la compression. Enfin, il configure le proxy pour qu'il serve des fichiers statiques à partir de deux répertoires sources. Une source est constituée de fichiers HTML situés sur le chemin html sous la racine du site web à partir du répertoire source statichtml. L'autre source est constituée de fichiers image situés sur le chemin images sous la racine du site web à partir du répertoire source staticimages.

Exemple .ebextensions/node-settings.config
option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm start" ProxyServer: apache GzipCompression: true aws:elasticbeanstalk:container:nodejs:staticfiles: /html: statichtml /images: staticimages

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. Outre les fichiers de configuration, vous pouvez également définir les options de configuration à l'aide de la console, des configurations enregistrées, de l'EB CLI ou du AWS CLI. Pour plus d’informations, consultez Options de configuration.