I den här guiden går vi igenom stegen för att distribuera en Node.js-exempelapplikation och en databas. Använd gärna exemplet nedan för att testa, men nyttja det inte för någon form av produktionsanvändning. Syftet med applikationen är att testa att distribuera en applikation och koppla den till en databas hos Kinsta.

Exempel på tillämpning

Vi har skapat en liten applikation för att logga vädret och visa resultaten på en enkel sida. Du kan hitta applikationen på GitHub. Om du vill använda en annan Git-tjänsteleverantör kan du importera arkivet till Bitbucket eller GitLab.

Fork exempel-applikationen

Besök först programmet weatherlogger-js på GitHub och läs den medföljande Readme-filen för att lära dig mer om applikationen. När du har bekantat dig med den klickar du på Fork-knappen uppe till höger för att ta den till ditt eget GitHub-konto.

Skapa en fork av weatherlogger-js på GitHub.
Skapa en fork av weatherlogger-js på GitHub.

Skapa en API-nyckel

Appen kräver en API-nyckel från OpenWeather. När du har registrerat dig kan du logga in och skapa en kostnadsfri API-nyckel som ger dig möjlighet att göra 1 000 dagliga API-anrop. Vi rekommenderar att du genomför det här steget först eftersom det tar 10-20 minuter innan API-nyckeln blir aktiv, tid som vi kan ägna åt att konfigurera vår applikation.

Processer

När vi distribuerar applikationen till Kinsta måste vi köra två processer:

  • En webbserver där vi kan se våra väderdata. Den kan startas med kommandot npm start.
  • Ett cronjobb som samlar in väderdata med några minuters mellanrum. Detta kan startas med kommandot npm run weatherLogger

Låt oss börja förbereda oss för att köra dessa processer.

Skapa en databas

I MyKinsta, se till att du är på sidan Databaser och klicka sedan på Lägg till databas. Vi använde följande värden i formuläret för att skapa vår exempeldatabas:

  • Databasnamn: weatherloggerdb
  • Visningsnamn: Weather Logger Database
  • Databastyp: MySQL
  • Version: 8.0
  • Vi lämnade databasens användarnamn och lösenord orörda
  • Plats för datacenter: us-central1
  • Databasstorlek: 0.25 CPU core – 256 MB RAM (Mini)

Klicka på Skapa databas så bör du vara klar.

Skapa en ny databas för vår exempel-applikation.
Skapa en ny databas för vår exempel-applikation.

Skapa en applikation

Se till att du är på sidan Applikationer och klicka sedan på Lägg till Applikation. När du klickar på GitHub-kodförrådet måste du tillåta Kinsta att interagera med ditt kodförråd.

För fler steg-för-steg-dokumentation, se Lägg till en applikation.

Vi använde följande värden i det flerstämmiga formuläret för att skapa vår exempelapplikation:

Detaljer om applikation

  • GitHub-repository: danielpataki/weatherlogger-js (i ditt fall blir det något i stil med your-organization/weatherlogger-js)
  • Standardgren: main
  • Automatisk distribution vid överlämning: avmarkerad
  • Programnamn: Weather Logger
  • Plats för datacenter: us-central1
Skapar en ny applikation för vårt exempel.
Skapar en ny applikation för vårt exempel.

Byggmiljö

  • Byggresurser: Standard
  • Byggmiljö: Ställ in containerbild automatiskt
Konfigurera byggmiljön för vårt exempel.
Konfigurera byggmiljön för vårt exempel.

Resurser

  • Ställ in dina processer:
    • Processnamn: Webbprocess
    • Processtyp: webb
    • Startkommando: npm start
    • Podstorlek: Standard 0,5 CPU / 1 GB RAM
    • Antal instanser: 1

Klicka på Lägg till applikation så startar distribueringsprocessen.

Konfigurera webbprocessen för vår exempel-applikation.
Konfigurera webbprocessen för vår exempel-applikation.

Betalningsmetod

