我试图使用函数创建一个AWS Lambda函数,即我用以下方法创建了poc项目:
mn create-function-app --build=maven --jdk=11 micronaut-test我可以很容易地构建和部署到AWS,但是我想知道是否有一种在本地运行它的方法,这样我就可以像运行一个常规的micronaut应用程序一样快速地测试更改。
mvn mn:run现在只是一个示例应用程序,重新定义我的问题;我可以在BookRequestHandler中触发execute方法而不将它上传到AWS吗?
提前谢谢。
发布于 2021-06-15 17:27:51
Maven概要文件可用于选择运行时(在本文中使用netty)和主类:
<profiles>
<profile>
<id>local</id>
<properties>
<exec.mainClass>micronaut.Application</exec.mainClass>
<micronaut.runtime>netty</micronaut.runtime>
</properties>
<dependencies>
<dependency>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-http-server-netty</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
</profile>
</profiles>使用调用函数的Post方法创建带有控制器的主类
package micronaut;
import io.micronaut.http.annotation.Body;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Post;
import io.micronaut.runtime.Micronaut;
import micronaut.test.Book;
import micronaut.test.BookRequestHandler;
import micronaut.test.BookSaved;
public class Application {
public static void main(String[] args) {
Micronaut.run(Application.class, args);
}
@Controller()
public static class LambdaController {
private static final BookRequestHandler handler = new BookRequestHandler();
@Post
public BookSaved execute(@Body Book book) {
return handler.execute(book);
}
}
}然后一起跑
mvnw mn:run -Plocal现在你可以用
curl --location --request POST 'http://localhost:8080/' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "Test"}'返回
{
"name": "Test",
"isbn": "2a163c3d-4bd6-444d-914d-58daf3e649b8"
}这有点麻烦,要测试您的函数,您可以看到micronaut-test/src/test/java/micronaut/test/BookRequestHandlerTest.java类或测试Lambda处理程序官方文档。
备注:用于用mn -app -f aws创建的应用程序.不需要pom.xml中的,而是生成Application.java。
https://stackoverflow.com/questions/67894014
复制相似问题