Utilisation de la plateforme Node.js - AWS App Runner

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 Node.js

La plateforme AWS App Runner Node.js fournit des environnements d'exécution gérés. Chaque environnement d'exécution facilite la création et l'exécution de conteneurs avec des applications Web basées sur une version de Node.js. Lorsque vous utilisez un environnement d'exécution Node.js, App Runner démarre avec une image d'exécution Node.js gérée. Cette image est basée sur l'image Docker d'Amazon Linux et contient le package d'exécution pour une version de Node.js ainsi que certains outils. App Runner utilise cette image d'exécution gérée comme image de base et ajoute le code de votre application pour créer une image Docker. Il déploie ensuite cette image pour exécuter votre service Web dans un conteneur.

Vous spécifiez un environnement d'exécution pour votre service App Runner lorsque vous créez un service à l'aide de la console App Runner ou de l'opération CreateServiceAPI. Vous pouvez également spécifier un environnement d'exécution dans le cadre de votre code source. Utilisez le runtime mot clé dans un fichier de configuration App Runner que vous incluez dans votre référentiel de code. La convention de dénomination d'un environnement d'exécution géré est. <language-name><major-version>

Pour connaître les noms et versions d'exécution de Node.js valides, consultezInformations sur la version d'exécution de Node.js.

App Runner met à jour le moteur d'exécution de votre service avec la dernière version à chaque déploiement ou mise à jour de service. Si votre application nécessite une version spécifique d'un environnement d'exécution géré, vous pouvez le spécifier à l'aide du runtime-version mot clé dans le fichier de configuration d'App Runner. Vous pouvez verrouiller n'importe quel niveau de version, y compris une version majeure ou mineure. App Runner apporte uniquement des mises à jour de niveau inférieur à l'environnement d'exécution de votre service.

Syntaxe de version pour les environnements d'exécution de Node.js : major[.minor[.patch]]

Par exemple : 12.21.0

Les exemples suivants illustrent le verrouillage des versions :

  • 12.21— Verrouillez les versions majeures et mineures. App Runner met à jour uniquement les versions de correctif.

  • 12.21.0— Verrouillez vers une version de correctif spécifique. App Runner ne met pas à jour votre version d'exécution.

Configuration d'exécution de Node.js

Lorsque vous choisissez un environnement d'exécution géré, vous devez également configurer, au minimum, créer et exécuter des commandes. Vous les configurez lors de la création ou de la mise à jour de votre service App Runner. Pour ce faire, vous pouvez utiliser l'une des méthodes suivantes :

  • Utilisation de la console App Runner : spécifiez les commandes dans la section Configurer le build de l'onglet Processus de création ou configuration.

  • Utilisation de l'API App Runner : appelez l'opération CreateServiceou UpdateServiceAPI. Spécifiez les commandes à l'aide des StartCommand membres BuildCommand et du type de CodeConfigurationValuesdonnées.

  • Utilisation d'un fichier de configuration : spécifiez une ou plusieurs commandes de génération en trois phases de génération au maximum, ainsi qu'une seule commande d'exécution servant à démarrer votre application. Il existe d'autres paramètres de configuration facultatifs.

La fourniture d'un fichier de configuration est facultative. Lorsque vous créez un service App Runner à l'aide de la console ou de l'API, vous spécifiez si App Runner obtient vos paramètres de configuration directement lors de sa création ou à partir d'un fichier de configuration.

En ce qui concerne les environnements d'exécution de Node.js en particulier, vous pouvez également configurer le build et le runtime à l'aide d'un fichier JSON nommé package.json à la racine de votre référentiel source. À l'aide de ce fichier, vous pouvez configurer la version du moteur Node.js, les packages de dépendances et diverses commandes (applications en ligne de commande). Les gestionnaires de packages tels que npm ou yarn interprètent ce fichier comme entrée pour leurs commandes.

Par exemple :

  • npm installinstalle les packages définis par le devDependencies nœud dependencies et danspackage.json.

  • npm startou npm run start exécute la commande définie par le scripts/start nœud danspackage.json.

Voici un exemple de fichier package.json.

{ "name": "node-js-getting-started", "version": "0.3.0", "description": "A sample Node.js app using Express 4", "engines": { "node": "12.21.0" }, "scripts": { "start": "node index.js", "test": "node test.js" }, "dependencies": { "cool-ascii-faces": "^1.3.4", "ejs": "^2.5.6", "express": "^4.15.2" }, "devDependencies": { "got": "^11.3.0", "tape": "^4.7.0" } }

Pour plus d'informationspackage.json, voir Création d'un fichier package.json sur le site Web de npm Docs.

Conseils
  • Si votre package.json fichier définit une start commande, vous pouvez l'utiliser comme run commande dans votre fichier de configuration App Runner, comme le montre l'exemple suivant.

    package.json

    { "scripts": { "start": "node index.js" } }

    apprunner.yaml

    run: command: npm start
  • Lorsque vous exécutez npm install dans votre environnement de développement, npm crée le fichierpackage-lock.json. Ce fichier contient un instantané des versions de package que npm vient d'installer. Par la suite, lorsque npm installe des dépendances, il utilise ces versions exactes. Si vous installez le fil, il crée un yarn.lock fichier. Enregistrez ces fichiers dans votre référentiel de code source pour vous assurer que votre application est installée avec les versions des dépendances avec lesquelles vous l'avez développée et testée.

  • Vous pouvez également utiliser un fichier de configuration App Runner pour configurer la version Node.js et la commande de démarrage. Dans ce cas, ces définitions remplacent celles figurant danspackage.json. Un conflit entre la node version package.json et la runtime-version valeur du fichier de configuration d'App Runner entraîne l'échec de la phase de création d'App Runner.

