【问题标题】:Is it possible to reach the Lambda invocation limit(10000) without reaching its concurrency limit(1000)?是否可以达到 Lambda 调用限制(10000)而不达到其并发限制(1000)?
【发布时间】:2019-07-02 09:35:43
【问题描述】:

默认 Lambda 并发执行限制为 1000,调用为 (*10 * current_execution_limit*) 10,000。 https://docs.aws.amazon.com/lambda/latest/dg/limits.html

调用限制将如何以及何时发挥作用?如果我在给定时间在 1 个帐户中总共调用 1001 个函数,它将给出一个限制错误,因为 1000 个函数将处于活动状态,那么在永远无法达到调用限制时设置调用限制有什么意义?我的理解正确吗?如何在不干扰并发限制的情况下达到调用限制?

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    调用频率限制是每秒允许调用函数的请求数的限制。

    对于 同步 调用,只有当您的函数完成执行的时间少于 1/10 秒 = 100 毫秒时,您才能超过此限制,因为在这种情况下,您可以调用超过每秒 10,000 个请求,同时仍不超过 1,000 个并发。如果您的函数运行时间超过 100 毫秒,则每秒调用次数不能超过 10,000 次,因为并发限制会使这不可能。

    对于异步调用,您可以更轻松地超过调用频率限制,因为异步调用无需等待函数实际运行即可返回响应——函数的返回值被丢弃。 Lambda 将请求排入队列并以最大并发运行它们,但它不会以超过调用频率限制的速率接受它们。

    【讨论】:

    • 根据您的描述,对于异步调用,并发限制永远不能超过,因为它是排队并以并发限制运行的?
    • 正确,虽然不是完全“达到”并发限制——更准确地说是“接近”并发限制。如果 6 小时后无法处理,Lambda 将丢弃异步调用尝试。 docs.aws.amazon.com/lambda/latest/dg/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2021-05-14
    相关资源
    最近更新 更多