Mengenal fitur ClaudiaJS : Function deployment tools

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.

 gears-3.png

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 :

  1. Inisialisasi project, dengan menggunakan perintah : npm init
  2. Buat sebuah javascript file dengan nama lambda.js

    exports.handler = function (event, context) {
        context.succeed('Halo, serverless Indonesia!');
    };
    
  3. 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.

     claudiajson.png

    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 :

  1. Perbaharui fungsi Lambda pada local komputer kita

    exports.handler = function (event, context) {
        context.succeed('Serverless Indonesia Jaya!');
    };
    
  2. 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.

tajhulfaijin

Read more posts by this author.