Des légendes pour des versions d'exécution spécifiques

Node.js 18 (version révisée d'App Runner)

App Runner exécute désormais un processus de génération mis à jour pour les applications basé sur les versions d'exécution suivantes : Python 3.11 et Node.js 18. Si votre application s'exécute sur l'une de ces versions d'exécution, consultez Versions d'exécution gérées et build d'App Runner pour plus d'informations sur le processus de génération révisé. Les applications qui utilisent toutes les autres versions d'exécution ne sont pas affectées et continuent à utiliser le processus de génération d'origine.

Exemples d'exécution de Node.js

Les exemples suivants montrent les fichiers de configuration App Runner permettant de créer et d'exécuter un service Node.js.

Note

La version d'exécution utilisée dans ces exemples est 12.21.0 et 18.19.0. Vous pouvez le remplacer par la version que vous souhaitez utiliser. Pour connaître la dernière version d'exécution de Node.js prise en charge, consultezInformations sur la version d'exécution de Node.js.

Cet exemple montre un fichier de configuration minimale que vous pouvez utiliser avec un environnement d'exécution géré par Node.js. Pour les hypothèses formulées par App Runner avec un fichier de configuration minimal, consultezExemples de fichiers de configuration.

Exemple apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: build: - npm install --production run: command: node app.js

Cet exemple montre l'utilisation de toutes les clés de configuration avec un environnement d'exécution géré par Node.js.

Note

La version d'exécution utilisée dans ces exemples est 12.21.0. Vous pouvez le remplacer par la version que vous souhaitez utiliser. Pour connaître la dernière version d'exécution de Node.js prise en charge, consultezInformations sur la version d'exécution de Node.js.

Exemple apprunner.yaml
version: 1.0 runtime: nodejs12 build: commands: pre-build: - npm install --only=dev - node test.js build: - npm install --production post-build: - node node_modules/ejs/postinstall.js env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version: 12.21.0 command: node app.js network: port: 8000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

Cet exemple montre l'utilisation de toutes les clés de configuration avec un environnement d'exécution géré par Node.js dans leapprunner.yaml. Cet exemple inclut une pre-run section, car cette version de Node.js utilise la version révisée d'App Runner.

Le pre-run paramètre n'est pris en charge que par la version révisée d'App Runner. N'insérez pas ce paramètre dans votre fichier de configuration si votre application utilise des versions d'exécution prises en charge par la version originale d'App Runner. Pour plus d’informations, consultez Versions d'exécution gérées et build d'App Runner.

Note

La version d'exécution utilisée dans ces exemples est 18.19.0. Vous pouvez le remplacer par la version que vous souhaitez utiliser. Pour connaître la dernière version d'exécution de Node.js prise en charge, consultezInformations sur la version d'exécution de Node.js.

Exemple apprunner.yaml
version: 1.0 runtime: nodejs18 build: commands: pre-build: - npm install --only=dev - node test.js build: - npm install --production post-build: - node node_modules/ejs/postinstall.js env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version: 18.19.0 pre-run: - node copy-global-files.js command: node app.js network: port: 8000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

Cet exemple montre comment configurer une application Node.js développée avec Grunt. Grunt est un lanceur de JavaScript tâches en ligne de commande. Il exécute des tâches répétitives et gère l'automatisation des processus afin de réduire les erreurs humaines. Les plugins Grunt et Grunt sont installés et gérés à l'aide de npm. Vous configurez Grunt en incluant le Gruntfile.js fichier à la racine de votre dépôt source.

Exemple package.json
{ "scripts": { "build": "grunt uglify", "start": "node app.js" }, "devDependencies": { "grunt": "~0.4.5", "grunt-contrib-jshint": "~0.10.0", "grunt-contrib-nodeunit": "~0.4.1", "grunt-contrib-uglify": "~0.5.0" }, "dependencies": { "express": "^4.15.2" }, }
Exemple Gruntfile.js
module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' }, build: { src: 'src/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } } }); // Load the plugin that provides the "uglify" task. grunt.loadNpmTasks('grunt-contrib-uglify'); // Default task(s). grunt.registerTask('default', ['uglify']); };
Exemple apprunner.yaml
Note

La version d'exécution utilisée dans ces exemples est 12.21.0. Vous pouvez le remplacer par la version que vous souhaitez utiliser. Pour connaître la dernière version d'exécution de Node.js prise en charge, consultezInformations sur la version d'exécution de Node.js.

version: 1.0 runtime: nodejs12 build: commands: pre-build: - npm install grunt grunt-cli - npm install --only=dev - npm run build build: - npm install --production run: runtime-version: 12.21.0 command: node app.js network: port: 8000 env: APP_PORT