使用 aws lambda 运行 golang gin api 项目

Luc*_*aga 5 go aws-lambda

我正在尝试使用 amazon lambda 运行我的 go 项目,这是我当前的 main.go

https://gist.github.com/krakiun/61e4e4dc5ab91f557e481f0230ed3ba0
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但没有一个有效我如何在 lambda 中运行这个项目,此时如果我运行 using 则router.Run(cfg.HTTP.ListenAddr)工作正常,没有任何错误,

与此log.Fatal(gateway.ListenAndServe(cfg.HTTP.ListenAddr, router))是死与此错误:

expected AWS Lambda environment variables [_LAMBDA_SERVER_PORT AWS_LAMBDA_RUNTIME_API] are not defined
exit status 1
Run Code Online (Sandbox Code Playgroud)

如何修复我的代码以在 aws lambda 中运行?

Pha*_* Ky 0

你必须隔离环境

以下代码在本地运行

router.Run(cfg.HTTP.ListenAddr)
Run Code Online (Sandbox Code Playgroud)

lambda 只能在 AWS Lambda 函数上运行。您必须将其部署到 lambda

lambda.Start(router)
Run Code Online (Sandbox Code Playgroud)

您可以在https://maxrohde.com/2021/05/01/lambda-go-starter-project/查看该示例。源代码在这里:https://github.com/mxro/go-lambda-starter-project/tree/main/packages/lambda-go-gin