AWS Lambda Bersama Java

1. Pengenalan

AWS Lambda adalah perkhidmatan pengkomputeran tanpa pelayan yang disediakan oleh Amazon untuk mengurangkan konfigurasi pelayan, OS, Skalabiliti, dll. AWS Lambda mampu melaksanakan kod pada AWS Cloud.

Ia berjalan sebagai tindak balas kepada peristiwa pada sumber AWS yang berbeza, yang mencetuskan fungsi AWS Lambda. Harga adalah bayar-seperti-anda-pergi yang bermaksud kami tidak akan menghabiskan wang kami pada fungsi lambda yang tidak berfungsi.

Tutorial ini memerlukan akaun AWS yang sah; anda boleh membuatnya di sini.

2. Pergantungan Maven

Untuk mengaktifkan AWS lambda, kami memerlukan kebergantungan berikut dalam projek kami:

 com.amazonaws aws-lambda-java-core 1.1.0 

Ketergantungan ini boleh didapati di repositori Maven.

Kami juga memerlukan Maven Shade Plugin untuk membina aplikasi lambda:

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

3. Buat Penangan

Ringkasnya, untuk menggunakan fungsi lambda, kita perlu menentukan pengendali; terdapat 3 cara membuat pengendali:

  1. Membuat KaedahHandler tersuai
  2. Melaksanakan antara muka RequestHandler
  3. Melaksanakan antara muka RequestStreamHandler

Mari lihat bagaimana melakukannya menggunakan contoh kod.

3.1. Kaedah Pengendali Tersuai

Kami akan membuat kaedah pengendali yang akan menjadi titik masuk untuk permintaan masuk. Kita boleh menggunakan format JSON atau jenis data primitif sebagai nilai input.

Objek Konteks pilihan juga membolehkan kita mengakses maklumat berguna yang terdapat dalam persekitaran pelaksanaan Lambda:

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

3.2. Permintaan Antaramuka Pengendali

Kami juga dapat menerapkan RequestHandler ke dalam kelas kami dan mengganti kaedah handleRequest yang akan menjadi pintu masuk kami untuk permintaan:

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

Dalam kes ini, input akan sama seperti pada contoh pertama.

3.3. Permintaan Antaramuka StreamHandler

Kami juga dapat menerapkan RequestStreamHandler di kelas kami dan hanya mengatasi kaedah handleRequest .

Perbezaannya ialah objek InputStream , ObjectStream dan Context dilewatkan 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. Bina Fail Penyebaran

Dengan semua yang dikonfigurasi, kita dapat membuat fail penyebaran dengan hanya menjalankan:

mvn clean package shade:shade

The jar fail akan diwujudkan di bawah sasaran folder.

5. Buat Fungsi Lambda melalui Konsol Pengurusan

Log masuk ke AWS Amazon dan kemudian klik Lambda di bawah perkhidmatan. Halaman ini akan menunjukkan senarai fungsi lambda, yang sudah dibuat.

Berikut adalah langkah-langkah yang diperlukan untuk membuat lambda kami:

  1. "Pilih cetak biru" dan kemudian pilih " Fungsi Kosong"
  2. "Konfigurasi pemicu" (dalam kasus kami, kami tidak memiliki pemicu atau peristiwa)
  3. "Konfigurasi fungsi":
    • Nama: Sediakan KaedahHandlerLambda ,
    • Penerangan: Apa sahaja yang menerangkan fungsi lambda kami
    • Masa Jalan : Pilih java8
    • Jenis Entri Kod dan Pakej Fungsi: Pilih " Muat naik fail .ZIP dan Jar" dan klik pada butang "Muat Naik" . Pilih fail yang mengandungi kod lambda.
    • Di bawah pengendali dan peranan fungsi Lambda :
      • Nama pengendali: Berikan nama pengendali fungsi lambda com.baeldung.ModeHandlerLambda :: handleRequest
      • Nama peranan: Sekiranya sumber AWS lain digunakan dalam fungsi lambda, maka berikan akses dengan membuat / menggunakan peranan yang ada dan juga menentukan templat dasar.
    • Di bawah tetapan Lanjutan:
      • Memori: Berikan memori yang akan digunakan oleh fungsi lambda kami.
      • Timeout: Pilih waktu untuk pelaksanaan fungsi lambda untuk setiap permintaan.
  4. Setelah selesai dengan semua input, klik " Next" yang akan menunjukkan kepada anda untuk mengkaji konfigurasi.
  5. Setelah kajian selesai, klik pada " Buat Fungsi" .

6. Memohon Fungsi

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

  • Klik pada fungsi lambda anda dari senarai dan kemudian klik pada butang "Uji"
  • Tetingkap pop timbul akan muncul yang mengandungi nilai palsu untuk menghantar data. Ganti data dengan "Baeldung"
  • Klik pada butang " Simpan dan uji"

Di skrin, anda dapat melihat bahagian hasil Pelaksanaan dengan hasil yang berjaya dikembalikan sebagai:

"Hello World - Baeldung"

7. Kesimpulannya

Dalam artikel intro cepat ini, kami telah membuat aplikasi AWS Lambda sederhana menggunakan Java 8, menyebarkannya ke AWS dan mengujinya.

Kod sumber lengkap untuk aplikasi contoh boleh didapati di Github.