Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Lambda berfungsi sebagai target di Lattice VPC
Anda dapat mendaftarkan fungsi Lambda sebagai target dengan grup target VPC Lattice, dan mengonfigurasi aturan listener untuk meneruskan permintaan ke grup target untuk fungsi Lambda Anda. Ketika layanan meneruskan permintaan ke grup target dengan fungsi Lambda sebagai target, layanan akan memanggil fungsi Lambda Anda dan meneruskan konten permintaan ke fungsi Lambda, dalam format. JSON Untuk informasi selengkapnya, lihat Menggunakan AWS Lambda Amazon VPC Lattice di Panduan AWS Lambda Pengembang.
Batasan
-
Fungsi Lambda dan kelompok target harus dalam akun dan di wilayah yang sama.
-
Ukuran maksimum badan permintaan yang dapat Anda kirim ke fungsi Lambda adalah 6 MB.
-
Ukuran maksimum respons JSON yang dapat dikirim oleh fungsi Lambda adalah 6 MB.
-
Protokol harus HTTP atauHTTPS.
Siapkan fungsi Lambda
Rekomendasi berikut berlaku jika Anda menggunakan fungsi Lambda Anda dengan layanan VPC Lattice.
Izin untuk mengaktifkan fungsi Lambda
Saat Anda membuat grup target dan mendaftarkan fungsi Lambda menggunakan AWS Management Console atau AWS CLI, VPC Lattice menambahkan izin yang diperlukan ke kebijakan fungsi Lambda Anda atas nama Anda.
Anda juga dapat menambahkan izin sendiri menggunakan API panggilan berikut:
aws lambda add-permission \ --function-name
lambda-function-arn-with-alias-name
\ --statement-idvpc-lattice
\ --principal vpc-lattice.amazonaws.com \ --action lambda:InvokeFunction \ --source-arntarget-group-arn
Versioning fungsi Lambda
Anda dapat mendaftarkan satu fungsi Lambda per kelompok target. Untuk memastikan bahwa Anda dapat mengubah fungsi Lambda Anda dan bahwa layanan VPC Lattice selalu memanggil versi fungsi Lambda saat ini, buat alias fungsi dan sertakan alias dalam fungsi saat ARN Anda mendaftarkan fungsi Lambda dengan layanan Lattice. VPC Untuk informasi selengkapnya, lihat Versi fungsi Lambda dan Membuat alias untuk fungsi Lambda di Panduan Pengembang.AWS Lambda
Buat grup target untuk fungsi Lambda
Buat grup target, yang digunakan dalam routing permintaan. Jika konten permintaan cocok dengan aturan listener dengan tindakan untuk meneruskannya ke grup target ini, layanan VPC Lattice akan memanggil fungsi Lambda terdaftar.
Untuk membuat grup target dan mendaftarkan fungsi Lambda menggunakan konsol
Buka VPC konsol Amazon di https://console.aws.amazon.com/vpc/
. -
Pada panel navigasi, di bawah VPCLattice, pilih Grup target.
-
PilihBuat grup target.
-
UntukPilih jenis targetPilihFungsi Lambda.
-
Untuk Name, masukkan nama untuk grup target.
-
Untuk versi struktur acara Lambda, pilih versi. Untuk informasi selengkapnya, lihat Menerima acara dari layanan VPC Lattice.
-
(Opsional) Untuk menambahkan tag, memperluas Tag, pilih Tambahkan tag baru, dan masukkan kunci tag dan nilai tag.
-
Pilih Berikutnya.
-
UntukFungsi LambdaLakukan salah satu langkah berikut:
-
Pilih fungsi Lambda yang ada.
-
Buat fungsi Lambda baru dan pilih.
-
Daftarkan fungsi Lambda nanti.
-
-
PilihBuat grup target.
Untuk membuat grup target dan mendaftarkan fungsi Lambda menggunakan AWS CLI
Gunakan perintah create-target-groupdan daftar-target.
Menerima acara dari layanan VPC Lattice
Layanan VPC Lattice mendukung pemanggilan Lambda untuk permintaan melalui keduanya dan. HTTP HTTPS Layanan mengirimkan acara dalam JSON format, dan menambahkan X-Forwarded-For
header ke setiap permintaan.
Enkode Base64
Layanan Base64 mengkodekan badan jika content-encoding
header ada dan jenis konten bukan salah satu dari yang berikut:
-
text/*
-
application/json
-
application/xml
-
application/javascript
Jikacontent-encoding
header tidak hadir, encoding Base64 tergantung pada jenis konten. Untuk jenis konten di atas, layanan mengirimkan badan apa adanya, tanpa pengkodean Base64.
Format struktur acara
Saat membuat atau memperbarui jenis grup targetLAMBDA
, Anda dapat menentukan versi struktur acara yang diterima fungsi Lambda Anda. Versi yang mungkin adalah V1
danV2
.
contoh Contoh acara: V2
{
"version": "2.0",
"path": "/",
"method": "GET|POST|HEAD|...",
"headers": {
"header-key
": ["header-value
", ...],
...
},
"queryStringParameters": {
"key
": ["value
", ...]
},
"body": "request-body
",
"isBase64Encoded": true|false,
"requestContext": {
"serviceNetworkArn": "arn:aws:vpc-lattice:region
:123456789012
:servicenetwork/sn-0bf3f2882e9cc805a
",
"serviceArn": "arn:aws:vpc-lattice:region
:123456789012
:service/svc-0a40eebed65f8d69c
",
"targetGroupArn": "arn:aws:vpc-lattice:region
:123456789012
:targetgroup/tg-6d0ecf831eec9f09
",
"identity": {
"sourceVpcArn": "arn:aws:ec2:region
:123456789012
:vpc/vpc-0b8276c84697e7339
",
"type": "AWS_IAM",
"principal": "arn:aws:iam::123456789012
:assumed-role/my-role
/my-session
",
"principalOrgID": "o-50dc6c495c0c9188
",
"sessionName": "i-0c7de02a688bde9f7
",
"x509IssuerOu": "string
",
"x509SanDns": "string
",
"x509SanNameCn": "string
",
"x509SanUri": "string
",
"x509SubjectCn": "string
"
},
"region": "region
",
"timeEpoch": "1690497599177430
"
}
}
body
Tubuh permintaan. Hadir hanya jika protokolnyaHTTP,HTTPS, atau gRPC.
headers
HTTPHeader permintaan. Hadir hanya jika protokolnyaHTTP,HTTPS, atau gRPC.
identity
-
Informasi identitas. Berikut ini adalah bidang yang mungkin.
principal
— Prinsipal yang diautentikasi. Hadir hanya jika AWS otentikasi berhasil.principalOrgID
— ID organisasi untuk prinsipal yang diautentikasi. Hadir hanya jika AWS otentikasi berhasil.sessionName
— Nama sesi yang diautentikasi. Hadir hanya jika AWS otentikasi berhasil.sourceVpcArn
— ARN Dari VPC mana permintaan itu berasal. Hadir hanya jika sumbernya VPC dapat diidentifikasi.type
— Nilainya adalahAWS_IAM
jika kebijakan autentikasi digunakan dan AWS otentikasi berhasil.
Jika kredenal Roles Anywhere digunakan dan otentikasi berhasil, berikut ini adalah kolom yang memungkinkan.
x509IssuerOu
— Penerbit (OU).x509SanDns
— Nama alternatif subjek (DNS).x509SanNameCn
— Nama alternatif penerbit (nama/CN).x509SanUri
— Nama alternatif subjek (URI).x509SubjectCn
Nama Subjek (CN)
isBase64Encoded
Menunjukkan apakah tubuh itu dikodekan base64. Hadir hanya jika protokolnya HTTPHTTPS,, atau g RPC dan badan permintaan belum berupa string.
method
HTTPMetode permintaan. Hadir hanya jika protokolnyaHTTP,HTTPS, atau gRPC.
path
Jalur permintaan. Hadir hanya jika protokolnyaHTTP,HTTPS, atau gRPC.
queryStringParameters
Parameter string HTTP kueri. Hadir hanya jika protokolnyaHTTP,HTTPS, atau gRPC.
serviceArn
Layanan yang menerima permintaan. ARN
serviceNetworkArn
Jaringan layanan yang memberikan permintaan. ARN
targetGroupArn
ARNKelompok sasaran yang menerima permintaan.
timeEpoch
Waktu, dalam mikrodetik.
contoh Contoh acara: V1
{
"raw_path": "/path/to/resource
",
"method": "GET|POST|HEAD|...",
"headers": {"header-key
": "header-value
", ... },
"query_string_parameters": {"key
": "value
", ...},
"body": "request-body
",
"is_base64_encoded": true|false
}
Menanggapi layanan VPC Lattice
Respon dari fungsi Lambda Anda harus mencakup status encoding Base64, kode status, dan header. Anda bisa menghilangkan bagian tubuhnya.
Untuk memasukkan konten biner dalam tubuh respon, Anda harus mengkodekan Base64 konten dan mengaturisBase64Encoded
ketrue
. Layanan menerjemahkan konten untuk mengambil konten biner dan mengirimkannya ke klien di badan respons. HTTP
Layanan VPC Lattice tidak menghormati hop-by-hop header, seperti Connection
atau. Transfer-Encoding
Anda dapat menghilangkan Content-Length
header karena layanan menghitungnya sebelum mengirim tanggapan ke klien.
Berikut ini adalah contoh respon dari fungsi Lambda:
{ "isBase64Encoded":
false
, "statusCode":200
, "statusDescription": "200 OK
", "headers": { "Set-cookie": "cookies
", "Content-Type": "application/json" }, "body": "Hello from Lambda (optional)" }
Header nilai ganda
VPCLattice mendukung permintaan dari klien atau tanggapan dari fungsi Lambda yang berisi header dengan beberapa nilai atau berisi header yang sama beberapa kali. VPCKisi meneruskan semua nilai ke target.
Dalam contoh berikut, ada dua header bernama header1 dengan nilai yang berbeda.
header1 = value1
header1 = value2
Dengan struktur peristiwa V2, VPC Lattice mengirimkan nilai dalam daftar. Sebagai contoh:
"header1": ["value1", "value2"]
Dengan struktur peristiwa V1, VPC Lattice menggabungkan nilai-nilai menjadi satu string. Sebagai contoh:
"header1": "value1, value2"
Parameter string kueri multi-nilai
VPCLattice mendukung parameter kueri dengan beberapa nilai untuk kunci yang sama.
Dalam contoh berikut, ada dua parameter bernama QS1 dengan nilai yang berbeda.
http://www.example.com?&QS1=value1&QS1=value2
Dengan struktur peristiwa V2, VPC Lattice mengirimkan nilai dalam daftar. Sebagai contoh:
"QS1": ["value1", "value2"]
Dengan struktur peristiwa V1, VPC Lattice menggunakan nilai terakhir yang diteruskan. Sebagai contoh:
"QS1": "value2"
Deregristrasi fungsi Lambda
Jika Anda tidak perlu lagi mengirim lalu lintas ke fungsi Lambda Anda, Anda dapat membatalkan pendaftarannya. Setelah Anda membatalkan pendaftaran fungsi Lambda, permintaan dalam penerbangan gagal dengan kesalahan 5XX. HTTP
Untuk mengganti fungsi Lambda, kami sarankan Anda membuat grup target baru, mendaftarkan fungsi baru dengan kelompok target baru, dan memperbarui aturan pendengar untuk menggunakan kelompok target baru bukan yang sudah ada.
Untuk membatalkan pendaftaran fungsi Lambda menggunakan konsol
Buka VPC konsol Amazon di https://console.aws.amazon.com/vpc/
. -
Pada panel navigasi, di bawah VPCLattice, pilih Grup target.
-
Pilih nama grup target untuk menampilkan detailnya.
-
Pada tab Target, pilihDeregister.
-
Saat diminta konfirmasi, masukkan
confirm
lalu pilih Deregister.
Untuk membatalkan pendaftaran fungsi Lambda menggunakan AWS CLI
Gunakan perintah Target deregister.