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.