In questa guida illustriamo i passaggi per distribuire un’applicazione Node.js e un database di esempio. Sentitevi liberi di usare l’applicazione di esempio qui sotto per i test, ma non fate affidamento su di essa per qualsiasi tipo di uso in produzione. Lo scopo dell’applicazione è quello di testare la distribuzione di un’applicazione e la sua connessione a un database presso Kinsta.

Esempio di applicazione

Abbiamo creato una piccola applicazione per registrare il meteo e visualizzare i risultati in una pagina. Potrete trovare l’applicazione su GitHub. Se si vuole usare un fornitore di servizi Git diverso, si può importare il repository su Bitbucket o GitLab.

Aprire l’applicazione di esempio

Per prima cosa, aprite l’applicazione weatherlogger-js su GitHub e leggete il file Readme incluso per saperne di più. Una volta che avete familiarizzato con l’applicazione, cliccate sul pulsante Fork in alto a destra per eseguire il fork sul vostro account GitHub.

Creare un fork di weatherlogger-js su GitHub.
Creare un fork di weatherlogger-js su GitHub.

Creare una chiave API

L’applicazione richiede una chiave API di OpenWeather. Una volta iscritti, potrete accedere e creare gratuitamente una chiave API che vi permetterà di effettuare 1.000 chiamate API al giorno. Consigliamo di eseguire prima questo passaggio perché la chiave API impiega 10-20 minuti per diventare attiva, tempo che possiamo dedicare alla configurazione della nostra applicazione.

Processi

Quando distribuiamo l’applicazione su Kinsta, dobbiamo eseguire due processi:

  • Un server web dove visualizzare i dati meteo. Può essere avviato utilizzando il comando npm start.
  • Un cronjob che raccoglie i dati meteo ogni pochi minuti. Può essere avviato con il comando npm run weatherLogger

Iniziamo a prepararci per l’esecuzione di questi processi.

Creare un database

In MyKinsta, assicurarsi di essere nella pagina Database, quindi fare clic su Aggiungi database. Per creare il nostro database di esempio, abbiamo utilizzato i seguenti valori nel modulo:

  • Nome del database: weatherloggerdb
  • Nome visualizzato: Weather Logger Database
  • Tipo di database: MySQL
  • Versione: 8.0
  • Abbiamo lasciato inalterati il nome utente e la password del database
  • Posizione del data center: us-central1
  • Dimensioni del database: 0.25 CPU core – 256 MB RAM (Mini)

Cliccate su Crea database e il gioco è fatto.

Creare un nuovo database per la nostra applicazione di esempio.
Creare un nuovo database per la nostra applicazione di esempio.

Creare un’applicazione

Andare alla pagina Applicazioni, quindi fare clic su Aggiungi applicazione. Facendo clic sul campo del repository GitHub, consentire a Kinsta di interagire con il repository.

Per una documentazione più dettagliata, consultate la sezione Aggiungi un’applicazione.

Per creare la nostra applicazione di esempio abbiamo utilizzato i seguenti valori nel modulo multipart:

Dettagli sull’applicazione

  • Repository GitHub: danielpataki/weatherlogger-js (nel vostro caso, sarà qualcosa come your-organization/weatherlogger-js)
  • Branch predefinito: main
  • Distribuzione automatica su commit: deselezionato
  • Nome dell’applicazione: Weather Logger
  • Posizione del data center: us-central1
Creare una nuova applicazione per il nostro esempio.
Creare una nuova applicazione per il nostro esempio.

Ambiente di compilazione

  • Risorse di compilazione: Standard
  • Ambiente di compilazione: Imposta automaticamente l’immagine del container
Configurazione dell'ambiente di compilazione per il nostro esempio.
Configurazione dell’ambiente di compilazione per il nostro esempio.

Risorse

  • Impostare i processi:
    • Nome del processo: processo Web
    • Tipo di processo: web
    • Comando di avvio: npm start
    • Dimensione del pod: Standard 0,5 CPU / 1 GB RAM
    • Numero di istanze: 1

Fate clic su Aggiungi applicazione e il processo di distribuzione verrà avviato.

Impostazione del processo web per la nostra applicazione di esempio.
Impostazione del processo web per la nostra applicazione di esempio.

Metodo di pagamento

