

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Aplikasi contoh Fungsi Web
<a name="web-functions-samples"></a>

Setiap sampel digunakan `index.js` sebagai file entri dan mendengarkan pada host dan port dari`AWS_LAMBDA_HTTP_ENDPOINT`. Package aplikasi dengan dependensi produksinya dan terapkan dari objek Amazon S3 berversi.

Tabel berikut mencantumkan setiap sampel dan apa yang dapat Anda pelajari darinya.


| Sampel | Gunakan untuk belajar | 
| --- | --- | 
| [Minimal Ekspres application](#web-functions-samples-express) | Mulai server HTTP denganExpress. | 
| [Hono API dan file statis](#web-functions-samples-hono) | Sajikan rute API dan file statis denganHono. | 
| [Server-sent acara](#web-functions-samples-streaming) | Streaming peristiwa yang dikirim server dan berhenti bekerja saat klien terputus. | 
| [Multi-Region rute verifikasi](#web-functions-samples-region) | Kembalikan Wilayah penayangan saat memvalidasi perutean Multi-wilayah. | 

## Minimal Ekspres application
<a name="web-functions-samples-express"></a>

Sampel berbasis kerangka kerja ini merupakan alternatif dari starter ketergantungan nol yang dibuat oleh. `--hello-world` Untuk penyebaran starter, lihat[Menyebarkan dan menguji Fungsi Web Anda](web-functions-create.md#web-functions-create-cli-deploy).

Instal Express:

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

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

Untuk panduan pengemasan, lihat[Package dan menyebarkan sampel](#web-functions-samples-deploy).

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

Instal dependensi:

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

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

Letakkan file statis di bawah `static` direktori dan sertakan direktori dalam paket penyebaran.

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

Tambahkan rute berikut ke Express aplikasi:

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

Permintaan tetap aktif sampai aplikasi mengakhiri respons atau klien terputus. Tetapkan batas waktu revisi untuk durasi streaming maksimum. WebSocketupgrade tidak didukung.

## Multi-Region rute verifikasi
<a name="web-functions-samples-region"></a>

Tambahkan rute yang mengembalikan Wilayah tempat permintaan dieksekusi:

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

Panggil rute dari lokasi klien yang penting bagi aplikasi Anda. Untuk `MultiRegion` titik akhir, Wilayah yang dipilih berasal dari perutean berbasis latensi dan dapat berubah. Jangan gunakan lingkungan eksekusi sebagai penyimpanan sesi.

## Package dan menyebarkan sampel
<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
```

Sertakan file lain yang digunakan sampel yang dipilih, seperti `static` direktori dalam Hono sampel. Untuk membuat revisi yang mereferensikan objek yang diunggah, lihat [Menyebarkan kode Fungsi Web dari Amazon S3](web-functions-code-s3.md) dan. [Mengelola revisi Fungsi Web](web-functions-revisions.md) Untuk `deploy` alur kerja tingkat yang lebih tinggi, lihat. [Membuat Fungsi Web (AWS CLI)](web-functions-create.md#web-functions-create-cli) Setelah revisi `Active` dan titik akhir menyajikannya, kirim permintaan ke domain titik akhir untuk mengonfirmasi respons sampel. Untuk cakupan tes di luar tes asap ini, lihat[Menguji Fungsi Web Lambda](web-functions-testing.md).