Hi!

Pada jurnal ini saya ingin berbagi mengenai salah satu layanan serverless di AWS yaitu AWS Lambda.

AWS Lambda adalah layanan komputasi serverless yang memungkinkan kita menjalankan kode tanpa perlu mengelola server. Serverless maksudnya adalah AWS yang mengelola server secara penuh untuk kita dan kita tidak dapat mengaksesnya. Kita tidak perlu khawatir tentang pengelolaan server seperti dengan EC2.

AWS Lambda memungkinkan pengembang untuk fokus pada aplikasi yang mereka kembangkan daripada mengkhawatirkan pengelolaan server.

Beberapa contoh kasus yang menggunakan AWS Lambda adalah real-time file processing, sending email notifications, dan backend business logic.

Aplikasi yang di deploy di AWS Lambda disebut function dimana Lambda mendukung banyak bahasa pemrograman populer seperti Java, Go, PowerShell, Node.js, C#, Python, dan Ruby. Kita dapat membuat kode menggunakan development environment favorit masing-masing atau melalui AWS Console. Lambda dapat mengeksekusi kode sebagai respons terhadap sebuah event. Dan Lambda function memiliki15 menit timeout.

Untuk pricing model pada AWS Lambda, kita akan dikenakan biaya yang berasal dari compute time dan request count. Untuk selengkapnya bisa baca disini.

Mari coba kita labkan!

Disini akan kita coba deploy sebuah aplikasi sederhana menggunakan Python di AWS Lambda dan memantau log nya melalui layanan AWS CloudWatch . Pertama buka AWS Console.

Pada kolom pencarian, ketik lambda. Dan klik layanan Lambda yang muncul paling atas.

Karena disini saya belum melakukan deployment aplikasi satupun, maka tampilan dashboardnya masih kosong. Klik Create function untuk membuat fungsi baru.

Pada tampilan pertama, isikan nama fungsi misal myfunction dengan runtime Python 3.7. Karena disini skenario yang digunakan masih sederhana, biarkan konfigurasi yang lainnya default lalu klik Create function.

Pastikan berhasil ya! Hasilnya akan seperti berikut ini.

Tempel kode berikut ini di editor.

import json

def lambda_handler(event, context):
    message = 'Hello {} {}! Keep being awesome!'.format(event['first_name'], event['last_name'])  

    #print to CloudWatch logs
    print(message)

    return { 
    'message' : message
    }  

Lalu klik Deploy.

Pastikan statusnya berubah menjadi Changes deployed.

Selanjutnya, kita akan coba test fungsi yang telah dibuat sebelumnya. Klik drop down menu Test. Lalu klik Configure test event karena disini kita akan mendefinisikan test eventnya sendiri.

Pilih Create new test event. Untuk Event template, pilih hello-world. Atur nama event misal mytest dengan value:

{ "first_name": "Your First Name Here", "last_name": "Your Last Name Here" }

Klik Format JSON agar menggunakan JSON format, bisa sesuaikan nama awal dan akhir lalu klik Create.

Pada tab Execution result, akan muncul hasilnya seperti berikut ini.

Kita bisa memantaui durasi, request, penggunaan compute di menu Monitor yang terintregasi dengan CloudWatch. Coba klik info disebelah CloudWatch metrics.

Yang mana kita akan diarahkan ke layanan CloudWatch yang memiliki banyak fitur, salah satunya memantau AWS Lambda events. Terlihat ada satu Log streams. Bisa dicoba klik.

Dan berikut hasil events dari fungsi myfunction yang telah coba di deploy.

Sekian!