多个AWS lambda向某些HTTP(s)资源发出请求是否会被检测为节流?

多个AWS lambda向某些HTTP(s)资源发出请求是否会被检测为节流?,http,aws-lambda,throttling,Http,Aws Lambda,Throttling,假设我有多个AWS lambda向某个HTTP API发出请求,是否有任何文档说明如何从节流的角度在API端看到这些请求。它们会被视为来自不同主机的请求,还是有时(或始终)来自同一主机的请求?您应该假设同一台机器上不会运行两次相同的Lambda函数。AWS可能会重用同一个实例来运行您的函数,但这是为了节省每次函数调用时下载代码所花费的时间 您可以从AWS Lambda常见问题页面找到以下内容: Q:AWS Lambda会重用函数实例吗? 为了提高性能,AWS Lambda可以选择保留 然后重新使

假设我有多个AWS lambda向某个HTTP API发出请求,是否有任何文档说明如何从节流的角度在API端看到这些请求。它们会被视为来自不同主机的请求,还是有时(或始终)来自同一主机的请求?

您应该假设同一台机器上不会运行两次相同的Lambda函数。AWS可能会重用同一个实例来运行您的函数,但这是为了节省每次函数调用时下载代码所花费的时间

您可以从AWS Lambda常见问题页面找到以下内容:

Q:AWS Lambda会重用函数实例吗?

为了提高性能,AWS Lambda可以选择保留 然后重新使用它来服务后续请求,而不是 创建新副本。了解Lambda如何重用函数的更多信息 实例,请访问我们的文档。您的代码不应假定 这总是会发生的

Q:为什么AWS Lambda函数必须是无状态的?

保持函数无状态可使AWS Lambda快速启动 根据需要提供函数的多个副本,以适应传入的速率 事件。虽然AWS Lambda的编程模型是无状态的,但您的代码 可以通过调用其他web服务(如Amazon)来访问有状态数据 S3或Amazon DynamoDB


另外,要了解更多信息,请查看有趣的博客文章(从2014年开始)

您应该假设同一台机器上不会运行两次相同的Lambda函数。AWS可能会重用同一个实例来运行您的函数,但这是为了节省每次函数调用时下载代码所花费的时间

您可以从AWS Lambda常见问题页面找到以下内容:

Q:AWS Lambda会重用函数实例吗?

为了提高性能,AWS Lambda可以选择保留 然后重新使用它来服务后续请求,而不是 创建新副本。了解Lambda如何重用函数的更多信息 实例,请访问我们的文档。您的代码不应假定 这总是会发生的

Q:为什么AWS Lambda函数必须是无状态的?

保持函数无状态可使AWS Lambda快速启动 根据需要提供函数的多个副本,以适应传入的速率 事件。虽然AWS Lambda的编程模型是无状态的,但您的代码 可以通过调用其他web服务(如Amazon)来访问有状态数据 S3或Amazon DynamoDB


另外,要了解更多信息,请查看有趣的博客帖子(从2014年开始)

如果将Lambda函数放置在VPC之外,API将看到来自不同主机的请求,有时来自同一主机(这是不可预测的,因为AWS重用已配置的热Lambda函数来处理相同配置的请求)

但是,如果在为出口流量配置NAT网关时,将Lambda函数放置在私有子网的VPC中,API将看到它们来自NAT网关IP地址


根据您的要求,您可以使用出于安全目的而需要第二个选项的方法,将IP列入白名单,用于API的入口流量。

如果将Lambda函数置于VPC之外,您的API将看到来自不同主机的请求,有时也会看到来自同一主机的请求(这是不可预测的,因为AWS重用已配置的热Lambda函数来处理相同配置的请求)

但是,如果在为出口流量配置NAT网关时,将Lambda函数放置在私有子网的VPC中,API将看到它们来自NAT网关IP地址


根据您的要求,您可以使用两种方法中的任何一种,其中出于安全目的,主要需要第二种方法来将IP列入白名单,用于API的入口流量。

那么,当我在AWS控制台中创建函数并单击
test
时,情况如何?是否相同?因为我尝试过。一致单击或等待一段时间still在remove API logs中呈现相同的IP地址。或者这只是一个特例?这只是一个特例。根据我对您的新评论的理解,您希望up尽可能多地更改以避免限制。如果您真的想看到AWS Lambda的强大功能,请编写一个脚本,提出100个请求(将花费您几分钱)您将看到该函数与多个IP并行运行。@IvanYouroff您认为您将多长时间从该公共API请求一次?每小时一次?每分钟一次?我建议您看一看:……这不是最干净的示例,但会起作用。另一种方法是让lambda函数向随机htt发出请求p从您添加到代码的列表中,您可以找到更多或使用在世界各地都有服务器的付费服务器(每天更改两次IP)哦,这是个好主意!谢谢!那么,当我在AWS控制台中创建函数并单击
test
时呢?应该是一样的吗?因为我已经尝试过了。一致地单击或等待一段时间仍然会在remove API日志中呈现相同的IP地址。或者这只是一种特殊情况?这只是一种特殊情况。根据我对您的新应用程序的理解如果你真的想看到AWS Lambda的强大功能,那么写一个脚本,它将发出100个请求(将花费你几分钱)您将看到该函数与多个IP并行运行。@IvanYouroff您认为您将多长时间从该公共API请求一次?每小时一次?每分钟一次?我建议您看一看:……这不是最干净的示例,但会起作用。另一种方法是让lambda函数向随机htt发出请求从您添加到代码中的列表中,您可以查找更多或使用