Verwenden von Lambda-Funktionen zum Erstellen einer REST-API

Verwenden von Lambda-Funktionen zum Erstellen einer REST-API

Wir haben eine Web-App, die von einer API aus AWS Lambda-Funktionen angetrieben wird. Für die API haben wir drei Umgebungen (Prod, Staging und Demo). Wir haben die Funktionen entwickelt mitServerlos-Offlineund die Funktionen sehen folgendermaßen aus (es gibt insgesamt 84 Funktionen, 28 Funktionen in jeder Umgebung):

Produktion

  • api-produkt-funktion-1
  • api-produkt-funktion-2
  • api-produkt-funktion-3
  • usw...

Inszenierung

  • API-Staging-Funktion-1
  • API-Staging-Funktion-2
  • API-Staging-Funktion-3
  • usw...

Demo

  • api-demo-funktion-1
  • api-demo-funktion-2
  • api-demo-funktion-3
  • usw...

Je nach Umgebung sind die Funktionen mit unterschiedlichen DBs und unterschiedlichen ENVs der von uns verwendeten Dienste verbunden (z. B. Auth0-Sandbox und Live, Mailgun-Sandbox und Live usw.).

Das Problem besteht darin, dass die Funktionen das maximale Codespeicherlimit von 75 GB überschritten haben. Wir haben dieses Skript verwendet, um die alten Versionen zu bereinigen, aber es scheint, als gäbe es keine älteren Versionen mehr, die gelöscht werden könnten.

Meine Fragen sind also:

  1. Ist es möglich, dieses Speicherlimit zu erhöhen?
  2. Im Grunde basiert die gesamte API auf Lambda-Funktionen und jeder Endpunkt ruft seine eigene Lambda-Funktion auf. Ist das ein guter Anwendungsfall für Lambda?

Verwendete Pakete:

  • Analyseknoten
  • auth0
  • aws-sdk
  • Eversign - Das große Erfolgsrezept
  • gewaltig
  • jsonwebtoken
  • Knex
  • Lambda-Mehrteiler-Parser
  • Lambda-Slack-Router
  • Mittel
  • Moment
  • Knotenmailer
  • Nodemailer-Mailgun-Transport
  • Einspruch
  • Seite
  • Rabe
  • Anfrage
  • Anfrage-Versprechen-nativ
  • Serverloser Sentry
  • serverless-sentry-lib
  • sha1
  • Slack-Benachrichtigung
  • UUID
  • Prüfer

Zu Ihrer Information: Die Person, die das alles ursprünglich aufgebaut hat, hat das Unternehmen verlassen, und ich bin derjenige, der sich darum kümmern muss, bis wir eine geeignete Person gefunden haben. Ich habe ein wenig Erfahrung mit AWS, daher wäre jeder Rat eine große Hilfe.

Dank im Voraus.

Antwort1

Ist es möglich, dieses Speicherlimit zu erhöhen?

Ja, Sie können mehr Speicherplatz für Lambdas anfordern. Gehen Sie zum Support Center --> Auswählen Create Case--> Auswählen Service Limit Increase--> LimittypLambda

Bildbeschreibung hier eingeben

Scrollen Sie nach unten zum RequestsAbschnitt und füllen Sie ihn aus, Function and Layer Storagewie im Bild unten gezeigt. Füllen Sie ihn aus Use Caseund senden Sie ihn ab.

Bildbeschreibung hier eingeben

Im Grunde basiert die gesamte API auf Lambda-Funktionen und jeder Endpunkt ruft seine eigene Lambda-Funktion auf. Ist das ein guter Anwendungsfall für Lambda?

Generell ist dies ein sehr guter Anwendungsfall für Lambdas. Der Vorbehalt ist, dass ich weder Ihre Architektur noch Ihren Code kenne. Es gibt mehrere Referenzen (unten aufgeführt) zu Anwendungsfällen für Lambdas und zum Erstellen von REST-APIs mit Lambda.

Websites – Suppose you are creating a website and you want to host the backend logic on Lambda. You can invoke your Lambda function over HTTP using Amazon API Gateway as the HTTP endpoint. Now, your web client can invoke the API, and then API Gateway can route the request to Lambda.

Verweise

Erstellen Sie eine REST-API mit Lambda-Integrationen in Amazon API Gateway
Erstellen Sie einen einfachen Microservice mit Lambda und API Gateway
Gängige Lambda-Anwendungstypen und Anwendungsfälle

Antwort2

Verwenden Sie serverlos, um Ihre API- und Lambda-Funktionen bereitzustellen? Das ist der einfachste Weg, um sicherzustellen, dass sie dem richtigen Endpunkt bereitgestellt werden, da Sie die Endpunkte jedem Lambda inline zuweisen können.

https://carova.io/snippets/serverless-aws-api-gateway-create-and-deploy-api

Dann fügen Sie eine Lambda-Funktion wie hier hinzu: https://carova.io/snippets/serverless-aws-lambda-function-as-api-gateway-endpoint

verwandte Informationen