Enterprise-backend-API's met NestJS · Les

Serverless implementatie

Verken hoe u NestJS-applicaties implementeert op serverless platforms zoals AWS Lambda of Google Cloud Functions voor kostenefficiënte schaalbaarheid.

Les 5 van 611 stappen

Serverless implementatie is een gratis Enterprise-backend-API's met NestJS-les op CoddyKit. Dit is les 5 van 6. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Enterprise-backend-API's met NestJS. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Enterprise-backend-API's met NestJS bevat in totaal 6 lessen.

Introductie tot serverless implementatie

Welkom bij serverless implementatie! Met deze strategie kun je applicaties bouwen en uitvoeren zonder servers te beheren.

In plaats van VM's in te richten, schrijf je code die wordt uitgevoerd als reactie op gebeurtenissen, zoals een HTTP-aanvraag.

De cloudprovider (bijvoorbeeld AWS of Google Cloud) neemt het volledige serverbeheer voor zijn rekening.

Waarom serverless voor NestJS?

NestJS implementeren op serverlessplatforms biedt aantrekkelijke voordelen, vooral voor API's:

  • Automatische schaalbaarheid: Je applicatie schaalt direct mee met de vraag, van nul tot duizenden aanvragen.
  • Kostenefficiëntie: Je betaalt alleen voor de rekentijd die je code gebruikt, niet voor inactieve servers.
  • Minder beheer: Je hoeft je geen zorgen te maken over serveronderhoud, patches of schalen. Richt je op je code!

Veelgebruikte serverlessplatforms

Verschillende grote cloudproviders bieden krachtige serverlesscomputingdiensten:

  • AWS Lambda: De populairste keuze, vaak gebruikt met API Gateway voor HTTP-eindpunten.
  • Google Cloud Functions: De oplossing van Google, diep geïntegreerd in het Google Cloud-ecosysteem.
  • Azure Functions: De oplossing van Microsoft voor gebeurtenisgestuurde serverlessapplicaties.

We richten ons voornamelijk op concepten die van toepassing zijn op AWS Lambda.

NestJS en Lambda: de uitdaging

NestJS-applicaties zijn doorgaans langlopende processen die voortdurend naar aanvragen luisteren. Serverlessfuncties zijn daarentegen ontworpen om kort te leven en alleen te worden uitgevoerd wanneer ze worden geactiveerd.

De uitdaging is om de robuuste architectuur van NestJS passend te maken voor dit model van 'function-as-a-service'. We hebben een manier nodig om onze NestJS-app binnen de context van één serverless-aanroep te 'starten'.

NestJS aanpassen voor Lambda

Om een NestJS-app op AWS Lambda uit te voeren, gebruiken we een adapter. Deze adapter vormt een brug: hij vertaalt binnenkomende Lambda-gebeurtenissen naar een indeling die NestJS begrijpt (zoals een Express.js- of Fastify-aanvraag) en vertaalt het antwoord van NestJS vervolgens terug voor Lambda.

Populaire hulpmiddelen zoals @vendia/serverless-express (voor Express) of @nestjs/platform-fastify met aws-lambda-fastify helpen dit te bereiken.

Serverless Framework CLI

Het Serverless Framework is een krachtige CLI-tool die het implementeren van serverlessapplicaties bij verschillende providers vereenvoudigt.

Het verpakt je code, maakt cloudresources aan (zoals Lambda-functies en API Gateway-eindpunten) en beheert implementaties.

Je kunt het wereldwijd installeren via npm:

npm install -g serverless

Basisstructuur van `serverless.yml`

De kern van een Serverless Framework-project is het serverless.yml-bestand. Deze YAML-configuratie definieert je service, provider en functies.

Hier volgt een vereenvoudigde structuur:

service: my-nestjs-api

provider:
  name: aws
  runtime: nodejs18.x
  # ... other AWS configurations

functions:
  api:
    handler: dist/lambda.handler
    events:
      - http:
          path: /{proxy+}
          method: any
          cors: true

De NestJS Lambda-handler

Dit is het daadwerkelijke toegangspunt voor je Lambda-functie. Het initialiseert je NestJS-applicatie en wikkelt deze in met een adapter.

Het doel is om NestJS slechts één keer te initialiseren (een 'warme start'), zodat latentie bij volgende aanroepen wordt verminderd.

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ExpressAdapter } from '@nestjs/platform-express';
import * as express from 'express';
import * as serverlessExpress from '@vendia/serverless-express';

let cachedServer;

async function bootstrapServer() {
  const expressApp = express();
  const adapter = new ExpressAdapter(expressApp);
  const app = await NestFactory.create(AppModule, adapter);
  await app.init();
  return serverlessExpress({ app: expressApp });
}

export const handler = async (event, context) => {
  if (!cachedServer) {
    cachedServer = await bootstrapServer();
  }
  return cachedServer(event, context);
};

Je serverless-app implementeren

Zodra je serverless.yml en handler zijn geconfigureerd, is het implementeren van je NestJS-applicatie eenvoudig:

  1. Bouwen: Compileer je TypeScript-code (bijvoorbeeld npm run build).
  2. Implementeren: Voer serverless deploy uit vanuit je terminal. De CLI verzorgt het verpakken en inrichten.
  3. Testen: De CLI toont het API Gateway-eindpunt, dat je kunt gebruiken om je geïmplementeerde NestJS-API te testen.

Controle van serverless implementatie

Welke van de volgende opties zijn belangrijke voordelen van het implementeren van een NestJS-API op een serverlessplatform zoals AWS Lambda?

Samenvatting: serverless NestJS

In deze les hebben we verkend hoe je NestJS-applicaties kunt implementeren met serverlessplatforms zoals AWS Lambda.

Je hebt geleerd over de voordelen (kosten, schaalbaarheid en minder beheer), de uitdaging om NestJS aan te passen voor kortlevende functies en hoe het Serverless Framework en adapters deze kloof helpen overbruggen. Met deze aanpak kun je zeer schaalbare en kostenefficiënte backendservices bouwen.

Gratis beginnen

Leer TypeScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
20
Lessen
76

Veelgestelde vragen

Is de les “Serverless implementatie” gratis?

Ja — de volledige tekst van “Serverless implementatie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Enterprise-backend-API's met NestJS wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Enterprise-backend-API's met NestJS bevat in totaal 6 lessen.

Wat leer ik in “Serverless implementatie”?

Verken hoe u NestJS-applicaties implementeert op serverless platforms zoals AWS Lambda of Google Cloud Functions voor kostenefficiënte schaalbaarheid. Je oefent met Enterprise-backend-API's met NestJS door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Enterprise-backend-API's met NestJS te beginnen?

Ervaring vooraf is niet nodig. Enterprise-backend-API's met NestJS op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 5 van 6.

Hoe lang duurt de les “Serverless implementatie”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Enterprise-backend-API's met NestJS?

Ja. Elke les over Enterprise-backend-API's met NestJS bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Cachingstrategieën (Redis)
  2. Databaseprestaties monitoren
  3. Loadbalancing en proxies
  4. Strategieën voor queryoptimalisatie
  5. Serverless implementatie
  6. Uw Supabase-project schalen
← Terug naar Enterprise-backend-API's met NestJS