Apa itu AWS Lambda? Fungsi Lambda dengan Contoh

Daftar Isi:

Anonim

Sebelum fungsi AWS Lambda, mari kita pahami:

Apa itu Tanpa Server?

Tanpa server adalah istilah yang umumnya mengacu pada aplikasi tanpa server. Aplikasi tanpa server adalah aplikasi yang tidak memerlukan penyediaan server apa pun dan tidak perlu mengelola server.

Apa itu AWS Lambda?

AWS Lambda adalah platform komputasi tanpa server berbasis peristiwa yang disediakan oleh Amazon sebagai bagian dari Amazon Web Services. Oleh karena itu, Anda tidak perlu khawatir tentang sumber daya AWS mana yang akan diluncurkan, atau bagaimana Anda akan mengelolanya. Sebagai gantinya, Anda perlu meletakkan kode di Lambda, dan itu berjalan.

Di AWS Lambda, kode dijalankan berdasarkan respons kejadian di layanan AWS seperti menambah / menghapus file di S3 bucket, permintaan HTTP dari gateway API Amazon, dll. Namun, Amazon Lambda hanya dapat digunakan untuk menjalankan tugas latar belakang.

Fungsi AWS Lambda membantu Anda untuk fokus pada produk inti dan logika bisnis Anda alih-alih mengelola kontrol akses sistem operasi (OS), penambalan OS, ukuran yang tepat, penyediaan, penskalaan, dll.

Dalam tutorial AWS Lambda untuk pemula ini, Anda akan mempelajari:

  • Bagaimana cara kerja AWS Lambda?
  • Peristiwa yang Memicu AWS Lambda
  • Konsep AWS Lambda
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Kasus Penggunaan AWS Lambda
  • Praktik terbaik fungsi Lambda
  • Kapan tidak menggunakan AWS Lambda
  • Keuntungan menggunakan AWS Lambda
  • Batasan AWS Lambda

Bagaimana cara kerja AWS Lambda?

Contoh AWS Lambda berikut dengan diagram blok menjelaskan cara kerja AWS Lambda dalam beberapa langkah mudah:

Langkah 1: Pertama, unggah kode AWS Lambda Anda dalam bahasa apa pun yang didukung oleh AWS Lambda. Java, Python, Go, dan C # adalah beberapa bahasa yang didukung oleh fungsi AWS Lambda.

Langkah 2: Ini adalah beberapa layanan AWS yang memungkinkan Anda memicu AWS Lambda.

Langkah 3: AWS Lambda membantu Anda mengunggah kode dan detail acara yang harus dipicu.

Langkah 4: Jalankan Kode AWS Lambda ketika dipicu oleh layanan AWS:

Langkah 5: AWS hanya menagih saat kode lambda AWS dijalankan, dan tidak sebaliknya.

Ini akan terjadi dalam skenario berikut:

  • Unggah file dalam ember S3
  • Saat HTTP get / post endpoint URL dipukul
  • Untuk menambah / memodifikasi dan menghapus tabel Dynamo DB
  • Dalam proses pengumpulan aliran data
  • Pemberitahuan push
  • Hosting situs web
  • Pengiriman email

Catatan: Anda harus ingat bahwa Anda akan mengenakan biaya untuk layanan AWS hanya ketika kode AWS Lambda dijalankan, jika tidak, Anda tidak perlu membayar apa pun.

Peristiwa yang Memicu AWS Lambda

Berikut, Peristiwa yang akan dipicu saat Anda menggunakan AWS Lambda.

  • Memasukkan, memperbarui dan menghapus data tabel DB Dynamo
  • Untuk memasukkan pemberitahuan push di SNS
  • Untuk mencari riwayat log di CloudTrail
  • Masuk ke objek S3
  • DynamoDB dapat memicu AWS Lambda setiap kali ada data yang ditambahkan, diubah, dan dihapus di tabel.
  • Membantu Anda menjadwalkan acara untuk melaksanakan tugas dengan pola waktu yang teratur.
  • Modifikasi objek di bucket S3
  • Pemberitahuan dikirim dari Amazon SNS.
  • AWS Lambda dapat digunakan untuk memproses log CloudTrail
  • API Gateway memungkinkan Anda memicu AWS Lambda pada metode GET / POST.

Konsep AWS Lambda

Fungsi:

Fungsi adalah program atau skrip yang berjalan di AWS Lambda. Lambda meneruskan peristiwa pemanggilan ke dalam fungsi Anda, yang memproses peristiwa dan mengembalikan responsnya.

Durasi:

Waktu proses memungkinkan fungsi dalam berbagai bahasa yang berjalan di lingkungan eksekusi dasar yang sama. Ini membantu Anda mengonfigurasi fungsi Anda dalam runtime. Itu juga cocok dengan bahasa pemrograman yang Anda pilih.

Sumber acara:

Sumber peristiwa adalah layanan AWS, seperti Amazon SNS, atau layanan kustom. Fungsi pemicu ini membantu Anda menjalankan logikanya.

Lapisan Lambda:

