Lambda是被動式的呼叫,而且它並不支援外部網址;Lambda只支援AWS服務本身來呼叫;換句話說,Lambda必須搭配某個AWS的服務,所以當我們決定使用Lambda,我們要有知覺,我們已經被AWS綁架了。
Lambda上不支援Debug下中斷點,所以我們需要透過Log的方式來進行Debug,不過Log的服務卻在CloudWatch上,所以我們在執行Lambda時,必須給這個Function可以寫入CloudWatch Log的Role權限。
Lambda上支援的程式語法是有限的,目前Lambda上支援的程式語法是JAVA,C#,NodeJS,Python等,目前筆著試過利用JAVA與NodeJS的方式,上到Lambda去執行,不過為了考慮到將來部署的方便性,所以最後選擇了NodeJS來進來Lambda的開發(詳細的原因下次有機會會說明),所以這邊的範例也會選擇NodeJS。
Lambda在執行的環境是唯讀的,所以無法透過Disk I/O的方式寫入任何檔案至Lambda上。
關於 dependencies:
Lambda 不支持線上安裝 package,所有需要用的 package 都需要先壓縮成 zip 上傳,可以用創建 layer 的方式管理 package。但要注意命名(例如 python 的 package 需要以 python 開頭)
開發情況:有時候 Lambda 開發儲存需要很多時間,建議先在線下寫好程式再上傳到 Lambda 不然開發起來很耗時也不容易 Debug。