

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
<a name="web-functions-samples"></a>

Chaque échantillon est utilisé `index.js` comme fichier d'entrée et écoute l'hôte et le port depuis`AWS_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](#web-functions-samples-express) | Démarrez un serveur HTTP avecExpress. | 
| [Honneur API et fichiers statiques](#web-functions-samples-hono) | Servez des routes d'API et des fichiers statiques avecHono. | 
| [Server-sent événements](#web-functions-samples-streaming) | 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](#web-functions-samples-region) | Renvoie la région de desserte lors de la validation du routage multirégional. | 

## Minimale Express vigie
<a name="web-functions-samples-express"></a>

Cet exemple basé sur un framework est une alternative au démarreur sans dépendance créé par. `--hello-world` Pour le déploiement initial, voir[Déployez et testez votre fonction Web](web-functions-create.md#web-functions-create-cli-deploy).

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, voir[Package et déploiement d'un échantillon](#web-functions-samples-deploy).

## Honneur API et fichiers statiques
<a name="web-functions-samples-hono"></a>

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
<a name="web-functions-samples-streaming"></a>

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
<a name="web-functions-samples-region"></a>

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
<a name="web-functions-samples-deploy"></a>

```
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](web-functions-code-s3.md) aux sections et[Gestion des révisions des fonctions Web](web-functions-revisions.md). Pour le `deploy` flux de travail de niveau supérieur, voir. [Création d'une fonction Web (AWS CLI)](web-functions-create.md#web-functions-create-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, voir[Test des fonctions Web Lambda](web-functions-testing.md).