登录
首页 >  Golang >  Go问答

API 网关 -> Go Lambda 参数

来源:stackoverflow

时间:2024-04-04 19:57:37 395浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《API 网关 -> Go Lambda 参数》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我正在努力将 api gateway 正确连接到我配置的简单 go lambda。

lambda 是一个非常简单的函数,例如:

func foo(bar string) (string, error) {
   return fmt.Println(bar)
}
func main() {
   lambda.Start(foo)
}

我可以执行一个值为“helloworld”的简单测试事件,它会按预期返回。

但是,我似乎不知道如何设置 api 网关以允许我只调用 /helloworld 或 ?bar=helloworld 并让它返回。我知道我可以使用 events.apigatewayproxyrequest 作为参数并返回 events.apigatewayproxyresponse,但是没有其他方法吗?这样做似乎让我只能通过 api 网关访问这个函数,这看起来很愚蠢。


解决方案


您的 lambda 函数应具有有效签名,以便由 api gateway 或任何其他事件源触发。对于 api gateway,您的 lambda 函数处理程序将如下所示:

func handler(ctx context.Context, request events.APIGatewayProxyRequest (events.APIGatewayProxyResponse, error) {

}

您可以从 request 获取参数,使用适当的参数调用 foo 函数并返回 apigatewayproxyresponse。这样,您的 foo 函数仅执行其应该执行的操作,并且对 aws 事件一无所知,并且您的 handler 函数负责与 api gateway 进行通信。

今天关于《API 网关 -> Go Lambda 参数》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>