

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

Jedes Beispiel verwendet `index.js` als Eingabedatei und überwacht den Host und den Port von`AWS_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](#web-functions-samples-express) | Starten Sie einen HTTP-Server mitExpress. | 
| [Ehre API und statische Dateien](#web-functions-samples-hono) | Stellen Sie API-Routen und statische Dateien mit bereitHono. | 
| [Server-sent Ereignisse](#web-functions-samples-streaming) | Streamen Sie vom Server gesendete Ereignisse und beenden Sie die Arbeit, wenn der Client die Verbindung unterbricht. | 
| [Multi-Region Route zur Überprüfung](#web-functions-samples-region) | Geben Sie bei der Validierung des Routing in mehreren Regionen die ausliefernde Region zurück. | 

## Minimal Express Anwendung
<a name="web-functions-samples-express"></a>

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](web-functions-create.md#web-functions-create-cli-deploy)

Installieren Sie Express:

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

Erstellen Sie`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);
```

Hinweise zur Verpackung finden Sie unter[Ein Beispiel verpacken und bereitstellen](#web-functions-samples-deploy).

## Ehre API und statische Dateien
<a name="web-functions-samples-hono"></a>

Installieren Sie die Abhängigkeiten:

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

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

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

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

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

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
<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
```

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](web-functions-code-s3.md) und[Revisionen von Webfunktionen verwalten](web-functions-revisions.md). Informationen zum übergeordneten `deploy` Arbeitsablauf finden Sie unter. [Eine Webfunktion erstellen (AWS CLI)](web-functions-create.md#web-functions-create-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 unter[Testen von Lambda-Webfunktionen](web-functions-testing.md).