为什么不同运行时的 AWS lambda 计费不同?
Why AWS lambda billing differ for different runtimes?
我正在测试具有两种不同运行时的应用程序:node.js 和 java 本机可执行文件(提前使用 GraalVM 编译)。
这是启动日志。
Node.js:
Duration: 556.31 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 81 MB Init Duration: 365.44 ms
本机可执行文件:
Duration: 548.98 ms Billed Duration: 1000 ms Memory Size: 256 MB Max Memory Used: 106 MB Init Duration: 411.83 ms
如您所见,Duration
和 Init duration
非常接近,但由于某些原因 Billed Duration
几乎是具有本机可执行文件的自定义运行时的 2 倍。
你能解释一下有什么区别吗?我该如何避免这种情况?
对于自定义运行时,您需要为初始化时间付费,并在 docs -
中提及
"Initialization counts towards billed execution time and timeout. When an execution triggers the initialization of a new instance of your function, you can see the initialization time in the logs and AWS X-Ray trace."
548.98 毫秒(函数持续时间)+ 411.83 毫秒(初始化)= 960.81 毫秒四舍五入到下一个 100 毫秒,导致计费持续时间:1000 毫秒
对于Lambda支持的运行时;初始时间不计入计费持续时间。
我正在测试具有两种不同运行时的应用程序:node.js 和 java 本机可执行文件(提前使用 GraalVM 编译)。
这是启动日志。
Node.js:
Duration: 556.31 ms Billed Duration: 600 ms Memory Size: 128 MB Max Memory Used: 81 MB Init Duration: 365.44 ms
本机可执行文件:
Duration: 548.98 ms Billed Duration: 1000 ms Memory Size: 256 MB Max Memory Used: 106 MB Init Duration: 411.83 ms
如您所见,Duration
和 Init duration
非常接近,但由于某些原因 Billed Duration
几乎是具有本机可执行文件的自定义运行时的 2 倍。
你能解释一下有什么区别吗?我该如何避免这种情况?
对于自定义运行时,您需要为初始化时间付费,并在 docs -
中提及"Initialization counts towards billed execution time and timeout. When an execution triggers the initialization of a new instance of your function, you can see the initialization time in the logs and AWS X-Ray trace."
548.98 毫秒(函数持续时间)+ 411.83 毫秒(初始化)= 960.81 毫秒四舍五入到下一个 100 毫秒,导致计费持续时间:1000 毫秒
对于Lambda支持的运行时;初始时间不计入计费持续时间。