Bekerja dengan Amazon API Gateway

Fungsi AWS Lambda dapat diaktifkan HTTPSurl. Itu bisa dilakukan di GET, POST, PUT. Ketika url HTTPS dipanggil, fungsi AWS Lambda juga dapat dipicu dan data diteruskan ke HTTPS menggunakanget/post dapat disediakan di dalam AWS Lambda untuk digunakan untuk menyisipkan di DynamoDB atau untuk mengirim email, dll.

Bab ini membahas secara detail tentang berbagai proses yang terlibat dalam pekerjaan dengan AWS lambda dan API Gateway.

Proses yang terlibat

Berikut ini adalah proses yang terlibat dalam bekerja dengan AWS lambda dan API Gateway -

  • Buat peran IAM untuk izin
  • Buat fungsi lambda AWS
  • Buat API Gateway
  • Tautkan fungsi lambda ke gerbang api
  • Meneruskan data ke api gateway

Diagram dasar yang menjelaskan cara kerja gateway API dan AWS Lambda diberikan di sini -

Proses ini dijelaskan lebih rinci dalam bab ini dengan screenshot yang relevan.

Buat peran IAM untuk izin

Dari layanan Amazon seperti yang ditunjukkan di bawah ini, pilih IAM untuk membuat peran yang akan digunakan oleh fungsi Lambda.

Buka IAM dan pilih Roles dari bagian sisi kiri seperti yang ditunjukkan di bawah ini -

Klik Create role untuk fungsi Lambda.

Pilih Lambda dan klik Permissionsdi dasar. Pilih izin yang diperlukan untuk API Gateway dan Lambda.

Cari API gateway dalam pencarian dan itu akan mencantumkan Anda semua izin terkait. Di sini kami telah memilih akses penuh ke gateway API seperti yang ditunjukkan di bawah ini -

Sekarang, cari API gateway dan itu akan mencantumkan Anda semua izin terkait. Di sini kami telah memilih akses penuh ke gateway API seperti yang ditunjukkan di bawah ini -

Anda juga harus mengulangi proses yang sama untuk Kebijakan.

Setelah Anda selesai memilih kebijakan yang diperlukan, klik Reviewuntuk langkah selanjutnya. Masukkan nama peran sesuai pilihan Anda seperti yang ditunjukkan di bawah ini -

Ini menampilkan kebijakan yang dilampirkan ke peran tersebut. KlikCreate role dan kita selesai dengan pembuatan peran dan dapat melanjutkan dengan fungsi lambda.

Buat Fungsi AWS Lambda

Buka layanan AWS dan klik layanan lambda untuk membuat fungsi untuk menghubungkannya dengan gateway api.

Layar UI untuk fungsi Lambda ditampilkan di bawah ini. KlikCreate function tombol untuk melanjutkan dengan pembuatan fungsi Lambda.

Masukkan nama fungsinya dan pilih role yang sudah ada yang sudah kita buat di atas.

Ini berkedip pesan bahwa fungsi dengan nama lambdawithapigateway berhasil dibuat.

Perhatikan bahwa di sini kita akan menggunakan nodejsruntime untuk menulis kode. Kode AWS denganhelloworld pesan seperti yang ditunjukkan di bawah ini -

Kode AWS Lambda ada di index.jsmengajukan. Fungsi yang disebut handler memiliki parameter yaituevents, context dan callback.

Fungsi callback pada dasarnya memiliki error dan pesan sukses. Perhatikan bahwa di sini kami tidak memiliki kode terkait kesalahan, jadi null dilewatkan dan pesan sukses adalahHelloWorld from lambda.

Terakhir, simpan perubahan yang ditambahkan dan mari kita lanjutkan untuk menambahkan fungsi Lambda ke gateway API.

Buat API Gateway

Masuk ke akun AWS Anda dan buka API Gateway seperti yang ditunjukkan di bawah ini -

Klik API Gateway dan itu akan membawa Anda ke layar di mana gateway API baru dapat dibuat.

Klik Create API dan tambahkan detail seperti yang ditunjukkan di bawah ini -

Klik Create APItombol di sisi kanan layar. Ini akan menampilkan API yang baru dibuat di sisi kiri layar.

Klik Actions tarik-turun untuk membuat sumber daya baru untuk API.

Sekarang, buat sumber daya baru seperti yang ditunjukkan di bawah ini -

Masukkan Resource Nameseperti gambar dibawah. Anda akan melihat nama sumber daya yang dimasukkan di url yang dibuat di bagian akhir. KlikCreate Resource dan Anda akan melihatnya di layar sebagai berikut -

