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日誌檔案中查看程式的運行結果。
出現背景
AWS Lambda首次亮相的新進展是Alexa Skill Kit API,該API可以做到開發者在Echo beta程式中能夠鼓搗的一切。Echo採集語音識別並擁有一個非常自然的文本到語音的轉換程式。但它並不是完美的,它缺乏一些最終用戶可能想要的基本任務。
ASK API讓開發人員可以編寫軟體回響用戶在Echo上的輸入並將結果以語音的方式輸出給用戶。使用ASK,開發者需要一個Echo的API來調用函式,但是他們也可以使用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取消了這一限制,那么用戶就可以通過主機調度函式觸發這些調用。
由於Lambda對設定了100個並發函式調用的限制,該公司就需要首先對這些調用進行排隊處理。但是一旦AWS取消了這一限制,那么用戶就可以通過主機調度函式觸發這些調用。
支持Python
AWS Lambda支持Python,如果你正在現有環境中使用Python,那么這一點是非常重要的。但是,這也暗示AWS將在未來增加對額外程式語言的支持——甚至可能是對Docker的支持。