如何创建使用 S3Event 触发的 micronaut AWS Lambda 函数?

Posted

技术标签:

【中文标题】如何创建使用 S3Event 触发的 micronaut AWS Lambda 函数?【英文标题】:How to create a micronaut AWS Lambda function triggered using an S3Event? 【发布时间】:2019-05-31 14:06:04 【问题描述】:

我查看了https://docs.micronaut.io/latest/guide/index.html#functionBean 的micronaut 文档,所有示例都假设事件来自API Gateway,并且请求正文作为POJO 发送。 Micronaut 是否还可以支持 S3Event 和所有其他 AWS Lambda 事件类型的无服务器功能?示例:https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3-example-deployment-pkg-java

可以支持以下内容吗?我没有找到 AWS 通常期望在 Micronaut 中的 java 函数如何映射到 RequestHandler<S3Event, String>

package example;

import io.micronaut.function.FunctionBean;
import java.util.function.Consumer;

@FunctionBean("hello-world-java")
public class HelloJavaFunction implements Function<S3Event, String> 

    @Override
    public String apply(S3Event)  
        return "Hello world!";
    

【问题讨论】:

您的实现看起来正确。你试过吗?函数 bean 的名称必须以 micronaut.function.name 的形式出现在 application.yml 中(从 CLI 生成函数时默认完成) 【参考方案1】:

也可以使用 MicronautRequestHandler 来完成。


@FunctionBean("hello-world-java)
public class HelloJavaFunction extends MicronautRequestHandler<S3Event, String> 

    @Override
    public String execute(final S3Event event) 
        return "Hello world!";
    

【讨论】:

以上是关于如何创建使用 S3Event 触发的 micronaut AWS Lambda 函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何用star micronics打印€符号?

DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)

AI-Info-Micron:用内存解决方案演化神经网络智能

AI-Info-Micron:人如其食:人工智能和人类微生物组

DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)

DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)