AWS Lambda Dengan Java

1. Perkenalan

AWS Lambda adalah layanan komputasi tanpa server yang disediakan oleh Amazon untuk mengurangi konfigurasi server, OS, Skalabilitas, dll. AWS Lambda mampu menjalankan kode di AWS Cloud.

Ini berjalan sebagai respons terhadap peristiwa di sumber daya AWS yang berbeda, yang memicu fungsi AWS Lambda. Penetapan harga adalah pay-as-you-go yang berarti kami tidak akan membayar uang kami pada fungsi lambda yang menganggur.

Tutorial ini membutuhkan akun AWS yang valid; Anda dapat membuatnya di sini.

2. Ketergantungan Maven

Untuk mengaktifkan AWS lambda, kami memerlukan ketergantungan berikut dalam proyek kami:

 com.amazonaws aws-lambda-java-core 1.1.0 

Ketergantungan ini dapat ditemukan di repositori Maven.

Kami juga membutuhkan Plugin Maven Shade untuk membangun aplikasi lambda:

 org.apache.maven.plugins maven-shade-plugin 2.4.3  false    package  shade    

3. Buat Penangan

Sederhananya, untuk menjalankan fungsi lambda, kita perlu menentukan penangan; ada 3 cara membuat penangan:

  1. Membuat MethodHandler kustom
  2. Menerapkan antarmuka RequestHandler
  3. Menerapkan antarmuka RequestStreamHandler

Mari kita lihat bagaimana melakukannya dengan menggunakan contoh kode.

3.1. kustom MethodHandler

Kami akan membuat metode penangan yang akan menjadi titik masuk untuk permintaan masuk. Kita dapat menggunakan format JSON atau tipe data primitif sebagai nilai input.

Selain itu, objek Konteks opsional akan memungkinkan kita mengakses informasi berguna yang tersedia dalam lingkungan eksekusi Lambda:

public class LambdaMethodHandler { public String handleRequest(String input, Context context) { context.getLogger().log("Input: " + input); return "Hello World - " + input; } }

3.2. Antarmuka RequestHandler

Kita juga dapat mengimplementasikan RequestHandler ke dalam kelas kita dan mengganti metode handleRequest yang akan menjadi titik masuk untuk permintaan:

public class LambdaRequestHandler implements RequestHandler { public String handleRequest(String input, Context context) { context.getLogger().log("Input: " + input); return "Hello World - " + input; } }

Dalam hal ini, inputnya akan sama dengan contoh pertama.

3.3. Antarmuka RequestStreamHandler

Kita juga bisa mengimplementasikan RequestStreamHandler di kelas kita dan mengganti metode handleRequest .

Perbedaannya adalah objek InputStream , ObjectStream , dan Context diteruskan sebagai parameter:

public class LambdaRequestStreamHandler implements RequestStreamHandler { public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) { String input = IOUtils.toString(inputStream, "UTF-8"); outputStream.write(("Hello World - " + input).getBytes()); } }

4. Buat File Penerapan

Dengan semua yang dikonfigurasi, kita dapat membuat file penerapan hanya dengan menjalankan:

mvn clean package shade:shade

File jar akan dibuat di bawah folder target .

5. Buat Fungsi Lambda melalui Konsol Manajemen

Masuk ke AWS Amazon dan kemudian klik Lambda di bawah layanan. Halaman ini akan menampilkan daftar fungsi lambda, yang sudah dibuat.

Berikut langkah-langkah yang diperlukan untuk membuat lambda kami:

  1. “Pilih cetak biru” lalu pilih “ Fungsi Kosong”
  2. "Konfigurasi pemicu" (dalam kasus kami, kami tidak memiliki pemicu atau peristiwa apa pun)
  3. "Konfigurasi fungsi":
    • Nama: Berikan MethodHandlerLambda ,
    • Deskripsi: Apa pun yang mendeskripsikan fungsi lambda kami
    • Runtime: Pilih java8
    • Jenis Entri Kode dan Paket Fungsi: Pilih " Unggah file .ZIP dan Jar" dan klik tombol "Unggah" . Pilih file yang berisi kode lambda.
    • Di bawah penangan fungsi dan peran Lambda :
      • Nama penangan: Berikan nama penangan fungsi lambda com.baeldung.MethodHandlerLambda :: handleRequest
      • Nama peran: Jika ada sumber daya AWS lain yang digunakan dalam fungsi lambda, berikan akses dengan membuat / menggunakan peran yang ada dan juga menentukan templat kebijakan.
    • Di bawah Pengaturan lanjutan:
      • Memori: Sediakan memori yang akan digunakan oleh fungsi lambda kami.
      • Waktu habis: Pilih waktu untuk menjalankan fungsi lambda untuk setiap permintaan.
  4. Setelah Anda selesai dengan semua masukan, klik " Next" yang akan menunjukkan Anda untuk meninjau konfigurasi.
  5. Setelah tinjauan selesai, klik " Buat Fungsi" .

6. Jalankan Fungsi

Setelah fungsi lambda AWS dibuat, kami akan mengujinya dengan memasukkan beberapa data:

  • Klik pada fungsi lambda Anda dari daftar dan kemudian klik tombol "Test"
  • Jendela popup akan muncul yang berisi nilai dummy untuk mengirim data. Ganti data dengan "Baeldung"
  • Klik tombol " Simpan dan uji"

Di layar, Anda dapat melihat bagian hasil Eksekusi dengan keluaran yang berhasil dikembalikan sebagai:

"Hello World - Baeldung"

7. Kesimpulan

Dalam artikel pengantar singkat ini, kami telah membuat aplikasi AWS Lambda sederhana menggunakan Java 8, menerapkannya ke AWS dan mengujinya.

Kode sumber lengkap untuk aplikasi contoh dapat ditemukan di Github.