Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aplikasi contoh Fungsi Web
Setiap sampel digunakan index.js sebagai file entri dan mendengarkan pada host dan port dariAWS_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 | Mulai server HTTP denganExpress. |
| Hono API dan file statis | Sajikan rute API dan file statis denganHono. |
| Server-sent acara | Streaming peristiwa yang dikirim server dan berhenti bekerja saat klien terputus. |
| Multi-Region rute verifikasi | Kembalikan Wilayah penayangan saat memvalidasi perutean Multi-wilayah. |
Minimal Ekspres application
Sampel berbasis kerangka kerja ini merupakan alternatif dari starter ketergantungan nol yang dibuat oleh. --hello-world Untuk penyebaran starter, lihatMenyebarkan dan menguji Fungsi Web Anda.
Instal Express:
npm init -y npm install express
Buatindex.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, lihatPackage dan menyebarkan sampel.
Hono API dan file statis
Instal dependensi:
npm init -y npm pkg set type=module npm install hono @hono/node-server
Buatindex.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
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
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
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 dan. Mengelola revisi Fungsi Web Untuk deploy alur kerja tingkat yang lebih tinggi, lihat. Membuat Fungsi Web (AWS 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, lihatMenguji Fungsi Web Lambda.