2017-04-08 73 views
0

是否可以使用AWS Lambda運行不安全的用戶腳本?它應該是:AWS Lambda針對帶有node.js的不安全用戶腳本?

  • 應該有內存限制(看起來像AWS Lambda有它)。
  • 應該有執行超時(看起來像AWS Lambda也有它)。此外,它應該不可能設置像setInterval(consumeLittleCpu, 500)
  • (很高興有)不同的腳本應該被隔離。

它會有效嗎?例如,你可以讓我們說5000個不同的腳本,每一個腳本每1-30秒執行一次?

與使用常規AWS實例做同樣工作相比,需要多少成本?數量級的精確度會很好,比如說「在通常的AWS實例上它的成本不會超過10倍」就足夠了。

回答

2

這聽起來不像是一個很好的用例。

Lambda容器獲得reused。通常,您可以使用編程語言提供的所有功能,包括定時器。他們會在執行過程中被凍結,但可能會恢復重用。某些語言可能允許您限制腳本內容。我記得用PHP服務器可以禁止某些函數的調用,但我認爲你不能使用Lambda進行配置。 如果你想要真正的隔離,你將不得不爲每個腳本設置一個Lambda函數。這可以自動完成,但對我來說聽起來仍然很糟糕。如果隔離每個腳本,則必須考慮第一次執行所需的時間,如果Lambda函數尚未被調用一段時間,則所需的時間可能會很慢,並且需要時間。

lambda有一些limits其中一些可以增加一些不能。你可以達到可增加的併發執行。

不知何故,你將不得不觸發你的蘭姆達斯。你可以使用Cloudwatch

正如你已經想通了,你可以限制內存和執行時間。在價格方面,您只支付實際使用的費用,通常比大部分時間處於空閒狀態的實例要便宜得多。如果您充分利用EC2/Elastic Beanstalk實例,它們會更便宜。

更新時間: Pricing爲0.00001667 $每GB收費秒100毫秒塊加上每1萬個請求0.20 $請求費慷慨的自由層之後。

+0

謝謝!您能否告訴我在新啓動或從頭開始重新啓動**容器的情況下,如何計算成本時間?我會支付所有時間「container-startup + nodejs-startup + execution」或「nodejs-startup + execution」還是隻爲執行執行時間付費? –

+0

I.e.假設有兩種情況:「腳本運行10次,每小時運行一次,容器每次都會從頭開始死亡並重新啓動」,「同一個腳本將會運行相同的10次,但現在每秒運行一次,因此容器將被重用「 - 成本是相同還是不同? –

+1

我不能告訴你Node.js時間,Java需要相當長的一段時間來處理第一個請求。 Node.js應該開始快得多。除非每次更新/刪除,否則不能直接影響Lambda重用。每次重複使用10次,您可以在重新使用某個功能時或多或少忽略啓動/預熱時間。這已經很頻繁。最好的事情是嘗試其中一個模板並使用不過期的免費套餐。 –

相關問題