Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Membuat respons streaming fungsi Lambda dengan URL fungsi
Dalam tutorial ini, Anda membuat fungsi Lambda yang didefinisikan sebagai arsip file.zip dengan titik akhir URL fungsi yang mengembalikan aliran respons. Untuk informasi selengkapnya tentang mengonfigurasi URL fungsi, lihat. Fungsi URLs
Prasyarat
Tutorial ini mengasumsikan bahwa Anda memiliki pengetahuan tentang operasi Lambda dan konsol Lambda dasar. Jika belum, ikuti petunjuk di Membuat fungsi Lambda dengan konsol untuk membuat fungsi Lambda pertama Anda.
Untuk menyelesaikan langkah-langkah berikut, Anda memerlukan AWS Command Line Interface (AWS CLI) versi 2. Perintah dan output yang diharapkan dicantumkan dalam blok terpisah:
aws --version
Anda akan melihat output berikut:
aws-cli/2.13.27 Python/3.11.6 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.amzn.2
Untuk perintah panjang, karakter escape (\
) digunakan untuk memisahkan perintah menjadi beberapa baris.
Di Linux dan macOS, gunakan shell dan manajer paket pilihan Anda.
catatan
Di Windows, beberapa perintah Bash CLI yang biasa Anda gunakan dengan Lambda (zip
seperti) tidak didukung oleh terminal bawaan sistem operasi. Untuk mendapatkan versi terintegrasi Windows dari Ubuntu dan Bash, instal Windows Subsystem untuk
Membuat peran eksekusi
Buat peran eksekusi yang memberikan izin kepada fungsi Lambda Anda untuk mengakses sumber daya AWS .
Untuk membuat peran eksekusi
-
Buka halaman
Peran konsol AWS Identity and Access Management (IAM). -
Pilih Buat peran.
-
Buat peran dengan properti berikut:
-
Jenis entitas tepercaya - AWS layanan
-
Kasus penggunaan - Lambda
-
Izin – AWSLambdaBasicExecutionRole
-
Nama peran –
response-streaming-role
-
AWSLambdaBasicExecutionRoleKebijakan ini memiliki izin yang diperlukan fungsi untuk menulis log ke Amazon CloudWatch Logs. Setelah Anda membuat peran, catat Nama Sumber Daya Amazon (ARN). Anda akan membutuhkannya di langkah berikutnya.
Buat fungsi streaming respons (AWS CLI)
Buat respons streaming fungsi Lambda dengan titik akhir URL fungsi menggunakan (). AWS Command Line Interface AWS CLI
Untuk membuat fungsi yang dapat mengalirkan respons
-
Salin contoh kode berikut ke file bernama
index.mjs
.import util from 'util'; import stream from 'stream'; const { Readable } = stream; const pipeline = util.promisify(stream.pipeline); /* global awslambda */ export const handler = awslambda.streamifyResponse(async (event, responseStream, _context) => { const requestStream = Readable.from(Buffer.from(JSON.stringify(event))); await pipeline(requestStream, responseStream); });
-
Buat paket deployment.
zip function.zip index.mjs
-
Buat fungsi Lambda dengan perintah
create-function
. Ganti nilai--role
dengan peran ARN dari langkah sebelumnya.aws lambda create-function \ --function-name
my-streaming-function
\ --runtime nodejs16.x \ --zip-file fileb://function.zip \ --handler index.handler \ --rolearn:aws:iam::123456789012:role/response-streaming-role
Untuk membuat URL fungsi
-
Tambahkan kebijakan berbasis sumber daya ke fungsi Anda untuk mengizinkan akses ke URL fungsi Anda. Ganti nilai
--principal
dengan Akun AWS ID Anda.aws lambda add-permission \ --function-name my-streaming-function \ --action lambda:InvokeFunctionUrl \ --statement-id 12345 \ --principal
123456789012
\ --function-url-auth-type AWS_IAM \ --statement-id url -
Buat titik akhir URL untuk fungsi dengan
create-function-url-config
perintah.aws lambda create-function-url-config \ --function-name my-streaming-function \ --auth-type AWS_IAM \ --invoke-mode RESPONSE_STREAM
Uji titik akhir URL fungsi
Uji integrasi Anda dengan menjalankan fungsi Anda. Anda dapat membuka URL fungsi Anda di browser, atau Anda dapat menggunakan curl.
curl --request GET "
<function_url>
" --user "<key:token>
" --aws-sigv4 "aws:amz:us-east-1:lambda" --no-buffer
URL fungsi kami menggunakan jenis IAM_AUTH
otentikasi. Ini berarti Anda perlu menandatangani permintaan dengan kunci AWS akses dan kunci rahasia Anda. Pada perintah sebelumnya, ganti <key:token>
dengan ID kunci AWS akses. Masukkan kunci AWS rahasia Anda saat diminta. Jika Anda tidak memiliki kunci AWS rahasia Anda, Anda dapat menggunakan AWS kredensyal sementara sebagai gantinya.
Bersihkan sumber daya Anda
Sekarang Anda dapat menghapus sumber daya yang Anda buat untuk tutorial ini, kecuali Anda ingin mempertahankannya. Dengan menghapus AWS sumber daya yang tidak lagi Anda gunakan, Anda mencegah tagihan yang tidak perlu ke Anda Akun AWS.
Untuk menghapus peran eksekusi
-
Buka halaman Peran
dari konsol IAM. -
Pilih peran eksekusi yang Anda buat.
-
Pilih Hapus.
-
Masukkan nama peran di bidang input teks dan pilih Hapus.
Untuk menghapus fungsi Lambda
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih fungsi yang Anda buat.
-
Pilih Tindakan, Hapus.
-
Ketik
delete
kolom input teks dan pilih Hapus.