gpt4 book ai didi

amazon-web-services - AWS Lambda 函数如何抛出 SubnetIPAddressLimitReachedException?

转载 作者:行者123 更新时间:2023-12-02 05:58:06 25 4
gpt4 key购买 nike

在我的一个项目中,其中一个 AWS Lambda 函数(通常每分钟调用一次)在其函数内调用另一个 AWS Lambda 函数(using AWSLambdaClient lambdaClient;)。有时 lambdaClient 会在调用 lambda 函数时抛出 SubnetIPAddressLimitReachedException:

2016-11-24 14 <--------------------> INFO xyzHandler:395 - Lambda 无法设置 VPC 访问Lambda 函数,因为一个或多个配置的子网没有可用的 IP 地址。(服务:AWSLambda;状态代码:502;错误代码:SubnetIPAddressLimitReachedException;请求 ID:XXXX)

我搜索了 herehere ,但我没有找到任何关于此异常的明确解释?

最佳答案

当您的 Lambda 函数配置为在您的 VPC 内执行时,您可以指定一个或多个子网 ID,Lambda 函数将在其中执行。

您指定的子网内部需要有足够的空闲 IP 地址,以容纳 Lambda 函数的所有同时执行。

例如,如果您选择一个子网并定义为 /24,那么您最多有 254 个左右的 IP 地址。

如果您的 Lambda 函数同时被调用 300 次,它们将需要 300 个单独的 IP 地址,而您的子网无法容纳这些地址。在这种情况下,您将收到 SubnetIPAddressLimitReachedException 错误。

当 Lambda 函数完成时,它们的资源将被重用。因此,他们将释放已使用的 IP 地址和/或在后续 Lambda 执行期间重新使用它们。

目前没有办法限制 Lambda 本身同时执行的数量。我见过人们使用其他服务(例如 Kinesis)来限制它。

有 3 种解决途径:

  1. 如果您的 Lambda 函数不需要在您的 VPC 内执行和/或从您的 VPC 内访问资源,请将其移出 VPC。
  2. 使用更多可用 IP 地址指定更多或不同的子网 ID。
  3. 修改您的 Lambda 函数,使其不调用其他 Lambda 函数。根 Lambda 函数和随后调用的 Lambda 函数都需要一个 IP 地址。

关于amazon-web-services - AWS Lambda 函数如何抛出 SubnetIPAddressLimitReachedException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40791288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com