Amazon Web Services - Lambda
AWS Lambda 是一种响应式云服务,可检查应用程序内的操作并通过部署用户定义的代码(称为函数)做出响应。它会自动管理跨多个可用区域的计算资源,并在触发新操作时对其进行扩展。
AWS Lambda 支持用 Java、Python 和 Node.js 编写的代码,并且该服务可以使用 Amazon Linux 支持的语言(包括 Bash、Go 和 Ruby)启动进程。
以下是使用 AWS Lambda 时的一些建议提示。
以无状态样式编写 Lambda 函数代码。
切勿在处理程序范围之外声明任何函数变量。
确保在上传的 ZIP 中的文件上具有一组 +rx 权限,以确保 Lambda 可以代表您执行代码。
不再需要时删除旧的 Lambda 函数。
如何配置 AWS Lambda?
关注按照这些步骤首次配置 AWS Lambda。
步骤 1 − 登录 AWS 账户。
步骤 2 − 从 AWS 服务部分选择 Lambda。
步骤 3 − 选择蓝图(可选)并单击跳过按钮。
步骤 4 − 提供创建 Lambda 函数 所需的详细信息(如以下屏幕截图所示),并粘贴 Node.js 代码,该代码将在 DynamoDB 中添加新项目时自动触发。选择所有必需的权限。
步骤 5 − 单击下一步按钮并验证您的详细信息。
步骤 6 − 单击创建函数按钮。
现在,当我们选择 Lambda 服务并选择事件源选项卡时,将没有任何记录。至少向 Lambda 函数添加一个源才能正常工作。在这里,我们向其中添加 DynamoDB 表。
我们已经使用 DynamoDB 创建了一个表(我们将在 DynamoDB 章节中详细讨论这一点)。
步骤 7 − 选择流选项卡并将其与 Lambda 函数关联。
您将在 Lambda 服务页面的事件源选项卡中看到此条目。
步骤 8 − 在表中添加一些条目。添加并保存条目后,Lambda 服务应触发该函数。可以使用 Lambda 日志进行验证。
步骤 9 − 要查看日志,请选择 Lambda 服务并单击监控选项卡。然后单击 CloudWatch 中的"查看日志"。
AWS Lambda 的优势
以下是使用 Lambda 任务的一些优势 −
Lambda 任务不需要像 Amazon SWF 活动类型那样进行注册。
我们可以使用您已在工作流中定义的任何现有 Lambda 函数。
Lambda 函数由 Amazon SWF 直接调用;无需设计程序来实现和执行它们。
Lambda 为我们提供了用于跟踪函数执行的指标和日志。
AWS Lambda 限制
以下是三种类型的 Lambda 限制。
节流限制
节流限制是每个账户 100 个并发 Lambda 函数执行,并应用于同一区域内所有函数的总并发执行。
计算函数并发执行次数的公式 =(函数执行的平均持续时间)X(AWS Lambda 处理的请求或事件数)。
达到节流限制时,它会返回错误代码为 429 的节流错误。15-30 分钟后,您可以重新开始工作。可以通过联系 AWS 支持中心来增加节流限制。
资源限制
下表显示了 Lambda 函数的资源限制列表。
资源 | 默认限制 |
---|---|
临时磁盘容量("/tmp"空间) | 512 MB |
文件描述符数量 | 1,024 |
进程和线程数量(合计总计) | 1,024 |
每个请求的最大执行时长 | 300 秒 |
调用请求正文负载大小 | 6 MB |
调用响应正文负载大小 | 6 MB |
服务限制
下表显示了部署 Lambda 函数的服务限制列表。
项目 | 默认限制 |
---|---|
Lambda 函数部署包大小(.zip/.jar 文件) | 50 MB |
可压缩到部署包中的代码/依赖项的大小(未压缩的 zip/jar 大小) | 250 MB |
每个区域可上传的所有部署包的总大小 | 1.5 GB |
每个账户的计划事件源类型的唯一事件源数量 | 50 |
您可以连接到每个计划事件的唯一 Lambda 函数的数量 | 5 |
如需了解最新更新的限制结构和更多信息,请访问 − https://docs.aws.amazon.com/lambda/latest/dg/limits.html/