2015年12月10日 星期四

[AWS] Lambda

什麼是AWS Lambda
1. 它是一個compute service, 可在你事先定義的"觸發事件"發生時,自動幫你執行你事先給定的程式碼。
這個的好處是,你寫了一段程式為你作些事情,你不用特地為了執行它,而大費周章的另外 create一台 EC2 server來跑這段程式。你只要把這段程式碼以及想觸發的時機點告訴 Lambda,它會自動幫你 handle這個 task。
2. 如此一來,你只要 maintain這小段程式碼以及觸發事件即可。可以不用 maintain整個back-end server的 infrastructure,會省下很多功夫。

3. 目前 support三種程式語言
     1) Node.js
     2) Python
     3) JAVA

4. 目前 Lambda supports 下列 AWS services當成 event trigger sources:
      1) S3:
Configure S3 bucket,當它被 create, delete的時候,送個 notification給 Lambda, 請 Lambda馬上執行你給他的對應的程式碼。 
例如你希望當使用者上傳圖片的時候,馬上作縮圖的動作,這時候就可以定義 S3 bucket,當它 detect到有圖片檔上傳時,即送個通知給 Lambda,讓 Lambda去執行縮圖的程式碼。Perfect!
      2) DynamoDB:
可以在 Lambda裡 create一個 event source mapping,去 polling DynamoDB streams,當DynamoDB table有 update時,執行某些 function。例如當有data update時,即時的幫你利用最新的 data來作一些運算,即時回傳結果。
      3) Kinesis:
跟 DynamoDB差不多,只是這次換成了影片檔。可以 create event source mappings讓 Lambda去 polling Kinesis streams。例如當有影片新增時,作即時轉檔之類的事情。
      4) SNS
      5) SES
      6) Cognito
      7) CloudWatch Logs
      8) CloudFormation

沒有留言:

張貼留言