Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan API runtime Lambda untuk runtime khusus
AWS Lambda menyediakan HTTP API untuk runtime khusus untuk menerima peristiwa pemanggilan dari Lambda dan mengirim data respons kembali dalam lingkungan eksekusi Lamb da. Bagian ini berisi referensi API untuk Lambda runtime API.
Instans Terkelola Lambda mendukung permintaan bersamaan
Instans Terkelola Lambda menggunakan API runtime yang sama dengan fungsi Lambda (default). Perbedaan utamanya adalah Instans Terkelola dapat menerima /response permintaan secara bersamaan /next dan hingga AWS_LAMBDA_MAX_CONCURRENCY batas yang dikonfigurasi. Hal ini memungkinkan beberapa pemanggilan untuk diproses secara bersamaan dalam satu lingkungan eksekusi. Untuk informasi selengkapnya tentang Instans Terkelola, lihatMemahami lingkungan eksekusi Instans Terkelola Lambda.
Spesifikasi OpenAPI untuk versi API runtime 2018-06-01 tersedia di runtime-api.zip
Untuk membuat URL permintaan API, runtime mendapatkan titik akhir API dari variabel lingkungan AWS_LAMBDA_RUNTIME_API, menambahkan versi API, dan menambahkan jalur sumber daya yang diinginkan.
contoh Permintaan
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"
Metode API
Invokasi berikutnya
Jalur – /runtime/invocation/next
Metode – GET
Runtime mengirimkan pesan ini ke Lambda untuk meminta peristiwa invokasi. Isi respons berisi muatan dari invokasi, yang merupakan dokumen JSON yang berisi data kejadian dari pemicu fungsi. Header respons berisi data tambahan tentang invokasi.
Header respons
-
Lambda-Runtime-Aws-Request-Id— Peristiwa yang memicu pemanggilan fungsi. Sumber peristiwa menyediakan ID permintaan, atau Lambda menghasilkannya secara otomatis saat dicerna. Satu ID permintaan dapat mengakibatkan beberapa upaya pemanggilan. Gunakan di jalur URL saat mengirim respons atau kesalahan.Misalnya,
8476a536-e9f4-11e8-9739-2dfe598c3fcd. -
Lambda-Runtime-Deadline-Ms– Tanggal saat fungsi berakhir, dalam milidetik waktu Unix.Misalnya,
1542409706888. -
Lambda-Runtime-Invoked-Function-Arn– ARN dari fungsi, versi, atau alias Lambda yang ditentukan dalam invokasi.Misalnya,
arn:aws:lambda:us-east-2:123456789012:function:custom-runtime. -
Lambda-Runtime-Trace-Id– Header pelacakan AWS X-Ray.Misalnya,
Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1. -
Lambda-Runtime-Client-Context— Untuk pemanggilan dari SDK AWS Seluler, data tentang aplikasi klien dan perangkat. -
Lambda-Runtime-Cognito-Identity— Untuk pemanggilan dari SDK Seluler AWS , data tentang penyedia identitas Amazon Cognito. -
Lambda-Runtime-Invocation-Id— Pengidentifikasi unik untuk upaya pemanggilan ini.
Jangan atur waktu habis permintaan GET karena respons dapat tertunda. Antara saat Lambda mem-bootstrap runtime dan ketika runtime memiliki peristiwa untuk dikembalikan, proses runtime mungkin dibekukan selama beberapa detik.
ID permintaan (Lambda-Runtime-Aws-Request-Id) mengidentifikasi peristiwa unik. ID permintaan disediakan oleh sumber peristiwa atau dibuat secara otomatis oleh Lambda saat dicerna. Gunakan ID permintaan di jalur URL saat mengirim respons atau kesalahan.
ID pemanggilan (Lambda-Runtime-Invocation-Id) mewakili upaya pemanggilan tunggal untuk suatu peristiwa. ID permintaan tunggal dapat menghasilkan beberapa upaya pemanggilan, masing-masing dengan ID pemanggilan uniknya sendiri. Lambda menggunakan setiap ID pemanggilan tepat sekali dan tidak pernah menggunakannya kembali. Mengemakan nilai ini kembali /response dan men /error elepon. Header bersifat opsional untuk kompatibilitas mundur dengan runtime yang ada—menghilangkannya tidak memicu penolakan. Lambda hanya menolak 400 InvalidInvocationId saat header ada tetapi nilainya tidak cocok dengan pemanggilan aktif.
Header pelacakan berisi ID jejak, ID induk, dan keputusan penyampelan. Jika permintaan diambil sampelnya, permintaan diambil sampelnya oleh Lambda atau layanan hulu. Waktu pengoperasian harus menetapkan _X_AMZN_TRACE_ID dengan nilai header. X-Ray SDK membaca ini untuk mendapatkan ID dan menentukan apakah akan melacak permintaan.
Respons invokasi
Jalur – /runtime/invocation/AwsRequestId/response
Metode – POST
Setelah fungsi selesai dijalankan, runtime mengirimkan respon invokasi untuk Lambda. Untuk invokasi sinkron, Lambda mengirimkan respons ke klien.
Minta header
Lambda-Runtime-Invocation-Id— Gema kembali nilai yang diterima dari/next. Lambda menolak permintaan 400 InvalidInvocationId jika nilainya tidak cocok dengan pemanggilan aktif.
contoh permintaan berhasil
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9 INVOCATION_ID=<value from Lambda-Runtime-Invocation-Id response header> curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "SUCCESS" --header "Lambda-Runtime-Invocation-Id: $INVOCATION_ID"
Kesalahan inisialisasi
Jika fungsi mengembalikan kesalahan atau runtime mengalami kesalahan saat inisialisasi, runtime menggunakan metode ini untuk melaporkan kesalahan ke Lambda.
Jalur – /runtime/init/error
Metode – POST
Header
Lambda-Runtime-Function-Error-Type- Jenis kesalahan yang ditemui runtime. Header ini opsional. Lambda menerima nilai string apa pun; kami sarankan menggunakan format<Category.Reason>, di mana Kategori adalah Runtime atau Function dan Alasan dimulai dengan huruf besar. Contoh:
Runtime.NoSuchHandlerRuntime.APIKeyNotFoundRuntime.ConfigInvalidRuntime.BeforeSnapshotError(untuk SnapStart)Runtime.UnknownReason
Nilai yang tidak cocok dengan pola ini dinormalisasi ke Runtime.Unknown atauFunction.Unknown.
Parameter tubuh
ErrorRequest – Informasi tentang kesalahan. Wajib: tidak.
Bidang ini adalah objek JSON dengan struktur berikut:
{ errorMessage: string (text description of the error), errorType: string, stackTrace: array of strings }
Perhatikan bahwa Lambda menerima nilai apa pun untuk errorType.
Contoh berikut menunjukkan pesan kesalahan fungsi Lambda ketika fungsi tidak dapat mengurai data peristiwa yang disediakan dalam invokasi.
contoh Kesalahan fungsi
{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException", "stackTrace": [ ] }
Parameter isi respons
StatusResponse– String. Informasi status, dikirim dengan kode respons 202.ErrorResponse- Informasi kesalahan tambahan, dikirim dengan kode respons kesalahan. ErrorResponse berisi jenis kesalahan dan pesan kesalahan.
Kode respons
-
202 – Diterima
-
403 – Dilarang
-
500 — Kesalahan kontainer. Non-recoverable negara. Runtime harus segera keluar.
contoh permintaan kesalahan inisialisasi
ERROR="{\"errorMessage\" : \"Failed to load function.\", \"errorType\" : \"InvalidFunctionException\"}" curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"
Kesalahan invokasi
Jika fungsi mengembalikan kesalahan atau runtime mengalami kesalahan, runtime menggunakan metode ini untuk melaporkan kesalahan ke Lambda.
Jalur – /runtime/invocation/AwsRequestId/error
Metode – POST
Header
Lambda-Runtime-Function-Error-Type- Jenis kesalahan yang ditemui runtime. Wajib: tidak.
Header ini terdiri dari nilai string. Lambda menerima string apa pun, tetapi kami merekomendasikan format <category.reason>. Contoh:
Runtime.NoSuchHandler
Runtime.APIKeyNotFound
Runtime.ConfigInvalid
Runtime.UnknownReason
Lambda-Runtime-Invocation-Id— Gema kembali nilai yang diterima dari/next. Lambda menolak permintaan 400 InvalidInvocationId jika nilainya tidak cocok dengan pemanggilan aktif.
Parameter tubuh
ErrorRequest – Informasi tentang kesalahan. Wajib: tidak.
Bidang ini adalah objek JSON dengan struktur berikut:
{ errorMessage: string (text description of the error), errorType: string, stackTrace: array of strings }
Perhatikan bahwa Lambda menerima nilai apa pun untuk errorType.
Contoh berikut menunjukkan pesan kesalahan fungsi Lambda ketika fungsi tidak dapat mengurai data peristiwa yang disediakan dalam invokasi.
contoh Kesalahan fungsi
{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException", "stackTrace": [ ] }
Parameter isi respons
StatusResponse– String. Informasi status, dikirim dengan kode respons 202.ErrorResponse- Informasi kesalahan tambahan, dikirim dengan kode respons kesalahan. ErrorResponse berisi jenis kesalahan dan pesan kesalahan.
Kode respons
-
202 – Diterima
-
400 – Permintaan Buruk
-
403 – Dilarang
-
500 — Kesalahan kontainer. Non-recoverable negara. Runtime harus segera keluar.
contoh permintaan kesalahan
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9 ERROR="{\"errorMessage\" : \"Error parsing event data.\", \"errorType\" : \"InvalidEventDataException\"}" curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"
After-Restore (hanya berlaku untuk SnapStart)
Jalur – /runtime/restore/next
Metode – GET
Setelah kait pra-snapshot selesai, runtime memang GET /runtime/restore/next gil. Ini adalah panggilan pemblokiran gaya iterator, mirip dengan/runtime/invocation/next, yang memberi sinyal ke Lambda bahwa runtime siap untuk lingkungan eksekusi untuk di-snapshot. Permintaan memblokir hingga Lambda mengembalikan lingkungan eksekusi dari snapshot, kemudian mengembalikan respons HTTP 200 dengan tubuh kosong.
Header
Tidak ada header yang diperlukan.
Kode respons
-
200 — Lambda memulihkan lingkungan eksekusi. Jalankan kait setelah pemulihan. Badan respons kosong.
-
403 — Dilarang. Runtime tidak dalam keadaan yang memungkinkan
/restore/next(misalnya, runtime telah memanggil/invocation/nextatau/restore/next). -
404 - SnapStart tidak diaktifkan untuk fungsi ini.
-
500 – Kesalahan penampung. Lingkungan eksekusi berada dalam keadaan tidak dapat dipulihkan. Keluar dari proses runtime.
Sintaksis Permintaan
GET /2018-06-01/runtime/restore/next HTTP/1.1 Host: ${AWS_LAMBDA_RUNTIME_API}
Sintaksis Respons
HTTP/1.1 200 OK Content-Length: 0
catatan
Jangan menyetel soket sisi klien atau batas waktu baca pada permintaan API Runtime ini (atau lainnya). Ini adalah panggilan pemblokiran gaya iterator; Lambda membekukan lingkungan eksekusi saat permintaan terbuka. Permintaan dapat tetap terbuka selama masa pakai snapshot (berpotensi berhari-hari, berminggu-minggu, atau lebih lama) tanpa koneksi dianggap tidak aktif dari layanan Lambda.
Kesalahan pemulihan (hanya berlaku untuk SnapStart)
Jika hook setelah pemulihan gagal atau runtime mengalami kesalahan selama pemulihan, runtime menggunakan metode ini untuk melaporkan kesalahan ke Lambda. Lambda gagal dalam pemanggilan dalam penerbangan dan meruntuhkan lingkungan eksekusi.
Jalur – /runtime/restore/error
Metode – POST
Header
Lambda-Runtime-Function-Error-Type- Jenis kesalahan yang ditemui runtime. Header ini opsional. Lambda menerima nilai string apa pun; kami sarankan menggunakan format<Category.Reason>, di mana Kategori adalah Runtime atau Function dan Alasan dimulai dengan huruf besar (misalnya,Runtime.AfterRestoreError). Nilai yang tidak cocok dengan pola ini dinormalisasi ke Runtime.Unknown atauFunction.Unknown.
Kode respons
-
202 - Diterima. Badan responnya adalah
{"status":"OK"}. Runtime harus keluar dari proses. -
403 — Dilarang. Runtime tidak dalam keadaan yang memungkinkan
/restore/error(misalnya,/restore/nextbelum dipanggil). -
404 - SnapStart tidak diaktifkan untuk fungsi ini.
-
500 – Kesalahan penampung. Lingkungan eksekusi berada dalam keadaan tidak dapat dipulihkan. Keluar dari proses runtime.
contoh Contoh permintaan
POST /2018-06-01/runtime/restore/error HTTP/1.1 Host: ${AWS_LAMBDA_RUNTIME_API} Lambda-Runtime-Function-Error-Type: Runtime.AfterRestoreError
contoh Contoh tanggapan
HTTP/1.1 202 Accepted Content-Type: application/json {"status":"OK"}