AWS Lambda针对带有node.js的不安全用户脚本?

AWS Lambda针对带有node.js的不安全用户脚本?

问题描述:

是否可以使用AWS Lambda运行不安全的用户脚本?它应该是:AWS Lambda针对带有node.js的不安全用户脚本?

  • 应该有内存限制(看起来像AWS Lambda有它)。
  • 应该有执行超时(看起来像AWS Lambda也有它)。此外,它应该不可能设置像setInterval(consumeLittleCpu, 500)
  • (很高兴有)不同的脚本应该被隔离。

它会有效吗?例如,你可以让我们说5000个不同的脚本,每一个脚本每1-30秒执行一次?

与使用常规AWS实例做同样工作相比,需要多少成本?数量级的精确度会很好,比如说“在通常的AWS实例上它的成本不会超过10倍”就足够了。

这听起来不像是一个很好的用例。

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次,您可以在重新使用某个功能时或多或少忽略启动/预热时间。这已经很频繁。最好的事情是尝试其中一个模板并使用不过期的免费套餐。 –