複製鏈接
請複製以下鏈接發送給好友

AWS Lambda

鎖定
AWS Lambda是一個用於部署代碼、管理服務以及監控輕量級服務運行狀態的細粒度方法。
外文名
AWS Lambda
功    能
部署代碼、管理服務以及監控輕量級服務運行狀態的細粒度方法

AWS Lambda使用方法

1.AWS Lambda 代碼的版本控制與其他所有應用程序的都是一樣的。AWSLambda控制枱的快速JavaScript函數編程方式是廣受程序員青睞的文本編輯器或行內編輯器,這一點是頗具吸引力的。當然,當用户通過函數版本進行應用概念測試以及迭代運行時,這個腳本程序就可以在開發環境中正常運行。但是,它並不適於部署生產代碼。管理人員應當擁有函數和部署包的版本控制副本,當用户希望使用這些副本來包括附屬庫時,尤是如此。
2.AWS Lambda在條件許可的情況下,應再次使用身份驗證和訪問管理策略。AWS Lambda 的函數需要調用和執行角色;而其執行角色需要一個訪問和信任的策略。訪問策略會授予用户操作資源的權限——即,從簡單存儲服務(S3)bucket中進行讀或寫操作的權利。執行策略會指定由誰來承擔相關角色。再次使用之前在其它程序中已設定並使用的訪問策略是合乎邏輯的。但是,這裏要特別注意過度特權。如果你的函數只需要從S3 bucket中讀取數據,那麼也就無須向其賦予寫操作權限的訪問策略。儘管AWS Lambda函數是很小,但是管理人員仍然需要考慮其安全性的最佳實踐,例如最小特權原則。
3.刪除不再需要的AWS Lambda函數。通過使用版本控制代碼,管理人員可以從其中的版本中恢復過來。當用户的函數完成運行時,請不要忘記調用context.done函數。如果用户沒有調用這個函數,那麼用户的函數將繼續運行並隨之產生額外的費用。
4.監控AWS Lambda 函數的調用和執行。通過使用CloudWatch,管理人員能夠跟蹤請求時間段、請求計數以及執行錯誤計數。他們還可以通過AWS的管理控制枱、CloudWatch或者AWS命令行來查看 Lambda CloudWatch的參數指標。CloudWatch還可以幫助進行代碼調試——在函數中插入記錄語句、運行函數以及之後在CloudWatch日誌文件中查看程序的運行結果。 [1] 

AWS Lambda出現背景

AWS Lambda首次亮相的新進展是Alexa Skill Kit API,該API可以做到開發者在Echo beta程序中能夠鼓搗的一切。Echo採集語音識別並擁有一個非常自然的文本到語音的轉換程序。但它並不是完美的,它缺乏一些最終用户可能想要的基本任務。
ASK API讓開發人員可以編寫軟件響應用户在Echo上的輸入並將結果以語音的方式輸出給用户。使用ASK,開發者需要一個Echo的API來調用函數,但是他們也可以使用AWS Lambda。那意味着如果該軟件沒有被使用,那就沒有開銷。 [2] 

AWS Lambda服務功能

使用MySQL、Lambda和瀏覽器應用程序
如果開發人員正在使用Lambda 服務、AWS SDK以及Java腳本程序來開發無服務器的網絡應用程序,使用DynamoDB作為後端數據庫,那麼就不應該有任何問題。但是,為了使用一個諸如MySQL或Amazon Aurora這樣的關係型數據庫,可創建一個橋型應用程序或者打開RDS MySQL實例。這可以打開MySQL,一個用於實現零日漏洞的臭名昭著目標以防進一步的攻擊。一般情況下,在一個開發端口上運行MySQL實例是一個糟糕的安全措施。
但是,運行Lambda服務是一個偉大的方法,它去除了一個後端,用户就不需要編寫驗證MySQL的中間層,併為在Lambda外進行訪問提供了一個安全的方法。幸運的是,將Lambda功能置於VPC中可讓開發人員配置安全組並確保MySQL集羣只使用特定Lambda功能。此舉可顯著減少曝光並確保MySQL實例得到合適保護。
確保只有授權用户能夠訪問Lambda功能仍然是非常重要的,但是很幸運使用亞馬遜Cognito和IAM角色可以很容易地確保其安全性。
針對Lambda功能的調度功能
另一項改善就是提供了調度AWS Lambda功能的能力。這使得開發人員能夠定期允許後台任務以取代使用任務實例或諸如Cloud Cron之類的工具來運行腳本程序。Lambda服務還增加了它的最長運行時間至五分鐘。
例如,如果一家公司需要定期從博客網站讀取RSS訂閲,那麼他們就可以在AWS Lambda中通過觸發一個自動調度功能來排隊讀取博客列表中的所有待讀取訂閲內容,從而實現這一功能。該公司就可以安排主機功能每隔若干個小時從DynamoDB讀取數據,然後針對每一個博客觸發Lambda函數讀取訂閲。
由於Lambda對設置了100個併發函數調用的限制,該公司就需要首先對這些調用進行排隊處理。但是一旦AWS取消了這一限制,那麼用户就可以通過主機調度函數觸發這些調用。
支持Python
AWS Lambda支持Python,如果你正在現有環境中使用Python,那麼這一點是非常重要的。但是,這也暗示AWS將在未來增加對額外編程語言的支持——甚至可能是對Docker的支持。 [3] 
參考資料