

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 kustom
<a name="runtimes-api"></a>

AWS Lambda [menyediakan API HTTP untuk [runtime kustom](runtimes-custom.md) untuk menerima acara pemanggilan dari Lambda dan mengirim data respons kembali dalam lingkungan eksekusi Lambda.](lambda-runtimes.md) Bagian ini berisi referensi API untuk API runtime Lambda.

**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 secara bersamaan `/next` dan `/response` permintaan hingga batas yang dikonfigurasi`AWS_LAMBDA_MAX_CONCURRENCY`. Hal ini memungkinkan beberapa pemanggilan untuk diproses secara bersamaan dalam lingkungan eksekusi tunggal. Untuk informasi selengkapnya tentang Instans Terkelola, lihat[Memahami lingkungan eksekusi Instans Terkelola Lambda](lambda-managed-instances-execution-environment.md).

![\[Diagram arsitektur untuk lingkungan eksekusi.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/telemetry-api-concept-diagram.png)


Spesifikasi OpenAPI untuk versi API runtime **2018-06-01** tersedia di [runtime-api.zip](samples/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.

**Example Permintaan**  

```
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"
```

**Topics**
+ [Invokasi berikutnya](#runtimes-api-next)
+ [Respons invokasi](#runtimes-api-response)
+ [Kesalahan inisialisasi](#runtimes-api-initerror)
+ [Kesalahan invokasi](#runtimes-api-invokeerror)

## Invokasi berikutnya
<a name="runtimes-api-next"></a>

**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` – ID permintaan, yang mengidentifikasi permintaan pemicu invokasi fungsi.

  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](https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader). 

  Misalnya, `Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1`.
+ `Lambda-Runtime-Client-Context`— Untuk pemanggilan dari AWS Mobile SDK, data tentang aplikasi dan perangkat klien.
+ `Lambda-Runtime-Cognito-Identity`— Untuk pemanggilan dari AWS Mobile SDK, data tentang penyedia identitas Amazon Cognito.

Jangan atur waktu habis permintaan `GET` karena respons dapat tertunda. Antara saat Lambda melakukan bootstrap pada waktu pengoperasian dan saat waktu pengoperasian memiliki kejadian untuk dikembalikan, proses waktu pengoperasian mungkin dibekukan selama beberapa detik.

ID permintaan melacak invokasi di dalam Lambda. Gunakan untuk menentukan invokasi saat Anda mengirim respons.

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 IDs dan menentukan apakah akan melacak permintaan.

## Respons invokasi
<a name="runtimes-api-response"></a>

**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.

**Example permintaan berhasil**  

```
REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9
curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response"  -d "SUCCESS"
```

## Kesalahan inisialisasi
<a name="runtimes-api-initerror"></a>

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. 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

**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.

**Example 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 penampung. Keadaan yang tidak dapat dipulihkan. Runtime harus segera keluar.

**Example 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
<a name="runtimes-api-invokeerror"></a>

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

**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.

**Example 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 penampung. Keadaan yang tidak dapat dipulihkan. Runtime harus segera keluar.

**Example 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"
```