AWS - Lambda

  • 简述

    AWS Lambda 是一种响应式云服务,它检查应用程序中的操作并通过部署用户定义的代码(称为functions. 它自动管理跨多个可用区的计算资源,并在触发新操作时对其进行扩展。
    AWS Lambda 支持用 Java、Python 和 Node.js 编写的代码,并且该服务可以使用 Amazon Linux 支持的语言(包括 Bash、Go 和 Ruby)启动进程。
    以下是使用 AWS Lambda 时的一些推荐技巧。
    • 以无状态风格编写您的 Lambda 函数代码。
    • 切勿在处理程序范围之外声明任何函数变量。
    • 确保有一组 +rxpermissions在您上传的 ZIP 中的文件上,以确保 Lambda 可以代表您执行代码。
    • 不再需要时删除旧的 Lambda 函数。
  • 如何配置 AWS Lambda?

    请按照以下步骤首次配置 AWS Lambda。
    Step 1− 登录 AWS 账户。
    Step 2− 从 AWS 服务部分选择 Lambda。
    亚马逊网络服务
    Step 3− 选择蓝图(可选)并单击跳过按钮。
    拉姆达
    Step 4− 提供必要的详细信息以创建一个Lambda function如以下屏幕截图所示并粘贴将在 DynamoDB 中添加新项目时自动触发的 Node.js 代码。选择所有必需的权限。
    配置功能 Lambda 函数处理程序
    Step 5− 单击下一步按钮并验证您的详细信息。
    Step 6− 单击创建函数按钮。
    现在,当我们选择 Lambda 服务并选择 Event Sources 选项卡时,将没有记录。将至少一个源添加到 Lambda 函数以使其工作。在这里,我们向其中添加 DynamoDB 表。
    我们已经使用 DynamoDB 创建了一个表(我们将在 DynamoDB 章节中详细讨论)。
    Step 7− 选择流选项卡并将其与 Lambda 函数关联。
    亚马逊动态数据库
    您将在 Lambda 服务页面的事件源选项卡中看到此条目。
    Step 8− 在表中添加一些条目。添加并保存条目后,Lambda 服务应触发该函数。可以使用 Lambda 日志对其进行验证。
    Step 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.5GB
    每个账户的计划事件源类型的唯一事件源数 50
    您可以连接到每个计划事件的唯一 Lambda 函数的数量 5
    有关最新更新的限制结构和更多信息,请访问 - https://docs.aws.amazon.com/lambda/latest/dg/limits.html/