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

我查看了https://docs.micronaut.io/latest/guide/index.html#functionBeanmicronaut 文档,所有示例都假设事件来自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 生成函数时默认完成)

标签: aws-lambda micronaut


【解决方案1】:

也可以使用 MicronautRequestHandler 来完成。


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

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

【讨论】:

    猜你喜欢
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 2018-02-16
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多