Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menulis fungsi Lambda yang mendukung streaming respons

Mode fokus
Menulis fungsi Lambda yang mendukung streaming respons - AWS Lambda

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

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

Menulis handler untuk fungsi streaming respons berbeda dari pola handler biasa. Saat menulis fungsi streaming, pastikan untuk melakukan hal berikut:

  • Bungkus fungsi Anda dengan awslambda.streamifyResponse() dekorator yang disediakan runtime Node.js asli.

  • Akhiri aliran dengan anggun untuk memastikan bahwa semua pemrosesan data selesai.

Mengkonfigurasi fungsi handler untuk mengalirkan respons

Untuk menunjukkan ke runtime bahwa Lambda harus mengalirkan respons fungsi Anda, Anda harus membungkus fungsi Anda dengan streamifyResponse() dekorator. Ini memberi tahu runtime untuk menggunakan jalur logika yang tepat untuk respons streaming dan memungkinkan fungsi untuk mengalirkan respons.

streamifyResponse()Dekorator menerima fungsi yang menerima parameter berikut:

  • event— Memberikan informasi tentang peristiwa pemanggilan URL fungsi, seperti metode HTTP, parameter kueri, dan badan permintaan.

  • responseStream— Menyediakan aliran yang dapat ditulis.

  • contextMenyediakan metode dan properti dengan informasi tentang pemanggilan, fungsi, dan lingkungan eksekusi.

responseStreamObjeknya adalah Node.js writableStream. Seperti halnya aliran seperti itu, Anda harus menggunakan pipeline() metode ini.

contoh handler yang mendukung streaming respons
const pipeline = require("util").promisify(require("stream").pipeline); const { Readable } = require('stream'); exports.echo = awslambda.streamifyResponse(async (event, responseStream, _context) => { // As an example, convert event to a readable stream. const requestStream = Readable.from(Buffer.from(JSON.stringify(event))); await pipeline(requestStream, responseStream); });

Meskipun responseStream menawarkan write() metode untuk menulis ke aliran, kami sarankan Anda menggunakannya pipeline()sedapat mungkin. Menggunakan pipeline() memastikan bahwa aliran yang dapat ditulis tidak kewalahan oleh aliran yang dapat dibaca lebih cepat.

Mengakhiri aliran

Pastikan Anda mengakhiri aliran dengan benar sebelum handler kembali. pipeline()Metode ini menangani ini secara otomatis.

Untuk kasus penggunaan lainnya, panggil responseStream.end() metode untuk mengakhiri aliran dengan benar. Metode ini menandakan bahwa tidak ada lagi data yang harus ditulis ke aliran. Metode ini tidak diperlukan jika Anda menulis ke aliran dengan pipeline() ataupipe().

contoh Contoh mengakhiri aliran dengan pipeline ()
const pipeline = require("util").promisify(require("stream").pipeline); exports.handler = awslambda.streamifyResponse(async (event, responseStream, _context) => { await pipeline(requestStream, responseStream); });
contoh Contoh mengakhiri aliran tanpa pipeline ()
exports.handler = awslambda.streamifyResponse(async (event, responseStream, _context) => { responseStream.write("Hello "); responseStream.write("world "); responseStream.write("from "); responseStream.write("Lambda!"); responseStream.end(); });
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.