Ekstensi AWS Lambda

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Versi: 1.1.1

Menjalankan fungsi yang di-deploy di AWS Lambda. Gunakan ekstensi ini untuk mencantumkan fungsi yang tersedia di akun AWS Anda, lalu memanggil fungsi tertentu.

Prasyarat

Sebelum menggunakan ekstensi dari proxy API menggunakan kebijakan ExtensionCallout, Anda harus:

Tentang AWS Lambda

AWS Lambda menyediakan lingkungan komputasi tempat Anda dapat menjalankan fungsi dalam salah satu bahasa yang didukung.

Tindakan

panggil

Memanggil fungsi di AWS Lambda.

Untuk detail selengkapnya tentang parameter, lihat dokumentasi AWS Lambda Invoke.

Sintaksis

<Action>invoke</Action>
<Input><![CDATA[
{
  "functionName" : "function-on-lambda",
  "invocationType" : "RequestResponse | Event | DryRun",
  "logType" : "None | Tail",
  "qualifier" : "Version-or-alias",
  "payload" : "Escaped-JSON-string"
}
]]>
</Input>
<Output>flow-variable</Output>

Contoh

<Action>invoke</Action>
<Input><![CDATA[
{
  "functionName" : "helloWorld",
  "invocationType" : "RequestResponse",
  "logType" : "None",
  "qualifier" : "$LATEST",
  "payload" : "{ \"key\": \"val\" }"
}
]]>
</Input>
<Output>function.response.value</Output>

Parameter permintaan

Untuk detail selengkapnya tentang parameter, lihat dokumentasi AWS Lambda Invoke.

Parameter Deskripsi Jenis Default Wajib
functionName Nama fungsi yang akan dipanggil. String. Tidak ada. Ya.
invocationType Menentukan apakah akan memanggil fungsi secara sinkron, asinkron, atau memvalidasi nilai parameter. String. Tidak ada. Tidak.
logType Opsional, menentukan apakah akan menampilkan 4 KB terakhir data log. String Tidak ada. Tidak.
penentu Versi alias dari fungsi Lambda yang dipublikasikan. String Tidak ada. Tidak.
payload JSON sebagai input ke fungsi Lambda. String Tidak ada. Tidak.

Respons

Array fungsi yang berisi detail versi tertentu. Berikut adalah contohnya:

{
  "StatusCode" : 200,
  "Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}

Properti respons

Properti Deskripsi Jenis Default
StatusCode . Bilangan Bulat Tidak ada.
Payload JSON yang mewakili objek yang ditampilkan oleh fungsi. Hanya ada jika jenis pemanggilan adalah RequestResponse. Untuk error fungsi, pesan ini berisi pesan deskripsi error. String Tidak ada.

listFunctions

Mencantumkan fungsi AWS Lambda yang tersedia.

Untuk detail selengkapnya tentang parameter, lihat dokumentasi AWS Lambda ListFunctions.

Sintaksis

<Action>listFunctions</Action>
<Input><![CDATA[
{
  "masterRegion" : "ALL | [a-z]{2}(-gov)?-[a-z]+-\d{1}",
  "functionVersion" : "ALL",
  "maxItems" : 1 - 10000
}
]]>
</Input>
<Output>flow-variable</Output>

Contoh

<Action>listFunctions</Action>
<Input><![CDATA[
{
  "masterRegion" : "ALL",
  "functionVersion" : "ALL",
  "maxItems" : 50
}
]]>
</Input>
<Output>function.list</Output>

Parameter permintaan

Untuk detail selengkapnya tentang parameter, lihat dokumentasi AWS Lambda ListFunctions.

Parameter Deskripsi Jenis Default Wajib
masterRegion Region (seperti us-east-2) yang fungsinya harus dicantumkan; ALL untuk menyertakan fungsi dari region mana pun. Jika ditentukan, Anda juga harus menentukan functionVersion. String Tidak ada. Tidak.
functionVersion Tentukan ALL untuk menampilkan semua versi yang dipublikasikan. Jika tidak ditentukan, hanya ARN versi terbaru yang belum dipublikasikan yang akan ditampilkan. String Tidak ada. Tidak.
maxItems Jumlah fungsi maksimum yang akan ditampilkan dalam respons. Harus lebih besar dari 0. Nilai maksimum absolut yang dapat ditampilkan adalah 50. Bilangan Bulat Tidak ada. Tidak.

Respons

JSON yang mewakili array fungsi yang berisi detail versi tertentu.

[
  {
    "FunctionName": "helloWorld",
    "FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
    "Runtime": "nodejs",
    "Role": "arn:aws:iam::012345:role/service-role/fakeRole",
    "Handler": "index.handler",
    "Description": "A Hello World lambda function.",
    "Version": "$LATEST"
  },
  {
    "FunctionName": "helloWorld",
    "FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
    "Runtime": "nodejs",
    "Role": "arn:aws:iam::012345:role/service-role/fakeRole",
    "Handler": "index.handler",
    "Description": "A Hello World lambda function.",
    "Version": "1"
  }
]

Properti respons

Properti Deskripsi Jenis Default
Deskripsi Deskripsi fungsi. String. Tidak ada.
Handler Fungsi yang dipanggil Lambda untuk mulai menjalankan fungsi. String. Tidak ada.
FunctionArn Amazon Resource Name (Nama Sumber Daya Amazon) fungsi. String. Tidak ada.
FunctionName Nama fungsi. String. Tidak ada.
Role Peran eksekusi fungsi. String. Tidak ada.
Runtime Lingkungan runtime fungsi. String. Tidak ada.
Versi Versi fungsi. String. Tidak ada.

Referensi Konfigurasi

Gunakan hal berikut saat Anda mengonfigurasi dan men-deploy ekstensi ini untuk digunakan di proxy API. Untuk langkah-langkah mengonfigurasi ekstensi menggunakan konsol Apigee, lihat Menambahkan dan mengonfigurasi ekstensi.

Properti ekstensi umum

Properti berikut ada untuk setiap ekstensi.

Properti Deskripsi Default Wajib
name Nama yang Anda berikan pada konfigurasi ekstensi ini. Tidak ada Ya
packageName Nama paket ekstensi seperti yang diberikan oleh Apigee Edge. Tidak ada Ya
version Nomor versi untuk paket ekstensi tempat Anda mengonfigurasi ekstensi. Tidak ada Ya
configuration Nilai konfigurasi khusus untuk ekstensi yang Anda tambahkan. Lihat Properti untuk paket ekstensi ini Tidak ada Ya

Properti untuk paket ekstensi ini

Tentukan nilai untuk properti konfigurasi berikut yang khusus untuk ekstensi ini.

Properti Deskripsi Default Wajib
Region Lambda AWS Nama region tempat fungsi Anda di-deploy. Misalnya: us-east-1. Tidak ada. Ya.
Kredensial Saat dimasukkan di konsol Apigee Edge, file ini adalah file JSON yang berisi ID kunci akses dan kunci akses Amazon Anda dalam bentuk berikut:

{
"accessKeyId" : "access-key-ID",
"secretAccessKey" : "secret-access-key"
}

Saat dikirim melalui API pengelolaan, nilai tersebut adalah nilai berenkode base64 yang dihasilkan dari file JSON kunci tersebut.
Tidak ada. Ya.