Usare la configurazione PM2 per Node.js in App Web di Azure su Linux

Nota

App Web di Azure su Linux è attualmente disponibile in anteprima pubblica e supporta l'esecuzione di app Web in modo nativo su Linux.

Se si imposta lo stack di applicazioni su Node.js per App Web di Azure in Linux, è possibile ottenere l'opzione per impostare un file di avvio in Node.js, come illustrato nell'immagine seguente:

Impostare un file di avvio Node.js

È possibile usare questa opzione per una delle attività seguenti:

  • Specificare lo script di avvio per l'app Node.js (ad esempio: /bin/server.js).
  • Specificare il file di configurazione PM2 da usare per l'app Node.js (ad esempio: /foo/process.json).

    Nota

    Per riavviare automaticamente i processi Node.js quando vengono modificati determinati file, usare la configurazione PM2. In caso contrario, l'applicazione non verrà riavviata quando riceve notifiche di modifica, ad esempio quando viene modificato il codice dell'applicazione.

È possibile vedere la documentazione del file di processo per tutte le opzioni. Il seguente è un esempio di codice che è possibile usare come file process.json:

    {
      "name"        : "worker",
      "script"      : "/bin/server.js",
      "instances"   : 1,
      "merge_logs"  : true,
      "log_date_format" : "YYYY-MM-DD HH:mm Z",
      "watch": ["/bin/server.js", "foo.txt"],
      "watch_options": {
        "followSymlinks": true,
        "usePolling"   : true,
        "interval"    : 5
      }
    }

In questa configurazione è importante notare quanto segue:

  • La proprietà "script" specifica lo script di avvio dell'applicazione.
  • La proprietà "instances" specifica quante istanze del processo del nodo avviare. Se si esegue l'applicazione in VM di dimensioni maggiori con più core, è consigliabile ottimizzare le risorse impostando un valore più elevato qui.
  • La matrice "watch" specifica tutti i file per cui si vuole riavviare il processo del nodo quando vengono modificati.
  • Per "watch_options", attualmente è necessario impostare "usePolling" su true a causa del modo in cui viene montato il contenuto dell'applicazione.

Passaggi successivi