Lanjutan dari artikel sebelumnya berkenalan dengan ClaudiaJS.
Pada kesempatan ini kita akan membahas lebih dalam salahsatu dari tiga fitur yang dimiliki oleh Claudiajs, yaitu Function Deployment Tools.
Function deployment tools, apakah itu ?
Claudia function deployment tools adalah sebuah command line interface (CLI) yang dapat digunakan untuk melakukan deployment fungsi Lambda dari local komputer kita ke AWS Lambda console.
Proses deployment disini meliputi : membuat fungsi Lambda, memperbaharui fungsi Lambda, menghapus fungsi Lambda, mengatur versi dari fungsi Lambda, dan masih banyak lagi.
Seperti pada umumnya, fungsi Lambda disini digunakan dalam event-driven micro services sistem, dimana satu dua buah fungsi Lambda saling terkoneksi secara proses melalui event yang terjadi dan telah ditentukan oleh developer.
Membuat fungsi Lambda
Untuk melakukan proses deployment fungsi Lambda untuk pertama kalinya, kita bisa menggunakan perintah :
claudia create --region [kode region] --handler [nama handler]
Dimana :
kode region : adalah kode region AWS dimana kita akan mempublish kode Lambda kita;
nama handler : nama fungsi yang akan digunakan sebagai Lambda handler function. Konvensi untuk nama handler ini adalah : nama-file[dot]nama-fungsi-handler
Contoh :
- Inisialisasi project, dengan menggunakan perintah : npm init
Buat sebuah javascript file dengan nama lambda.js
exports.handler = function (event, context) { context.succeed('Halo, serverless Indonesia!'); };
Deploy fungsi tersebut dengan perintah :
claudia create --region ap-southeast-1 --handler lambda.handler
Jika tidak mengalami kendala, kita akan mendapatkan deployment status feedback pada console seperti berikut :
saving configuration { "lambda": { "role": "lambda-basic-executor", "name": "lambda-basic", "region": "ap-southeast-1" } }
Setelah proses deployment selesai, pada direktori root project, akan terdapat file baru bernama claudia.json.
Dimana pada file tersebut berisi informasi tentang fungsi Lambda yang telah berhasil di deploy. Informasi tersebut meliputi :
- role : berisi id dari AWS IAM role yang dipakai fungsi Lambda tersebut
- name : adalah nama fungsi Lambda tersebut (Nama fungsi Lambda yang di deploy akan sama dengan nama project yang kita isi pada proses inisialisasi project pada langkah nomor 1 diatas).
- region : id region dimana fungsi Lambda kita dideploy
Kita dapat melakukan testing fungsi Lambda yang telah dideploy tersebut dari local komputer kita secara langsung tanpa perlu melalui Lambda console.
claudia test-[nama fungsi]
claudia test-lambda
{
"StatusCode": 200,
"Payload": "\"Halo, serverless Indonesia!\""
}
Memperbaharui fungsi Lambda
Untuk melakukan perubahan pada fungsi Lambda, kita bisa menggunakan perintah berikut :
claudia update
Contoh :
Perbaharui fungsi Lambda pada local komputer kita
exports.handler = function (event, context) { context.succeed('Serverless Indonesia Jaya!'); };
Kemudian deploy fungsi yang telah diperbaharui diatas agar fungsi Lambda yang sudah dideploy sebelumnya juga ikut diperbaharui
claudia update
Jika tidak mengalami kendala, kita akan mendapatkan deployment update status feedback pada console seperti berikut :
updating Lambda lambda.setupRequestListeners { "FunctionName": "lambda-basic", "FunctionArn": "arn:aws:lambda:ap-southeast-1:996680382794:function:lambda-basic:2", "Runtime": "nodejs6.10", "Role": "arn:aws:iam::996680382794:role/lambda-basic-executor", "Handler": "lambda.handler", "CodeSize": 810, "Description": "test deploy basic lambda function", "Timeout": 3, "MemorySize": 128, "LastModified": "2017-09-21T13:28:53.194+0000", "CodeSha256": "UgJ+ClnSxgo+Ux8Bknp3Dj+O3KLJAeunNGW+Nk4Zk1E=", "Version": "2", "KMSKeyArn": null, "TracingConfig": { "Mode": "PassThrough" } }
Kemudian kita bisa test hasil pembaharuan tersebut dengan perintah claudia test
claudia test-lambda { "StatusCode": 200, "Payload": "\"Serverless Indonesia Jaya!\"" }
Menghapus fungsi Lambda
Untuk menghapus fungsi Lambda yang sudah di deploy, kita bisa menggunakan perintah claudia destroy
Contoh :
claudia destroy
Proses ini akan menghapus fungsi Lambda yang sudah kita deploy berserta dengan depedensi nya seperti IAM role yang dipake fungsi Lambda tersebut.
Version aliasing fungsi Lambda
Dalam proses development aplikasi, sudah menjadi suatu kewajiban agar kita mempunyai version stage dari aplikasi yang kita bangun. Claudia CLI menyediakan fitur untuk memudahkan kita dalam melakukan versioning fungsi Lambda. Kita cukup menambahkan opsi --version
pada proses create atau update fungsi Lambda.
Contoh ketika melakukan proses deployment pertama kali (disini kita set sebagai versi development) :
claudia create --region ap-southeast-1 --handler lambda.handler --version development
Kemudian ketika melakukan proses update versi tertentu (versi development)
claudia update --version development
Kesimpulan
Claudia function deployment tools dapat membantu kita dalam proses deployment fungsi Lambda yang kita develop di local komputer kita. Claudia function deployment tools ini bukanlah pengganti dari AWS command line interface, namun merupakan sebuah tools yang meng-enkapsulasi proses deployment fungsi Lambda sehingga proses deployment fungsi Lambda menjadi lebih ringkas dan mudah.