Menambahkan GET/POSTmetode ke sumber daya yang dibuat seperti yang ditunjukkan di bawah ini. Pilih metode dariActions dropdown.

Klik GET metode untuk menambahkan metode ke API.

Langkah selanjutnya adalah integrasi yang akan mengintegrasikannya dengan fungsi Lambda. Sekarang tambahkan fungsi Lambda ke dalamnya seperti yang ditunjukkan di bawah ini -

Tautkan Fungsi Lambda ke API Gateway

Pilih fungsi lambda yang dibuat sebelumnya.

Simpan perubahan dan Anda dapat melihat kotak dialog yang meminta izin seperti yang ditunjukkan di bawah ini -

Klik OKatas izinnya. Ini adalah detail eksekusi antara permintaan HTTP gateway API dan fungsi Lambda -

Sekarang, mari kita terapkan perubahan API gateway. Untuk tujuan ini, kita perlu memilih fileDeploy API dari Actions dropdown seperti yang ditunjukkan di bawah ini -

Pilih Deploy API. Ini akan meminta status penerapan. PilihNew Stage dari dropdown Deployment stage dan tambahkan nama panggung sebagai Production.

Klik Deploy tombol dan itu akan mengarahkan Anda ke url seperti yang ditunjukkan di bawah ini -

Pilih GETmetode dari sisi kiri untuk mendapatkan url. Buka url di tab baru untuk melihat pesan dari fungsi Lambda.

Ini adalah contoh dasar bekerja dengan AWS Lambda dan AWS API Gateway. Dalam contoh di atas, kami telah melakukan hardcode pesan dalam fungsi Lambda.

Sekarang, mari kita ambil detail pesan dari API Gateway. Jika panggilan HTTPS harus dipanggil dari domain berbeda, misalnya panggilan AJAX ke API, kita perlu mengaktifkan CORS untuk gateway API yang dibuat.

Pilih sumber daya yang dibuat untuk API dan klik Actions tarik-turun -

Sekarang, Enable CORS akan membuka layar berikut -

Anda dapat menggunakan beberapa metode untuk MENGAKTIFKAN CORS. Access-Control-Allow-Origin ditandai sebagai * yang berarti memungkinkan untuk mendapatkan konten dari gateway API dari domain mana pun.

Anda juga dapat menentukan nama domain yang ingin Anda gunakan dengan API. KlikEnable CORS and replace existing CORS headers tombol dan itu akan menampilkan pesan konfirmasi seperti yang ditunjukkan di bawah ini -

Klik Yes, replace existing valuestombol untuk mengaktifkannya. ItuEnable CORS layar terlihat seperti yang ditunjukkan di bawah ini -

Meneruskan Data ke API Gateway

Buka API yang dibuat di API Gateway displayhelloworld seperti yang ditunjukkan di bawah ini -

Klik Integration Request untuk mengirim data seperti yang ditunjukkan di bawah ini -

Memilih Body Mapping Templates dan tambahkan Content-Type untuk contoh ini sebagai application/json. Klik pada jenis konten yang ditambahkan tambahkan rincian sebagai berikut -

Sekarang tambahkan template dalam format JSON seperti yang ditunjukkan di bawah ini -

Perhatikan bahwa kami telah mengambil pesan sebagai parameter untuk mendapatkan data dari API Gateway dan membagikannya dengan AWS Lambda. Sintaks untuk mendapatkan detailnya seperti gambar di atas.

Sekarang, terapkan API untuk membuat perubahan tersedia di URL API Gateway. Untuk ini, kita perlu mengubah fungsi Lambda untuk menampilkan data berdasarkan URL API Gateway. Kode untuk fungsi Lambda diberikan di bawah ini. Perhatikan bahwa kami mengambil pesan dari acara dan meneruskan ke callback.

exports.handler = (event, context, callback) => {
   let message = event.message;
   callback(null, message);
};

Sekarang, simpan perubahan di Lambda dan tekan URL untuk melihat perubahannya. Amati tangkapan layar yang diberikan di bawah ini -

Klik URL seperti yang ditunjukkan di bawah ini -

https://rw2ek1xung.execute-api.us-east-
1.amazonaws.com/prod/hello?message=hello%20from%20api%20gateway

Perhatikan bahwa di sini kita mengirimkan pesan sebagai string kueri ke url GET. Kemudian Anda dapat mengamati hasilnya seperti yang ditunjukkan di bawah ini -

Itu membaca detail yang dikirim ke pesan dari URL dan menampilkan hal yang sama di browser.