Granska exempel-applikationens månatliga användningskostnader och bekräfta din betalningsmetod.

Bekräfta betalningsmetoden för vår exempel-applikation.
Bekräfta betalningsmetoden för vår exempel-applikation.

Anslutning av applikationen och databasen

När databasen är redo för anslutningar (en grön bock visas bredvid den) kan vi ansluta den till vår applikation, även om applikationen fortfarande distribueras. Klicka på Weather Logger-applikationen, klicka på Settings (inställningar) i sidofältet och bläddra nedåt för att hitta avsnittet Internal connections (interna anslutningar).

Interna anslutningar i vår exempel-applikation.
Interna anslutningar i vår exempel-applikation.

Klicka på Add connection (Lägg till anslutning) och välj Weather Logger Database (databas för väderloggare) i modal/popup-fönstret som visas. Markera kryssrutan Lägg till miljövariabler för att få tillgång till databasen, markera kryssrutorna Tillgänglig under körning och Tillgänglig under byggprocess och klicka på Lägg till anslutning.

Lägg till en intern anslutning för vår exempel-applikation.
Lägg till en intern anslutning för vår exempel-applikation.

Inställning av applikationen

Nästa sak på vår lista är att lägga till all information som vår applikation behöver i form av miljövariabler. Den större delen av informationen lades automatiskt till i föregående steg genom att vi fyllde i variablerna för databasanslutningen.

Den enda som saknas och som krävs av applikationen är OpenWeatherMap API-nyckeln. I Inställningar, precis under avsnittet Interna anslutningar, ser du avsnittet Miljövariabler. Klicka på Lägg till miljövariabel och använd OPENWEATHER_KEY som nyckel och din API-nyckel som värde.

Lägg till din OpenWeather API-nyckel i miljövariablerna.
Lägg till din OpenWeather API-nyckel i miljövariablerna.

Applikationen stöder ytterligare några variabler för att kontrollera uppdateringsfrekvens, använda enheter osv. Ta en titt i applikationens dokumentation för mer information.

Konfigurera processer

Vi nämnde i början att vi behöver en webbserver och ett cron job. Gå över till avsnittet Processer i applikationen så ser du webbprocessen som kör npm start som vi skapade när vi lade till applikationen.

För att ställa in cron job klickar du på knappen Create process (Skapa process ) och fyller i formuläret i den modal/pop-up som visas. Vi använde följande värden i vårt exempel:

Namn: Worker
Typ: Bakgrundsjobb
Startkommando: npm run weatherLogger
Podstorlek: Standard 0.5 CPU / 1 GB RAM
Instanser: 1

Klicka sedan på Skapa process.

Skapa bakgrundsprocessen för vår exempel-applikation.
Skapa bakgrundsprocessen för vår exempel-applikation.

Distribuera applikationen

Till sist går du tillbaka till avsnittet Distribueringar och klickar på knappen Distribuera nu. Distribueringen tar vanligtvis cirka 90 sekunder, men du kan behöva vänta lite längre för att alla processer ska komma igång ordentligt. Din första vädermätning bör loggas några minuter därefter. För att kontrollera att allt fungerar kan du ta en titt på avsnittet Loggar.

Körtidsloggar för exempel-applikationen.
Körtidsloggar för exempel-applikationen.

Efter ett par minuter bör du se framgångsrika processer i Körtids-loggarna. I exempelbilden ovan visar rad 482 att loggaren har börjat fungera (Starting weather logging) och rad 483 visar att webbservern körs (Weather server is up and running). Linje 245 och framåt visar loggningshändelser (Weather data retrieved och Weather data logged).

Nära toppen på sidan så kan du se din applikations webbadress (denna finns även på sidan Implementeringar under Senaste implementeringen). Klicka på denna webbadress för att komma till sidan som serveras av webbtjänsten:

Weather logger-sidan som visar väderposter.
Weather logger-sidan som visar väderposter.

Relaterad dokumentation