我刚刚加入了一个开发团队,这个项目应该使用Amplify在云中运行。 我有一个名为usershandler的函数,我想在本地运行它。 为此,我使用了:Amplify invoke function UsersHandler
这是我得到的输出:
Starting execution...
EVENT: {"httpMethod":"GET","body":"{\"name\": \"Amplify\"}","path":"/users","resource":"/{proxy+}","queryStringParameters":{}}
App started
get All VSM called
Connection to database was a success
null
Result:
{"statusCode":200,"body":"{\"success\":true,\"results\":[]}","headers":{"x-powered-by":"Express","access-control-allow-origin":"*","access-control-allow-headers":"Origin, X-Requested-With, Content-Type, Accept","content-type":"application/json; charset=utf-8","content-length":"29","etag":"W/\"1d-4wD7ChrrlHssGyekznKfKxR7ImE\"","date":"Tue, 21 Jul 2020 12:32:36 GMT","connection":"close"},"isBase64Encoded":false}
Finished execution.
编辑:另外,当运行invoke命令时,amplify会向我请求src/event.json,而我看到它在为一些??
预期行为:服务器应该继续运行以便我可以使用它。 实际行为:它总是在完成执行消息之后停止。
到db的连接工作正常,config.json包含正确的值。 不知道它为什么会这样。 有人遇到过同样的问题吗? 祝你今天愉快。
简短的回答:您正在运行invoke命令,它正在做它应该做的事情--调用lambda函数。
如果您正在寻找一个本地API,那么运行以下命令:
SAM本地启动-API
这将读取您的模板,并基于您已经设置的端点,在本地运行他们本质上模仿API网关本地。 在这里的官方文档中阅读更多关于它的信息。
解释:
这个命令是AWS无服务器应用程序模型(AWS SAM)的一个提供。 开发无服务器应用程序的工具。 它本质上是AWS CloudFormation的抽象。 类似地,Amplify是一个抽象,它不仅使开发和管理后端变得简单,而且还为前端带来了这种能力。 由于这两个工具本质上都在下面使用Cloudformation模板,因此您可以利用一个工具和另一个工具的功能。
SAM为本地开发提供了一组健壮的工具,包括运行本地lambda模拟服务器,以防您没有使用API Gateway。
我使用这种组合来开发和测试我前端和后端,后端使用golang语言,这是一种不如javascript成熟的语言,但到目前为止,它是一种具有Amplify的后端语言。