View a markdown version of this page

Beispielanwendungen für Webfunktionen - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispielanwendungen für Webfunktionen

Jedes Beispiel verwendet index.js als Eingabedatei und überwacht den Host und den Port vonAWS_LAMBDA_HTTP_ENDPOINT. Verpacken Sie die Anwendung mit ihren Produktionsabhängigkeiten und stellen Sie sie von einem versionierten Amazon S3 S3-Objekt aus bereit.

In der folgenden Tabelle sind die einzelnen Beispiele aufgeführt und was Sie daraus lernen können.

Beispiel Benutze es, um zu lernen
Minimal Express Anwendung Starten Sie einen HTTP-Server mitExpress.
Ehre API und statische Dateien Stellen Sie API-Routen und statische Dateien mit bereitHono.
Server-sent Ereignisse Streamen Sie vom Server gesendete Ereignisse und beenden Sie die Arbeit, wenn der Client die Verbindung unterbricht.
Multi-Region Route zur Überprüfung Geben Sie bei der Validierung des Routing in mehreren Regionen die ausliefernde Region zurück.

Minimal Express Anwendung

Dieses Framework-basierte Beispiel ist eine Alternative zu dem Starter ohne Abhängigkeit, der von erstellt wurde. --hello-world Informationen zur Starter-Bereitstellung finden Sie unter. Stellen Sie Ihre Webfunktion bereit und testen Sie sie

Installieren Sie Express:

npm init -y npm install express

Erstellen Sieindex.js:

const express = require('express'); const app = express(); const [host, port] = (process.env.AWS_LAMBDA_HTTP_ENDPOINT || 'localhost:3000').split(':'); app.get('/', (request, response) => { response.send('Hello from Lambda Web Functions!'); }); app.listen(port, host);

Hinweise zur Verpackung finden Sie unterEin Beispiel verpacken und bereitstellen.

Ehre API und statische Dateien

Installieren Sie die Abhängigkeiten:

npm init -y npm pkg set type=module npm install hono @hono/node-server

Erstellen Sieindex.js:

import { serve } from '@hono/node-server'; import { serveStatic } from '@hono/node-server/serve-static'; import { Hono } from 'hono'; import { secureHeaders } from 'hono/secure-headers'; const app = new Hono(); app.use(secureHeaders()); app.use('/static/*', serveStatic({ root: './' })); app.get('/api/health', (context) => context.json({ status: 'ok' })); app.notFound((context) => context.json({ error: 'not found' }, 404)); const [host, port] = (process.env.AWS_LAMBDA_HTTP_ENDPOINT || 'localhost:3000').split(':'); serve({ fetch: app.fetch, port: Number(port), hostname: host });

Platzieren Sie statische Dateien in einem static Verzeichnis und nehmen Sie das Verzeichnis in das Bereitstellungspaket auf.

Server-sent Ereignisse

Fügen Sie einer Express Anwendung die folgende Route hinzu:

app.get('/events', (request, response) => { response.setHeader('Content-Type', 'text/event-stream'); response.setHeader('Cache-Control', 'no-cache'); response.flushHeaders(); const interval = setInterval(() => { response.write(`data: ${JSON.stringify({ time: Date.now() })}\n\n`); }, 1000); response.on('close', () => { clearInterval(interval); }); });

Die Anfrage bleibt aktiv, bis die Anwendung die Antwort beendet oder der Client die Verbindung unterbricht. Stellen Sie das Revisionstimeout für die maximale Stream-Dauer ein. WebSocketUpgrades werden nicht unterstützt.

Multi-Region Route zur Überprüfung

Fügen Sie eine Route hinzu, die die Region zurückgibt, in der die Anfrage ausgeführt wurde:

app.get('/region', (request, response) => { response.json({ region: process.env.AWS_REGION, requestId: request.get('lambda-web-request-id') }); });

Rufen Sie die Route von den Client-Standorten aus auf, die für Ihre Anwendung wichtig sind. Für einen MultiRegion Endpunkt stammt die ausgewählte Region aus latenzbasiertem Routing und kann sich ändern. Verwenden Sie die Ausführungsumgebung nicht als Sitzungsspeicher.

Ein Beispiel verpacken und bereitstellen

npm ci --omit=dev zip -r function.zip index.js package.json package-lock.json node_modules aws s3 cp function.zip s3://amzn-s3-demo-bucket/samples/function.zip

Schließen Sie andere Dateien ein, die das ausgewählte Beispiel verwendet, z. B. das static Verzeichnis im Hono Beispiel. Informationen zum Erstellen einer Revision, die auf das hochgeladene Objekt verweist, finden Sie unter Bereitstellen von Web-Funktionscode aus Amazon S3 undRevisionen von Webfunktionen verwalten. Informationen zum übergeordneten deploy Arbeitsablauf finden Sie unter. Eine Webfunktion erstellen (AWS CLI) Sobald die Revision vorliegt Active und der Endpunkt sie bereitstellt, senden Sie eine Anfrage an die Endpunktdomäne, um zu bestätigen, dass das Beispiel reagiert. Informationen zur Testabdeckung, die über diesen Rauchtest hinausgeht, finden Sie unterTesten von Lambda-Webfunktionen.