

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Applicazioni di esempio di Web Function
<a name="web-functions-samples"></a>

Ogni esempio viene utilizzato `index.js` come file di ingresso e viene ascoltato sull'host e sulla porta da`AWS_LAMBDA_HTTP_ENDPOINT`. Package dell'applicazione con le sue dipendenze di produzione e distribuiscila da un oggetto Amazon S3 con versione.

La tabella seguente elenca ogni esempio e cosa puoi imparare da esso.


| Project N.E.M.O. | Usalo per imparare | 
| --- | --- | 
| [Minima Express applicazione](#web-functions-samples-express) | Avvia un server HTTP conExpress. | 
| [Hono API e file statici](#web-functions-samples-hono) | Servi percorsi API e file statici conHono. | 
| [Server-sent eventi](#web-functions-samples-streaming) | Trasmetti in streaming gli eventi inviati dal server e interrompi il lavoro quando il client si disconnette. | 
| [Multi-Region percorso di verifica](#web-functions-samples-region) | Restituisci la regione di servizio durante la convalida del routing multiregionale. | 

## Minima Express applicazione
<a name="web-functions-samples-express"></a>

Questo esempio basato sul framework è un'alternativa allo starter a dipendenza zero creato da. `--hello-world` Per la distribuzione iniziale, vedere. [Implementa e testa la tua funzione Web](web-functions-create.md#web-functions-create-cli-deploy)

Installare Express:

```
npm init -y
npm install express
```

Crea`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);
```

Per indicazioni sull'imballaggio, vedere[Package e distribuzione di un campione](#web-functions-samples-deploy).

## Hono API e file statici
<a name="web-functions-samples-hono"></a>

Installare le dipendenze:

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

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

Inserisci i file statici in una `static` directory e includi la directory nel pacchetto di distribuzione.

## Server-sent eventi
<a name="web-functions-samples-streaming"></a>

Aggiungi il seguente percorso a un'Expressapplicazione:

```
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 richiesta rimane attiva fino a quando l'applicazione non termina la risposta o il client non si disconnette. Imposta il timeout di revisione per la durata massima dello streaming. WebSocketgli aggiornamenti non sono supportati.

## Multi-Region percorso di verifica
<a name="web-functions-samples-region"></a>

Aggiungi un percorso che restituisca la regione in cui è stata eseguita la richiesta:

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

Chiama il percorso dalle sedi dei client più importanti per la tua applicazione. Per un `MultiRegion` endpoint, la regione selezionata proviene dal routing basato sulla latenza e può cambiare. Non utilizzare l'ambiente di esecuzione come archivio di sessioni.

## Package e distribuzione di un campione
<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
```

Include altri file utilizzati dall'esempio selezionato, ad esempio la `static` directory nell'Honoesempio. Per creare una revisione che faccia riferimento all'oggetto caricato, consultate [Distribuzione del codice Web Function da Amazon S3](web-functions-code-s3.md) e[Gestione delle revisioni delle funzioni Web](web-functions-revisions.md). Per il `deploy` flusso di lavoro di livello superiore, consulta. [Creazione di una funzione Web (AWS CLI)](web-functions-create.md#web-functions-create-cli) Dopo aver completato la revisione `Active` e averla effettuata dall'endpoint, invia una richiesta al dominio dell'endpoint per confermare la risposta del campione. Per una copertura dei test oltre a questo test di fumo, vedi. [Test delle funzioni Web Lambda](web-functions-testing.md)