WebSocket APIreferensi template pemetaan untuk API Gateway - APIGerbang Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

WebSocket APIreferensi template pemetaan untuk API Gateway

Bagian ini merangkum kumpulan variabel yang saat ini didukung WebSocket APIs di API Gateway.

Parameter Deskripsi
$context.connectionId

ID unik untuk koneksi yang dapat digunakan untuk membuat callback ke klien.

$context.connectedAt

Waktu koneksi yang diformat Epoch.

$context.domainName

Sebuah nama domain untuk WebSocket API Ini dapat digunakan untuk membuat callback ke klien (bukan nilai hard-coded).

$context.eventType

Jenis acara:CONNECT,MESSAGE, atauDISCONNECT.

$context.messageId

ID sisi server unik untuk pesan. Hanya tersedia ketika $context.eventType adaMESSAGE.

$context.routeKey

Kunci rute yang dipilih.

$context.requestId

Sama seperti$context.extendedRequestId.

$context.extendedRequestId ID yang dibuat secara otomatis untuk API panggilan, yang berisi informasi yang lebih berguna untuk debugging/pemecahan masalah.
$context.apiId

APIGateway pengenal menetapkan ke Anda. API

$context.authorizer.principalId

Identifikasi pengguna utama yang terkait dengan token yang dikirim oleh klien dan dikembalikan dari API Gateway Lambda authorizer (sebelumnya dikenal sebagai otorisasi khusus) fungsi Lambda.

$context.authorizer.property

Nilai stringifikasi dari pasangan nilai kunci yang ditentukan dari context peta dikembalikan dari fungsi otorisasi Gateway API Lambda. Misalnya, jika otorisasi mengembalikan context peta berikut:

"context" : { "key": "value", "numKey": 1, "boolKey": true }

memanggil $context.authorizer.key mengembalikan "value" string, memanggil $context.authorizer.numKey mengembalikan "1" string, dan memanggil $context.authorizer.boolKey mengembalikan "true" string.

$context.error.messageString Nilai yang dikutip dari$context.error.message, yaitu"$context.error.message".
$context.error.validationErrorString

Sebuah string yang berisi pesan kesalahan validasi rinci.

$context.identity.accountId

ID AWS akun yang terkait dengan permintaan.

$context.identity.apiKey

Kunci API pemilik yang terkait dengan permintaan berkemampuan kunciAPI.

$context.identity.apiKeyId ID API kunci yang terkait dengan permintaan berkemampuan kunci API
$context.identity.caller

Pengidentifikasi utama penelepon yang membuat permintaan.

$context.identity.cognitoAuthenticationProvider

Daftar dipisahkan koma dari semua penyedia otentikasi Amazon Cognito yang digunakan oleh penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito.

Misalnya, untuk identitas dari kumpulan pengguna Amazon Cognito, cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

Untuk informasi tentang penyedia autentikasi Amazon Cognito yang tersedia, lihat Menggunakan Identitas Federasi di Panduan Pengembang Amazon Cognito.

$context.identity.cognitoAuthenticationType

Jenis otentikasi Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito. Nilai yang mungkin termasuk authenticated untuk identitas yang diautentikasi dan unauthenticated untuk identitas yang tidak diautentikasi.

$context.identity.cognitoIdentityId

ID identitas Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito.

$context.identity.cognitoIdentityPoolId

ID kumpulan identitas Amazon Cognito dari penelepon yang membuat permintaan. Hanya tersedia jika permintaan ditandatangani dengan kredenal Amazon Cognito.

$context.identity.sourceIp

Alamat IP sumber dari TCP koneksi langsung membuat permintaan ke titik akhir API Gateway.

$context.identity.user

Pengidentifikasi utama pengguna yang membuat permintaan.

$context.identity.userAgent

Agen Pengguna API penelepon.

$context.identity.userArn

Nama Sumber Daya Amazon (ARN) dari pengguna efektif yang diidentifikasi setelah otentikasi.

$context.requestTime Waktu permintaan CLFyang diformat ()dd/MMM/yyyy:HH:mm:ss +-hhmm.
$context.requestTimeEpoch Waktu permintaan yang diformat Epoch, dalam milidetik.
$context.stage

Tahap penyebaran API panggilan (misalnya, Beta atau Prod).

$context.status

Status respon.

$input.body

Mengembalikan payload mentah sebagai string.

$input.json(x)

Fungsi ini mengevaluasi JSONPath ekspresi dan mengembalikan hasil sebagai JSON string.

Misalnya, $input.json('$.pets') akan mengembalikan JSON string yang mewakili struktur hewan peliharaan.

Untuk informasi selengkapnya tentangJSONPath, lihat JSONPathatau JSONPathuntuk Java.

$input.path(x)

Mengambil JSONPath ekspresi string (x) dan mengembalikan representasi JSON objek dari hasil. Ini memungkinkan Anda untuk mengakses dan memanipulasi elemen payload secara native di Apache Velocity Template Language (). VTL

Misalnya, jika ekspresi $input.path('$.pets') mengembalikan objek seperti ini:

[ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]

$input.path('$.pets').count()akan kembali"3".

Untuk informasi selengkapnya tentangJSONPath, lihat JSONPathatau JSONPathuntuk Java.

$stageVariables.<variable_name>

<variable_name> merupakan nama variabel tahap.

$stageVariables['<variable_name>']

<variable_name> mewakili setiap nama variabel tahap.

${stageVariables['<variable_name>']}

<variable_name> mewakili setiap nama variabel tahap.

$util.escapeJavaScript()

Melarikan diri dari karakter dalam string menggunakan aturan JavaScript string.

catatan

Fungsi ini akan mengubah tanda kutip tunggal biasa (') menjadi yang keluar (\'). Namun, tanda kutip tunggal yang lolos tidak valid diJSON. Jadi, ketika output dari fungsi ini digunakan dalam JSON properti, Anda harus mengubah tanda kutip tunggal yang diloloskan (\') kembali ke tanda kutip tunggal biasa ('). Ini ditunjukkan dalam contoh berikut:

$util.escapeJavaScript(data).replaceAll("\\'","'")
$util.parseJson()

Mengambil “stringified” JSON dan mengembalikan representasi objek dari hasilnya. Anda dapat menggunakan hasil dari fungsi ini untuk mengakses dan memanipulasi elemen payload secara native di Apache Velocity Template Language (). VTL Misalnya, jika Anda memiliki muatan berikut:

{"errorMessage":"{\"key1\":\"var1\",\"key2\":{\"arr\":[1,2,3]}}"}

dan gunakan template pemetaan berikut

#set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage'))) { "errorMessageObjKey2ArrVal" : $errorMessageObj.key2.arr[0] }

Anda akan mendapatkan output sebagai berikut:

{ "errorMessageObjKey2ArrVal" : 1 }
$util.urlEncode()

Mengkonversi string ke dalam format “aplikasi/x-www-form-urlencoded”.

$util.urlDecode()

Mendekode string “aplikasi/x-www-form-urlencoded”.

$util.base64Encode()

Mengkodekan data ke dalam string yang dikodekan base64.

$util.base64Decode()

Mendekode data dari string yang dikodekan base64.