Esaminate i costi di utilizzo mensile dell’applicazione di esempio e confermate il metodo di pagamento.

Conferma del metodo di pagamento per la nostra applicazione di esempio.
Conferma del metodo di pagamento per la nostra applicazione di esempio.

Collegare l’applicazione e il database

Una volta che il database è pronto per le connessioni (viene visualizzato un segno di spunta verde), possiamo collegarlo alla nostra applicazione, anche se questa è ancora in fase di distribuzione. Cliccate sull’applicazione Weather Logger, cliccate su Impostazioni nella barra laterale e scorrete verso il basso fino alla sezione Connessioni interne.

Connessioni interne nella nostra applicazione di esempio.
Connessioni interne nella nostra applicazione di esempio.

Cliccate su Aggiungi connessione e, nella finestra modale/pop-up che vi appare, selezionate il database del Weather Logger. Selezionate la casella Aggiungi variabili d’ambiente per accedere al database, selezionate le caselle di controllo Disponibile durante il runtime e Disponibile durante il processo di compilazione e fate clic su Aggiungi connessione.

Aggiungere una connessione interna per la nostra applicazione di esempio.
Aggiungere una connessione interna per la nostra applicazione di esempio.

Configurazione dell’applicazione

La successiva cosa da fare è aggiungere tutte le informazioni di cui la nostra applicazione ha bisogno sotto forma di variabili d’ambiente. La maggior parte delle informazioni è stata aggiunta automaticamente nella fase precedente, popolando le variabili di connessione al database.

L’unica informazione mancante che è richiesta dall’applicazione è la chiave API di OpenWeatherMap. Nelle Impostazioni, appena sotto la sezione Connessioni interne, troverete la sezione Variabili d’ambiente. Fate clic su Aggiungi variabile d’ambiente e utilizzate OPENWEATHER_KEY come chiave e la vostra chiave API come valore.

Aggiungere la chiave API di OpenWeather alle variabili d'ambiente.
Aggiungere la chiave API di OpenWeather alle variabili d’ambiente.

L’applicazione supporta altre variabili per controllare la frequenza di aggiornamento, le unità di misura utilizzate, ecc. Per maggiori informazioni, consultate la documentazione delle applicazioni.

Configurare i processi

All’inizio abbiamo detto che avremo bisogno di un server web e di un cronjob. Nella sezione Processi dell’applicazione, si vedrà il processo web che esegue npm start, creato durante l’aggiunta dell’applicazione.

Per impostare il cronjob, fate clic sul pulsante Crea processo e compilate il modulo nella finestra modale/pop-up che vi appare. Per il nostro esempio abbiamo utilizzato i seguenti valori:

Nome: Worker
Tipo: Background job
Comando di avvio npm run weatherLogger
Dimensione pod: Standard 0.5 CPU / 1 GB RAM
Istanze: 1

Poi cliccate su Crea processo.

Creazione del processo in background per la nostra applicazione di esempio.
Creazione del processo in background per la nostra applicazione di esempio.

Distribuire l’applicazione

Infine, tornate alla sezione Distribuzioni e fate clic sul pulsante Distribuisci adesso. L’installazione richiede solitamente circa 90 secondi, ma potrebbe essere necessario attendere un po’ di più affinché tutti i processi si attivino correttamente. La prima misurazione del tempo dovrebbe essere registrata dopo pochi minuti. Per verificare che tutto funzioni, date un’occhiata alla sezione Log.

Log di runtime per l'applicazione di esempio.
Log di runtime per l’applicazione di esempio.

Dopo un paio di minuti, dovreste vedere i processi andati a buon fine nei log di Runtime. Nell’immagine di esempio qui sopra, la riga 482 mostra che il logger ha iniziato a funzionare (Starting weather logging) e la riga 483 mostra che il server web è in esecuzione (Weather server is up and running). La riga 245 mostra eventi di registrazione (Weather data retrieved e Weather data logged).

Nella parte superiore della pagina si può vedere l’URL dell’applicazione (si trova anche nella pagina Deployments, alla voce Latest deployment). Fate clic su questo URL per accedere alla pagina servita dal servizio web:

Pagina del Weather logger che mostra le voci meteo.
Pagina del Weather logger che mostra le voci meteo.

Documentazione correlata