View a markdown version of this page

Exemples d'applications Web Function - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples d'applications Web Function

Chaque échantillon est utilisé index.js comme fichier d'entrée et écoute l'hôte et le port depuisAWS_LAMBDA_HTTP_ENDPOINT. Package l'application avec ses dépendances de production et déployez-la à partir d'un objet Amazon S3 versionné.

Le tableau suivant répertorie chaque exemple et les enseignements que vous pouvez en tirer.

Exemple Utilisez-le pour apprendre
Minimale Express vigie Démarrez un serveur HTTP avecExpress.
Honneur API et fichiers statiques Servez des routes d'API et des fichiers statiques avecHono.
Server-sent événements Diffusez les événements envoyés par le serveur et arrêtez le travail lorsque le client se déconnecte.
Multi-Region itinéraire de vérification Renvoie la région de desserte lors de la validation du routage multirégional.

Minimale Express vigie

Cet exemple basé sur un framework est une alternative au démarreur sans dépendance créé par. --hello-world Pour le déploiement initial, voirDéployez et testez votre fonction Web.

Installez Express :

npm init -y npm install express

Créez index.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);

Pour des conseils d'emballage, voirPackage et déploiement d'un échantillon.

Honneur API et fichiers statiques

Installez les dépendances :

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

Créez index.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 });

Placez les fichiers statiques dans un static répertoire et incluez le répertoire dans le package de déploiement.

Server-sent événements

Ajoutez l'itinéraire suivant à une Express application :

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); }); });

La demande reste active jusqu'à ce que l'application mette fin à la réponse ou que le client se déconnecte. Définissez le délai de révision pour la durée maximale du stream. WebSocketles mises à niveau ne sont pas prises en charge.

Multi-Region itinéraire de vérification

Ajoutez une route qui renvoie la région dans laquelle la demande a été exécutée :

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

Appelez l'itinéraire depuis les sites clients concernés par votre application. Pour un MultiRegion point de terminaison, la région sélectionnée provient d'un routage basé sur la latence et peut changer. N'utilisez pas l'environnement d'exécution comme magasin de sessions.

Package et déploiement d'un échantillon

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

Incluez d'autres fichiers utilisés par l'échantillon sélectionné, tels que le static répertoire de l'Honoexemple. Pour créer une révision qui fait référence à l'objet chargé, reportez-vous Déploiement du code de fonction Web depuis Amazon S3 aux sections etGestion des révisions des fonctions Web. Pour le deploy flux de travail de niveau supérieur, voir. Création d'une fonction Web (AWS CLI) Une fois que la révision est terminée Active et que le point de terminaison l'a traitée, envoyez une demande au domaine du point de terminaison pour confirmer les réponses de l'échantillon. Pour la couverture du test au-delà de ce test de fumée, voirTest des fonctions Web Lambda.