AWS API Gateway beberapa Permintaan Integrasi per Metode

Sumber daya saya /api memiliki metode POST yang memproksi tubuh ke Kinesis Firehose (dan kemudian ke ES). Pada saat yang sama saya ingin itu memicu fungsi Lambda.

Saya mencoba menambahkan metode tambahan APAPUN untuk memicu fungsi Lambda tetapi API Gateway tampaknya lebih memilih penangan POST.

Saya sadar bahwa saya dapat memicu Lambda di POST dan mengirimkan dari fungsi Lambda ke Firehose tetapi saya lebih suka keduanya independen satu sama lain.


person Glaslos    schedule 24.08.2017    source sumber
comment
Hanya ingin tahu mengapa Anda tidak ingin memiliki Lambda (tidak perlu yang ingin Anda gunakan) sebagai lapisan tengah. Misalnya, permintaan integrasi memanggil Lambda X yang merupakan beberapa baris. Lambda X memanggil Lambda asli Anda dan memicu kinesis? Selain itu, apakah Anda perlu mengumpulkan/menunggu tanggapan/status dari keduanya atau Anda hanya ingin mengaktifkannya?   -  person Nicholas    schedule 24.08.2017
comment
Saya tidak punya Lambda asli, API Gateway mengirim langsung ke Kinesis.   -  person Glaslos    schedule 25.08.2017
comment
sudahkah Anda mempertimbangkan fungsi langkah? docs.aws.amazon.com/step- fungsi/terbaru/dg/   -  person Nicholas    schedule 25.08.2017


Jawaban (1)


API Gateway tidak membagi permintaan menjadi beberapa tindakan bersamaan. Metode ANY berarti "metode apa pun tanpa metode yang ditentukan". Karena Anda juga telah menentukan POST, POST mana pun tidak akan melihat ANY.

Untuk melakukan apa yang tampaknya Anda coba -- menjalankan fungsi Lambda dan melakukan panggilan ke Kinesis API, Anda perlu menulis fungsi Lambda awal yang berfungsi sebagai pembungkus dan melakukan kedua tindakan -- kirim permintaan ke Kinesis dan kirim permintaan ke Lambda (untuk memanggil fungsi Lambda lainnya) -- secara asinkron jika logika bisnis mengizinkannya -- lalu susun hasilnya menjadi satu respons koheren yang memenuhi kebutuhan Anda.

Fungsi Lambda yang pertama ini tidak harus dalam bahasa yang sama dengan yang kedua, jadi misalnya, jika fungsi Lambda yang ada ada di Java, fungsi wrapper dapat ditulis dalam Node, tanpa implikasi kinerja negatif, karena fungsi tersebut dijalankan secara independen di sisi lain dari Lambda API.

person Michael - sqlbot    schedule 24.08.2017
comment
Terima kasih telah mengkonfirmasi pengamatan saya. Alasan utama saya ingin menghindari lambda tambahan adalah integrasi Kinesis yang rapi ke dalam API Gateway. Juga dua tindakan (Kinesis dan Lambda) yang ingin saya lakukan sepenuhnya independen dan tidak ada respons yang diharapkan dari keduanya. Saya akan menerima jawaban Anda dalam beberapa jam. - person Glaslos; 25.08.2017