Lapisan Lambda adalah mekanisme distribusi penting untuk pustaka, runtime khusus, dan dependensi fungsi penting lainnya. Komponen AWS ini juga membantu Anda mengelola kode fungsi pengembangan Anda secara terpisah dari kode dan sumber daya yang tidak berubah yang digunakannya.

Aliran log:

Aliran log memungkinkan Anda untuk membuat anotasi kode fungsi Anda dengan pernyataan logging kustom yang membantu Anda menganalisis aliran eksekusi dan kinerja fungsi AWS Lambda Anda.

Cara menggunakan AWS Lambda

Sekarang, kita akan mempelajari cara menggunakan AWS Lambda dengan contoh AWS Lambda:

Langkah 1 ) Buka https://aws.amazon.com/lambda/ dan Mulai

Langkah 2 ) Buat akun atau masuk dengan akun Anda yang sudah ada

Langkah 3 ) Di halaman Lambda berikutnya,

  1. Edit kodenya
  2. Klik Jalankan

Langkah 4 ) Anda akan melihat output

AWS Lambda VS AWS EC2

Berikut, beberapa perbedaan utama antara AWS Lambda dan EC2.

Parameter AWS Lambda AWS EC2
Definisi AWS Lambda adalah Platform sebagai Layanan (PaaS). Ini membantu Anda menjalankan dan mengeksekusi kode backend Anda. AWS EC2 Adalah Infrastruktur sebagai Layanan (laaS). Ini menyediakan sumber daya komputasi virtual.
Fleksibilitas Tidak menawarkan fleksibilitas apa pun untuk masuk ke instance komputasi. Ini memungkinkan Anda untuk memilih sistem operasi atau runtime bahasa yang disesuaikan. Menawarkan fleksibilitas untuk memilih variasi instans, sistem operasi kustom, patch keamanan, dan jaringan, dll.
Proses instalasi Anda perlu memilih lingkungan tempat Anda ingin menjalankan kode dan memasukkan kode tersebut ke AWS Lambda. Untuk pertama kalinya di EC2, Anda harus memilih OS dan menginstal semua perangkat lunak yang diperlukan dan kemudian memasukkan kode Anda ke EC2.
Pembatasan lingkungan Itu dibatasi untuk beberapa bahasa. Tidak ada batasan lingkungan.

AWS Lambda VS AWS Elastic Beanstalk

Berikut, beberapa perbedaan utama antara AWS Lambda dan Elastic Beanstalk.

Parameter AWS Elastic Beanstalk AWS Lambda
Tugas utama Terapkan dan kelola aplikasi di AWS Cloud tanpa mengkhawatirkan infrastruktur yang menjalankan aplikasi tersebut. AWS Lambda digunakan untuk menjalankan dan menjalankan kode Back-end Anda. Anda tidak dapat menggunakannya untuk menerapkan aplikasi.
Pemilihan sumber daya AWS Ini memberi Anda Kebebasan untuk memilih sumber daya AWS; Misalnya, Anda dapat memilih instans EC2 yang optimal sesuai dengan aplikasi Anda. Anda tidak dapat memilih sumber daya AWS, seperti jenis instans EC2, Lambda menawarkan sumber daya berdasarkan beban kerja Anda.
Jenis sistem Ini adalah sistem yang stateful. Ini adalah sistem tanpa kewarganegaraan.

Kasus Penggunaan AWS Lambda

AWS Lambda digunakan untuk berbagai aplikasi seperti:

  • Membantu Anda untuk proses ETL
  • Memungkinkan Anda melakukan pemrosesan file waktu nyata dan pemrosesan aliran waktu nyata
  • Gunakan untuk membuat aplikasi web
  • Gunakan di produk Amazon seperti Alexa Chatbots dan Amazon Echo / Alexa
  • Pemrosesan data (analitik streaming waktu nyata)
  • Pencadangan Otomatis untuk tugas sehari-hari
  • Bagian belakang yang dapat diskalakan (aplikasi seluler, perangkat loT)
  • Membantu Anda menjalankan logika backend sisi server
  • Memungkinkan Anda untuk memfilter dan mengubah data

Praktik terbaik fungsi Lambda

Berikut beberapa praktik terbaik dari fungsi AWS Lambda:

  • Gunakan "batas waktu" yang tepat.
  • Memanfaatkan fungsi penyimpanan lokal yang berukuran 500MB di folder / temp
  • Meminimalkan penggunaan kode start-up yang tidak terkait langsung dengan pemrosesan peristiwa saat ini.
  • Anda harus menggunakan pemantauan CloudWatch bawaan dari fungsi Lambda Anda untuk melihat dan mengoptimalkan latensi permintaan.

Kapan tidak menggunakan AWS Lambda

Berikut adalah situasi di mana Lambda jelas bukan pilihan yang ideal:

  • Tidaklah tepat untuk menggunakan paket perangkat lunak AWS Lambda atau aplikasi yang mengandalkan pemanggilan Windows RPC yang mendasarinya
  • Jika digunakan untuk aplikasi perangkat lunak kustom dengan perjanjian lisensi seperti pemrosesan dokumen MS-Office, database Oracle, dll.
  • AWS Lambda tidak boleh digunakan untuk proses perangkat keras khusus seperti akselerasi GPU, afinitas perangkat keras.

