Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanggil fungsi Lambda URLs
Fungsi URL adalah titik akhir khusus HTTP (S) untuk fungsi Lambda Anda. Anda dapat membuat dan mengonfigurasi fungsi URL melalui konsol Lambda atau Lambda. API Saat Anda membuat fungsiURL, Lambda secara otomatis menghasilkan URL titik akhir yang unik untuk Anda. Setelah Anda membuat fungsiURL, URL titik akhirnya tidak pernah berubah. URLTitik akhir fungsi memiliki format berikut:
https://
<url-id>
.lambda-url.<region>.on.aws
catatan
Fungsi tidak URLs didukung sebagai berikut Wilayah AWS: Asia Pasifik (Hyderabad) (), Asia Pasifik (Melbourneap-south-2
) (), Asia Pasifik (Malaysiaap-southeast-4
) (), Kanada Barat (Calgaryap-southeast-5
) (), Eropa (Spanyolca-west-1
) (), Eropa (Zuricheu-south-2
) (), Israel (Tel Aviveu-central-2
) (), dan Timur Tengah (il-central-1
) (). UAE me-central-1
Fungsi URLs adalah dual stack-enabled, mendukung dan. IPv4 IPv6 Setelah mengonfigurasi fungsi AndaURL, Anda dapat memanggil fungsi Anda melalui titik akhir HTTP (S) melalui browser web, curl, Postman, atau klien apa pun. HTTP Untuk menjalankan fungsiURL, Anda harus memiliki lambda:InvokeFunctionUrl
izin. Untuk informasi selengkapnya, lihat Kontrol akses.
Dasar-dasar URL pemanggilan fungsi
Jika fungsi Anda URL menggunakan jenis AWS_IAM
autentikasi, Anda harus menandatangani setiap HTTP permintaan menggunakan AWS Signature Version 4 (SigV4). Alat seperti awscurl
Jika Anda tidak menggunakan alat untuk menandatangani HTTP permintaan ke fungsi AndaURL, Anda harus menandatangani setiap permintaan secara manual menggunakan SigV4. Saat fungsi Anda URL menerima permintaan, Lambda juga menghitung tanda tangan SigV4. Lambda memproses permintaan hanya jika tanda tangan cocok. Untuk petunjuk tentang cara menandatangani permintaan Anda secara manual dengan SigV4, lihat Menandatangani AWS permintaan dengan Tanda Tangan Versi 4 di Referensi Umum Amazon Web Services Panduan.
Jika fungsi Anda URL menggunakan jenis NONE
autentikasi, Anda tidak perlu menandatangani permintaan menggunakan SigV4. Anda dapat menjalankan fungsi Anda menggunakan browser web, curl, Postman, atau klien apa pun. HTTP
Untuk menguji GET
permintaan sederhana ke fungsi Anda, gunakan browser web. Misalnya, jika fungsi URL Andahttps://abcdefg.lambda-url.us-east-1.on.aws
, dan dibutuhkan dalam parameter stringmessage
, permintaan Anda URL bisa terlihat seperti ini:
https://abcdefg.lambda-url.us-east-1.on.aws/?message=HelloWorld
Untuk menguji HTTP permintaan lain, seperti POST
permintaan, Anda dapat menggunakan alat seperti curl. Misalnya, jika Anda ingin menyertakan beberapa JSON data dalam POST
permintaan ke fungsi AndaURL, Anda dapat menggunakan perintah curl berikut:
curl -v 'https://abcdefg.lambda-url.us-east-1.on.aws/?message=HelloWorld' \ -H 'content-type: application/json' \ -d '{ "example": "test" }'
Muatan permintaan dan respons
Saat klien memanggil fungsi AndaURL, Lambda memetakan permintaan ke objek peristiwa sebelum meneruskannya ke fungsi Anda. Respons fungsi Anda kemudian dipetakan ke HTTP respons yang dikirim Lambda kembali ke klien melalui fungsi tersebut. URL
Format peristiwa permintaan dan respons mengikuti skema yang sama dengan format payload Amazon API Gateway versi 2.0.
Minta format muatan
Muatan permintaan memiliki struktur sebagai berikut:
{ "version": "2.0", "routeKey": "$default", "rawPath": "/my/path", "rawQueryString": "parameter1=value1¶meter1=value2¶meter2=value", "cookies": [ "cookie1", "cookie2" ], "headers": { "header1": "value1", "header2": "value1,value2" }, "queryStringParameters": { "parameter1": "value1,value2", "parameter2": "value" }, "requestContext": { "accountId": "123456789012", "apiId": "<urlid>", "authentication": null, "authorizer": { "iam": { "accessKey": "AKIA...", "accountId": "111122223333", "callerId": "AIDA...", "cognitoIdentity": null, "principalOrgId": null, "userArn": "arn:aws:iam::111122223333:user/example-user", "userId": "AIDA..." } }, "domainName": "<url-id>.lambda-url.us-west-2.on.aws", "domainPrefix": "<url-id>", "http": { "method": "POST", "path": "/my/path", "protocol": "HTTP/1.1", "sourceIp": "123.123.123.123", "userAgent": "agent" }, "requestId": "id", "routeKey": "$default", "stage": "$default", "time": "12/Mar/2020:19:03:58 +0000", "timeEpoch": 1583348638390 }, "body": "Hello from client!", "pathParameters": null, "isBase64Encoded": false, "stageVariables": null }
Parameter | Deskripsi | Contoh |
---|---|---|
|
Versi format payload untuk acara ini. Fungsi Lambda URLs saat ini mendukung format payload versi 2.0. |
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda menetapkan ini |
|
|
Jalur permintaan. Misalnya, jika URL permintaannya |
|
|
String mentah yang berisi parameter string query permintaan. Karakter yang didukung termasuk |
|
|
Array yang berisi semua cookie yang dikirim sebagai bagian dari permintaan. |
|
|
Daftar header permintaan, disajikan sebagai pasangan kunci-nilai. |
|
|
Parameter kueri untuk permintaan. Misalnya, jika URL permintaannya |
|
|
Objek yang berisi informasi tambahan tentang permintaan, seperti |
|
|
Akun AWS ID pemilik fungsi. |
|
|
ID fungsiURL. |
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda mengatur ini ke. |
|
|
Objek yang berisi informasi tentang identitas pemanggil, jika fungsi URL menggunakan jenis |
|
|
Kunci akses identitas penelepon. |
|
|
Akun AWS ID identitas penelepon. |
|
|
ID (ID pengguna) pemanggil. |
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda menyetel ini ke |
|
|
ID organisasi utama yang terkait dengan identitas penelepon. |
|
|
Nama Sumber Daya Amazon pengguna (ARN) dari identitas pemanggil. |
|
|
ID pengguna dari identitas pemanggil. |
|
|
Nama domain dari fungsi tersebutURL. |
|
|
Awalan domain dari fungsi URL tersebut. |
|
|
Objek yang berisi rincian tentang HTTP permintaan. |
|
|
HTTPMetode yang digunakan dalam permintaan ini. Nilai yang valid termasuk |
|
|
Jalur permintaan. Misalnya, jika URL permintaannya |
|
|
Protokol permintaan. |
|
|
Alamat IP sumber dari TCP koneksi langsung membuat permintaan. |
|
|
Nilai header permintaan User-Agent. |
|
|
ID permintaan pemanggilan. Anda dapat menggunakan ID ini untuk melacak log pemanggilan yang terkait dengan fungsi Anda. |
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda menetapkan ini |
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda menetapkan ini |
|
|
Stempel waktu permintaan. |
|
|
Stempel waktu permintaan, dalam waktu zaman Unix. |
|
|
Tubuh permintaan. Jika jenis konten permintaan adalah biner, isi dikodekan base64. |
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda menyetel ini ke |
|
|
|
|
|
Fungsi URLs tidak menggunakan parameter ini. Lambda menyetel ini ke |
|
Format payload respon
Saat fungsi Anda mengembalikan respons, Lambda mem-parsing respons dan mengubahnya menjadi respons. HTTP Muatan respons fungsi memiliki format berikut:
{ "statusCode": 201, "headers": { "Content-Type": "application/json", "My-Custom-Header": "Custom Value" }, "body": "{ \"message\": \"Hello, world!\" }", "cookies": [ "Cookie_1=Value1; Expires=21 Oct 2021 07:48 GMT", "Cookie_2=Value2; Max-Age=78000" ], "isBase64Encoded": false }
Lambda menyimpulkan format respons untuk Anda. Jika fungsi Anda mengembalikan valid JSON dan tidak mengembalikan astatusCode
, Lambda mengasumsikan hal berikut:
-
statusCode
adalah200
. -
content-type
adalahapplication/json
. -
body
adalah respon fungsi. -
isBase64Encoded
adalahfalse
.
Contoh berikut menunjukkan bagaimana output fungsi Lambda Anda memetakan ke payload respons, dan bagaimana payload respons memetakan respons ke respons akhir. HTTP Ketika klien memanggil fungsi AndaURL, mereka melihat HTTP responsnya.
Contoh output untuk respon string
Keluaran fungsi Lambda | Output respons yang ditafsirkan | HTTPrespon (apa yang dilihat klien) |
---|---|---|
|
|
|
Contoh keluaran untuk JSON respons
Keluaran fungsi Lambda | Output respons yang ditafsirkan | HTTPrespon (apa yang dilihat klien) |
---|---|---|
|
|
|
Contoh keluaran untuk respons kustom
Keluaran fungsi Lambda | Output respons yang ditafsirkan | HTTPrespon (apa yang dilihat klien) |
---|---|---|
|
|
|
Cookie
Untuk mengembalikan cookie dari fungsi Anda, jangan menambahkan set-cookie
header secara manual. Sebagai gantinya, sertakan cookie di objek payload respons Anda. Lambda secara otomatis menafsirkan ini dan menambahkannya sebagai set-cookie
header dalam HTTP respons Anda, seperti pada contoh berikut.
Keluaran fungsi Lambda | HTTPrespon (apa yang dilihat klien) |
---|---|
|
|