Serverless-udrulning
Undersøg, hvordan NestJS-applikationer kan udrulles på serverless-platforme som AWS Lambda eller Google Cloud Functions for omkostningseffektiv skalering.
Serverless-udrulning er en gratis NestJS-backend-API'er til virksomheder-lektion på CoddyKit. Dette er lektion 5 af 6. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i NestJS-backend-API'er til virksomheder, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. NestJS-backend-API'er til virksomheder-kurset indeholder 6 lektioner i alt.
Introduktion til serverløs implementering
Velkommen til serverløs implementering! Denne strategi lader dig bygge og køre applikationer uden at administrere servere.
I stedet for at klargøre VM'er skriver du kode, der kører som reaktion på hændelser, f.eks. en HTTP-forespørgsel.
Cloud-udbyderen (f.eks. AWS eller Google Cloud) håndterer al serveradministration for dig.
Hvorfor serverløs med NestJS?
Implementering af NestJS på serverløse platforme giver betydelige fordele, især for API'er:
- Automatisk skalering: Din applikation skalerer øjeblikkeligt i takt med efterspørgslen, fra nul til tusindvis af forespørgsler.
- Omkostningseffektivitet: Du betaler kun for den beregningstid, din kode bruger, ikke for inaktive servere.
- Mindre drift: Du behøver ikke bekymre dig om servervedligeholdelse, programrettelser eller skalering. Fokuser på din kode!
Almindelige serverløse platforme
Flere store cloud-udbydere tilbyder robuste tjenester til serverløs databehandling:
- AWS Lambda: Det mest populære valg, ofte brugt sammen med API Gateway til HTTP-slutpunkter.
- Google Cloud Functions: Googles løsning, der er tæt integreret med Google Cloud-økosystemet.
- Azure Functions: Microsofts løsning til hændelsesdrevne serverløse applikationer.
Vi fokuserer primært på begreber, der kan anvendes på AWS Lambda.
NestJS og Lambda: Udfordringen
NestJS-applikationer er typisk processer, der kører i lang tid og konstant lytter efter forespørgsler. Serverløse funktioner er derimod designet til at have kort levetid og udføres kun, når de udløses.
Udfordringen er at få NestJS's robuste arkitektur til at passe ind i modellen »funktion som en tjeneste«. Vi har brug for en måde at »starte« vores NestJS-app i forbindelse med én enkelt serverløs påkaldelse.
Tilpasning af NestJS til Lambda
For at køre en NestJS-app på AWS Lambda bruger vi en adapter. Denne adapter fungerer som en bro, der oversætter indgående Lambda-hændelser til et format, som NestJS forstår (f.eks. en Express.js- eller Fastify-forespørgsel), og derefter oversætter NestJS's svar tilbage til Lambda.
Populære værktøjer som @vendia/serverless-express (til Express) eller @nestjs/platform-fastify sammen med aws-lambda-fastify hjælper med dette.
Serverless Framework CLI
Serverless Framework er et effektivt CLI-værktøj, der forenkler implementering af serverløse applikationer hos forskellige udbydere.
Det håndterer pakning af din kode, oprettelse af cloud-ressourcer (f.eks. Lambda-funktioner og API Gateway-slutpunkter) samt administration af implementeringer.
Du kan installere det globalt via npm:
npm install -g serverlessGrundlæggende struktur for `serverless.yml`
Kernen i et Serverless Framework-projekt er filen serverless.yml. Denne YAML-konfiguration definerer din tjeneste, udbyder og funktioner.
Her er en forenklet struktur:
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: trueNestJS-Lambda-handleren
Dette er det faktiske indgangspunkt for din Lambda-funktion. Den initialiserer din NestJS-applikation og pakker den ind i en adapter.
Målet er kun at initialisere NestJS én gang (en »warm start«) for at reducere ventetiden ved efterfølgende kald.
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);
};Implementering af din serverløse app
Når serverless.yml og handleren er konfigureret, er det enkelt at implementere din NestJS-applikation:
- Byg: Kompilér din TypeScript-kode (f.eks.
npm run build). - Implementér: Kør
serverless deployfra din terminal. CLI'en håndterer pakning og klargøring. - Test: CLI'en viser dit API Gateway-slutpunkt, som du kan bruge til at teste dit implementerede NestJS-API.
Tjek af serverløs implementering
Hvilke af følgende er de vigtigste fordele ved at implementere et NestJS-API på en serverløs platform som AWS Lambda?
Opsummering: Serverløs NestJS
I denne lektion undersøgte vi, hvordan NestJS-applikationer implementeres ved hjælp af serverløse platforme som AWS Lambda.
Du har lært om fordelene (omkostninger, skalering og mindre drift), udfordringen ved at tilpasse NestJS til kortlivede funktioner, og hvordan Serverless Framework og adaptere hjælper med at bygge bro over denne forskel. Denne tilgang gør det muligt at bygge meget skalerbare og omkostningseffektive backend-tjenester.
Lær TypeScript med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 20
- Lektioner
- 76
Ofte stillede spørgsmål
Er lektionen “Serverless-udrulning” gratis?
Ja — hele teksten til “Serverless-udrulning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af NestJS-backend-API'er til virksomheder-kurset, skal du opgradere til CoddyKit PRO. NestJS-backend-API'er til virksomheder-kurset indeholder 6 lektioner i alt.
Hvad lærer jeg i “Serverless-udrulning”?
Undersøg, hvordan NestJS-applikationer kan udrulles på serverless-platforme som AWS Lambda eller Google Cloud Functions for omkostningseffektiv skalering. Du øver dig i NestJS-backend-API'er til virksomheder med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på NestJS-backend-API'er til virksomheder?
Der kræves ingen tidligere erfaring. NestJS-backend-API'er til virksomheder på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 5 af 6.
Hvor lang tid tager lektionen “Serverless-udrulning”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne NestJS-backend-API'er til virksomheder-lektion?
Ja. Alle NestJS-backend-API'er til virksomheder-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Cachingstrategier (Redis)
- Overvågning af databaseydelse
- Load balancing og proxyer
- Strategier til optimering af forespørgsler
- Serverless-udrulning
- Skalering af dit Supabase-projekt