Amazon LambdaRuby 中的 函数处理程序 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon LambdaRuby 中的 函数处理程序

Lambda 函数处理程序是函数代码中处理事件的方法。当调用函数时,Lambda 运行处理程序方法。您的函数会一直运行,直到处理程序返回响应、退出或超时。

在以下示例中,文件 function.rb 将定义一个名为 handler 的处理程序方法。该处理程序函数将选取两个对象作为输入并返回一个 JSON 文档。

例 function.rb
require 'json' def handler(event:, context:) { event: JSON.generate(event), context: JSON.generate(context.inspect) } end

在您的函数配置中,handler 设置指示 Lambda 在何处查找处理程序。对于上述示例,此设置的正确值为 function.handler。它包含两个由点分隔的名称:文件的名和处理程序方法的名称。

您还可以在类中定义处理程序方法。以下示例在名为 process 的模块中的名为 Handler 的类上定义了一个名为 LambdaFunctions 的处理程序。

例 source.rb
module LambdaFunctions class Handler def self.process(event:,context:) "Hello!" end end end

在本例中,处理程序设置为 source.LambdaFunctions::Handler.process

该处理程序接受的两个对象是调用事件和上下文。事件是一个 Ruby 对象,包含由调用方提供的负载。如果该负载为 JSON 文档,则事件对象为 Ruby 哈希。否则,它是一个字符串。上下文对象具有一些方法和属性,它们提供了有关调用、函数和执行环境的信息。

函数处理程序在 Lambda 函数每次被调用时执行。处理程序外部的静态代码对该函数的每个实例执行一次。如果您的处理程序使用开发工具包客户端和数据库连接之类的资源,您可以在处理程序方法外部创建这些资源以对多个调用重复使用它们。

您的函数的每个实例都可以处理多个调用事件,但一次只能处理一个事件。在给定的任何时间,处理事件的实例数都是您的函数的并发。有关 Lambda 执行环境的更多信息,请参阅 Lambda 执行环境