AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

示例:使用流进行处理程序输入/输出 (Java)

如果不想使用 POJO,或如果 Lambda 的序列化方法不能满足需求,则可以使用字节流实现。在这种情况下,可以使用 InputStreamOutputStream 作为处理程序的输入和输出类型。示例处理程序函数如下所示:

Copy
public void handler(InputStream inputStream, OutputStream outputStream, Context context) { ... }

注意:在这种情况下,处理程序函数使用参数同时接收请求和响应流。

下面是一个 Lambda 函数示例,它实现使用 InputStreamOutputStream 类型作为 inputoutput 参数的处理程序。

注意

输入有效负载必须是有效的 JSON,但输出流没有此类限制。支持任意字节数。

Copy
package example; import java.io.InputStream; import java.io.OutputStream; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; import com.amazonaws.services.lambda.runtime.Context; public class Hello implements RequestStreamHandler{ public static void handler(InputStream inputStream, OutputStream outputStream, Context context) throws IOException { int letter; while((letter = inputStream.read()) != -1) { outputStream.write(Character.toUpperCase(letter)); } } }

您可以执行以下操作来测试代码:

  • 使用上述代码创建部署程序包。

  • 将部署程序包上传到 AWS Lambda 并创建 Lambda 函数。可使用控制台或 AWS CLI 完成此操作。

  • 可以通过提供示例输入的方式手动调用代码。例如:

    Copy
    test

按照“入门”中提供的说明进行操作。有关更多信息,请参阅 步骤 2.3:(可选)创建用 Java 编写的 Lambda 函数。注意以下不同:

  • 创建部署程序包时,不要忘了 aws-lambda-java-core 库依赖项。

  • 创建 Lambda 函数时,指定 example.Hello::handler (package.class::method) 作为处理程序值。