java - 适用于 IoT 的 AWS Lambda

标签 java amazon-web-services aws-lambda

我目前正在使用 Amazon EC2 实例来处理我们的 IoT 产品的通信(开发阶段)。我在扩展实例的规范以克服 future 设备的增加方面缺乏经验。因此,我正在考虑使用 AWS Lambda 并将所有业务逻辑从 EC2 实例移至 lambda。但现在,有几件事我不明白。

  1. 在 Lambda 函数的高级设置下,我可以为 Lambda 函数设置内存分配。如果我设置了 512mb 内存,那么如果我的函数需要超过 512mb 内存,内存会自动扩展吗?

  2. 我为 lambda 函数设置的内存是否在每次执行时使用?例如,我有 30 个请求需要并发处理。如果我的 Lambda 函数将执行 30 次,这是否意味着我的 30 次执行最多只能使用 512mb 内存?或者我有 512MB 内存可供每次执行使用?

  3. 文档指出 Amazon 可能会重用函数实例。那么,如果我同时有 2 个请求,并且 Amazon 重用了函数的现有副本,这是否意味着我的函数实例有可能一次处理两个请求?

  4. 每次发出请求时都会建立与数据库的连接。这个连接会保留吗?如果保留的话,那么当函数实例终止时,连接也会终止吗?

最佳答案

  1. 如果将内存设置设置为 512MB,则每次调用将恰好有 512MB 可用内存。该设置定义了每次调用函数可以使用的最大值。

  2. 是的,它是每次执行(调用)。

  3. 它将在后续调用中重用相同的函数。它不会重用并发调用的函数。如果您有 2 个并发函数执行,它们将由 Lambda 函数的 2 个独立实例执行。

  4. 如果您在初始化 Lambda 函数时创建数据库连接,而不是等到调用处理程序,那么您可以在多次调用单个函数实例时保留该数据库连接。但是,当您的函数实例终止时,它将无法正常关闭数据库连接。我更喜欢尽可能使用具有 REST API 的数据库(例如 DynamoDB)和 AWS Lambda 函数,以避免处理长期数据库连接的问题。

关于java - 适用于 IoT 的 AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45592659/

相关文章:

amazon-web-services - 在一次通话中向 SNS 发送多条消息

c# - AWS Lambda 访问本地资源或存储 C#

json - JSONPath API 网关主体映射中的访问变量

java - 向 javafx 游戏添加菜单

java - Android 应用程序给出 multidex 运行时错误重复条目 : (Can't read (Duplicate zip entry ))

java - 错误无法找到或加载主类

java - 如何在 JAVA 中创建异步 HTTP 请求?

amazon-web-services - CDK 有没有办法向通过 Cognito 身份验证的用户授予 S3 访问权限

amazon-web-services - 在AWS Elasticsearch Service上托管的Kibana仪表板上使用AWS账单明细创建仪表板

go - 使用 gRPC 解析(解码)由 ALB 触发的 AWS lambda 请求正文