Utilizzo della piattaforma Node.js di - AWS App Runner

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo della piattaforma Node.js di

La piattaforma AWS App Runner Node.js fornisce runtime gestiti. Ogni runtime semplifica la creazione e l'esecuzione di contenitori con applicazioni Web basate su una versione Node.js. Quando si utilizza un runtime Node.js, App Runner si avvia con un'immagine di runtime Node.js gestita. Questa immagine è basata sull'immagine Docker di Amazon Linux e contiene il pacchetto di runtime per una versione di Node.js e alcuni strumenti. App Runner utilizza questa immagine di runtime gestita come immagine di base e aggiunge il codice dell'applicazione per creare un'immagine Docker. Quindi distribuisce questa immagine per eseguire il servizio Web in un contenitore.

Si specifica un runtime per il servizio App Runner quando si crea un servizio utilizzando la console App Runner o l'CreateServiceoperazione API. Puoi anche specificare un runtime come parte del codice sorgente. Usa la runtime parola chiave in un file di configurazione di App Runner che includi nel tuo repository di codice. La convenzione di denominazione di un runtime gestito è. <language-name><major-version>

Per i nomi e le versioni di runtime di Node.js validi, vedereInformazioni sulla versione di runtime di Node.js.

App Runner aggiorna il runtime del servizio alla versione più recente a ogni distribuzione o aggiornamento del servizio. Se l'applicazione richiede una versione specifica di un runtime gestito, è possibile specificarla utilizzando la runtime-version parola chiave nel file di configurazione di App Runner. È possibile utilizzare qualsiasi livello di versione, inclusa una versione principale o secondaria. App Runner effettua solo aggiornamenti di livello inferiore al runtime del servizio.

Sintassi della versione per i runtime di Node.js: major[.minor[.patch]]

Ad esempio: 12.21.0

Gli esempi seguenti mostrano il blocco della versione:

  • 12.21— Blocca le versioni principali e secondarie. App Runner aggiorna solo le versioni patch.

  • 12.21.0— Blocca a una versione di patch specifica. App Runner non aggiorna la versione di runtime.

Configurazione del runtime di Node.js

Quando scegli un runtime gestito, devi anche configurare, come minimo, creare ed eseguire comandi. Li configuri durante la creazione o l'aggiornamento del servizio App Runner. Puoi farlo utilizzando uno dei seguenti metodi:

  • Utilizzo della console App Runner: specifica i comandi nella sezione Configure build del processo di creazione o della scheda di configurazione.

  • Utilizzo dell'API App Runner: richiama l'operazione CreateServiceor UpdateServiceAPI. Specificate i comandi utilizzando i StartCommand membri BuildCommand e del tipo di CodeConfigurationValuesdati.

  • Utilizzo di un file di configurazione: specifica uno o più comandi di compilazione in un massimo di tre fasi di compilazione e un singolo comando di esecuzione che serve per avviare l'applicazione. Sono disponibili impostazioni di configurazione opzionali aggiuntive.

Fornire un file di configurazione è facoltativo. Quando crei un servizio App Runner utilizzando la console o l'API, specifichi se App Runner ottiene le impostazioni di configurazione direttamente al momento della creazione o da un file di configurazione.

In particolare, con i runtime di Node.js, puoi anche configurare la build e il runtime utilizzando un file JSON denominato package.json nella radice del tuo repository di origine. Utilizzando questo file, è possibile configurare la versione del motore Node.js, i pacchetti di dipendenze e vari comandi (applicazioni a riga di comando). I gestori di pacchetti come npm o yarn interpretano questo file come input per i loro comandi.

Per esempio:

  • npm installinstalla i pacchetti definiti dal nodo dependencies and devDependencies in. package.json

  • npm starto npm run start esegue il comando definito dal scripts/start nodo inpackage.json.

Di seguito è riportato un esempio del file 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" } }

Per ulteriori informazioni supackage.json, vedere Creazione di un file package.json sul sito Web di npm Docs.