Keuntungan menggunakan AWS Lambda

Berikut, pro / manfaat menggunakan AWS lambda:

  • AWS Lambda adalah alat yang sangat fleksibel untuk digunakan
  • Ini membantu Anda memberikan akses ke sumber daya, termasuk VPC
  • Penulis langsung dengan editor WYSIWYG di konsol.
  • Anda dapat menggunakannya sebagai plugin untuk Eclipse dan Visual Studio.
  • Karena ini adalah arsitektur tanpa server, Anda tidak perlu khawatir tentang pengelolaan atau penyediaan server.
  • Anda tidak perlu menyiapkan Mesin Virtual apa pun.
  • Membantu pengembang untuk menjalankan dan mengeksekusi respons kode ke acara tanpa membangun infrastruktur apa pun.
  • Anda hanya perlu menghitung waktu yang dibutuhkan, hanya ketika kode Anda berjalan.
  • Anda dapat memantau kinerja kode Anda secara real time melalui CloudWatch.
  • Ini memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server lain
  • Membantu Anda mengeksekusi kode hanya jika diperlukan
  • Anda dapat menskalakannya secara otomatis untuk menangani beberapa permintaan per hari dan bahkan mendukung lebih dari ribuan permintaan per detik.
  • AWS Lambda dapat dikonfigurasi dengan bantuan pengatur waktu kejadian eksternal untuk melakukan tugas terjadwal.
  • Fungsi Lambda di AWS harus dikonfigurasi dengan peristiwa dan pengatur waktu eksternal; dapat digunakan untuk penjadwalan.
  • Fungsi Lambda bersifat stateless sehingga dapat diskalakan dengan cepat.
  • AWS Lambda cepat sehingga akan mengeksekusi kode Anda dalam milidetik.

Batasan AWS Lambda

Berikut adalah kerugian / kerugian menggunakan AWS Lambda:

  • Alat AWS Lambda tidak cocok untuk proyek kecil.
  • AWS Lambda sepenuhnya mengandalkan AWS untuk infrastrukturnya, jadi Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda menuntutnya.
  • Eksekusi bersamaan dibatasi hingga 100
  • AWS Lambda sepenuhnya bergantung pada AWS untuk infrastruktur; Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda memintanya.
  • Volume memorinya dapat bervariasi antara 128 hingga 1536 MB.
  • Permintaan acara tidak boleh melebihi 128 KB.
  • Fungsi Lambda membantu Anda menulis log hanya di CloudWatch. Ini adalah satu-satunya alat yang memungkinkan Anda untuk memantau atau memecahkan masalah fungsi Anda.
  • Batas waktu eksekusi kodenya hanya 5 menit.

Ringkasan

  • Tanpa server adalah istilah yang umumnya mengacu pada aplikasi tanpa server.
  • AWS Lambda adalah salah satu layanan komputasi tanpa server. Oleh karena itu, Anda tidak perlu khawatir tentang sumber daya AWS mana yang akan diluncurkan, atau bagaimana mereka akan mengelolanya.
  • Fungsi adalah program atau skrip yang berjalan di Lambda tanpa server AWS.
  • Waktu proses memungkinkan fungsi dalam berbagai bahasa yang berjalan di lingkungan eksekusi dasar yang sama.
  • Sumber peristiwa adalah layanan AWS, seperti Amazon SNS, atau layanan kustom.
  • Lapisan Lambda adalah mekanisme distribusi penting untuk pustaka, runtime khusus, dan dependensi fungsi penting lainnya.
  • Aliran log memungkinkan Anda untuk membuat anotasi kode fungsi Anda dengan pernyataan logging kustom yang membantu Anda menganalisis aliran eksekusi dan kinerja fungsi Lambda Anda.
  • AWS Lambda adalah Platform sebagai Layanan (PaaS). Ini membantu Anda menjalankan dan mengeksekusi kode backend Anda.
  • AWS EC2 Adalah Infrastruktur sebagai Layanan (laaS). Ini menyediakan sumber daya komputasi virtual.
  • Terapkan dan kelola aplikasi di AWS Cloud tanpa mengkhawatirkan infrastruktur yang menjalankan aplikasi tersebut.
  • AWS Lambda digunakan untuk menjalankan dan menjalankan kode Back-end Anda. Anda tidak dapat menggunakannya untuk menerapkan aplikasi.
  • AWS Lambda membantu Anda untuk proses ETL.
  • Praktik terbaik fungsi Lambda di AWS adalah menggunakan "batas waktu" yang tepat.
  • Tidaklah tepat untuk menggunakan paket perangkat lunak AWS Lambda atau aplikasi yang mengandalkan pemanggilan Windows RPC yang mendasarinya
  • AWS Lambda adalah alat yang sangat fleksibel.
  • Alat AWS Lambda tidak cocok untuk proyek kecil.
  • Peristiwa umum yang akan dipicu saat Anda menggunakan AWS Lambda adalah Menyisipkan, memperbarui, dan menghapus tabel Dynamo DB data.