[AWS][Amplify] 本地调用函数无错误地崩溃
[AWS][Amplify] Invoke function locally crashs with no error
我刚加入一个开发团队,该项目应该 运行 在云端使用 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.
编辑:此外,当 运行 调用调用命令时,amplify 要求我提供 src/event.json,而我看到它正在寻找 index.js对于一些 ??
编辑 2 [已解决]:将 @aws-amplify/cli 降级到 4.14.1 似乎可以解决此问题:)
预期行为:服务器应该继续 运行ning 以便我可以使用它..
实际行为:它总是在完成执行消息后停止。
与数据库的连接工作正常,config.json 包含正确的值。不知道为什么会这样。有人有同样的问题吗?
祝你有个愉快的一天。
简短回答:您正在 运行 执行调用命令,它正在执行它应该执行的操作 - 调用 lambda 函数。
如果您希望获得本地 API 起来,那么 运行 以下命令:
sam local start-api
这将读取您的模板并根据您设置的端点,运行 它们在本地实质上是在本地模拟 API 网关。在官方文档中阅读更多相关信息 here.
解释:
这个命令来是AWS Serverless Application Model (AWS SAM). A tool to develop serverless application. It is essentially an abstraction of AWS Cloufdformation的提供之一。类似地,Amplify 是一种抽象,不仅可以简化后端的开发和管理,还可以将这种能力带到前端。
由于它们本质上都使用底层的 Cloudformation 模板,因此您可以将一种工具的功能与另一种工具结合使用。
SAM 为本地开发提供了一组强大的工具,包括 运行 本地 lambda 模拟服务器,以防您不使用 API 网关。
我使用这种组合来开发和测试我的前端以及使用 golang 编写的后端,这种语言目前还不如 javascript 作为带有 Amplify 的后端语言成熟。
我刚加入一个开发团队,该项目应该 运行 在云端使用 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.
编辑:此外,当 运行 调用调用命令时,amplify 要求我提供 src/event.json,而我看到它正在寻找 index.js对于一些 ??
编辑 2 [已解决]:将 @aws-amplify/cli 降级到 4.14.1 似乎可以解决此问题:)
预期行为:服务器应该继续 运行ning 以便我可以使用它.. 实际行为:它总是在完成执行消息后停止。
与数据库的连接工作正常,config.json 包含正确的值。不知道为什么会这样。有人有同样的问题吗? 祝你有个愉快的一天。
简短回答:您正在 运行 执行调用命令,它正在执行它应该执行的操作 - 调用 lambda 函数。
如果您希望获得本地 API 起来,那么 运行 以下命令:
sam local start-api
这将读取您的模板并根据您设置的端点,运行 它们在本地实质上是在本地模拟 API 网关。在官方文档中阅读更多相关信息 here.
解释:
这个命令来是AWS Serverless Application Model (AWS SAM). A tool to develop serverless application. It is essentially an abstraction of AWS Cloufdformation的提供之一。类似地,Amplify 是一种抽象,不仅可以简化后端的开发和管理,还可以将这种能力带到前端。
由于它们本质上都使用底层的 Cloudformation 模板,因此您可以将一种工具的功能与另一种工具结合使用。
SAM 为本地开发提供了一组强大的工具,包括 运行 本地 lambda 模拟服务器,以防您不使用 API 网关。
我使用这种组合来开发和测试我的前端以及使用 golang 编写的后端,这种语言目前还不如 javascript 作为带有 Amplify 的后端语言成熟。