Suggerimenti
  • Se il package.json file definisce un start comando, è possibile utilizzarlo come comando nel file di configurazione di App Runner, come illustrato nell'esempio run seguente.

    pacchetto.json

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

    apprunner.yaml

    run: command: npm start
  • Quando esegui npm install nel tuo ambiente di sviluppo, npm crea il file. package-lock.json Questo file contiene un'istantanea delle versioni del pacchetto appena installate da npm. Successivamente, quando npm installa le dipendenze, utilizza queste versioni esatte. Se installi yarn, crea un file. yarn.lock Salva questi file nel tuo repository del codice sorgente per assicurarti che l'applicazione sia installata con le versioni delle dipendenze che hai sviluppato e con cui l'hai testata.

  • È inoltre possibile utilizzare un file di configurazione di App Runner per configurare la versione di Node.js e il comando start. Quando si esegue questa operazione, queste definizioni sostituiscono quelle incluse. package.json Un conflitto tra la node versione in package.json e il runtime-version valore nel file di configurazione di App Runner causa il fallimento della fase di compilazione di App Runner.

Callout per versioni di runtime specifiche

Node.js 18 (build App Runner rivista)

App Runner ora esegue un processo di compilazione aggiornato per le applicazioni basate sulle seguenti versioni di runtime: Python 3.11 e Node.js 18. Se l'applicazione viene eseguita su una di queste versioni di runtime, consulta Versioni di runtime gestite e build di App Runner per ulteriori informazioni sul processo di compilazione rivisto. Le applicazioni che utilizzano tutte le altre versioni di runtime non sono interessate e continuano a utilizzare il processo di compilazione originale.

Esempi di runtime di Node.js

Gli esempi seguenti mostrano i file di configurazione di App Runner per la creazione e l'esecuzione di un servizio Node.js.

Nota

La versione di runtime utilizzata in questi esempi è 12.21.0 e 18.19.0. Puoi sostituirla con una versione che desideri utilizzare. Per l'ultima versione di runtime supportata di Node.js, vedereInformazioni sulla versione di runtime di Node.js.

Questo esempio mostra un file di configurazione minimo che è possibile utilizzare con un runtime gestito da Node.js. Per i presupposti che App Runner fa con un file di configurazione minimo, vedi. Esempi di file di configurazione

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

Questo esempio mostra l'uso di tutte le chiavi di configurazione con un runtime gestito da Node.js.

Nota

La versione di runtime utilizzata in questi esempi è 12.21.0. Puoi sostituirla con una versione che desideri utilizzare. Per l'ultima versione di runtime supportata di Node.js, vedereInformazioni sulla versione di runtime di Node.js.

Esempio 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"

Questo esempio mostra l'uso di tutte le chiavi di configurazione con un runtime gestito da Node.js in. apprunner.yaml Questo esempio include una pre-run sezione, poiché questa versione di Node.js utilizza la build aggiornata di App Runner.

Il pre-run parametro è supportato solo dalla build aggiornata di App Runner. Non inserire questo parametro nel file di configurazione se l'applicazione utilizza versioni di runtime supportate dalla build originale di App Runner. Per ulteriori informazioni, consulta Versioni di runtime gestite e build di App Runner.

Nota

La versione di runtime utilizzata in questi esempi è la 18.19.0. Puoi sostituirla con una versione che desideri utilizzare. Per l'ultima versione di runtime supportata di Node.js, vedereInformazioni sulla versione di runtime di Node.js.

Esempio 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"

Questo esempio mostra come configurare un'applicazione Node.js sviluppata con Grunt. Grunt è un JavaScript task runner da riga di comando. Esegue attività ripetitive e gestisce l'automazione dei processi per ridurre l'errore umano. I plugin Grunt e Grunt vengono installati e gestiti utilizzando npm. Si configura Grunt includendo il Gruntfile.js file nella radice del repository di origine.

Esempio 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" }, }
Esempio 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']); };
Esempio apprunner.yaml
Nota

La versione di runtime utilizzata in questi esempi è 12.21.0. Puoi sostituirla con una versione che desideri utilizzare. Per l'ultima versione di runtime supportata di Node.js, vedereInformazioni sulla versione di runtime di 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