首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本地运行micronaut服务器

本地运行micronaut服务器
EN

Stack Overflow用户
提问于 2021-06-08 20:13:49
回答 1查看 728关注 0票数 2

我试图使用函数创建一个AWS Lambda函数,即我用以下方法创建了poc项目:

代码语言:javascript
复制
mn create-function-app --build=maven --jdk=11 micronaut-test

我可以很容易地构建和部署到AWS,但是我想知道是否有一种在本地运行它的方法,这样我就可以像运行一个常规的micronaut应用程序一样快速地测试更改。

代码语言:javascript
复制
mvn mn:run

现在只是一个示例应用程序,重新定义我的问题;我可以在BookRequestHandler中触发execute方法而不将它上传到AWS吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-15 17:27:51

Maven概要文件可用于选择运行时(在本文中使用netty)和主类:

代码语言:javascript
复制
    <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方法创建带有控制器的主类

代码语言:javascript
复制
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);
        }
    }
}

然后一起跑

代码语言:javascript
复制
mvnw mn:run -Plocal

现在你可以用

代码语言:javascript
复制
curl --location --request POST 'http://localhost:8080/' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "Test"}'

返回

代码语言:javascript
复制
{
    "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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67894014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档