登录
首页 >  Golang >  Go问答

AWS Lambda函数的URL没有在Go中提供API网关

来源:stackoverflow

时间:2024-02-10 11:33:26 355浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《AWS Lambda函数的URL没有在Go中提供API网关》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有一个使用 api gateway 调用的 lambda 函数。 该函数通过以下代码使用 get 方法来工作:

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

    // add code here

    return events.APIGatewayProxyResponse{Body: request.Body, StatusCode: 200}, nil
}

func main() {
    lambda.Start(handleRequest)
}

我有这个 event.apigatewayproxyrequestget 方法。但是,当我尝试将 url 迁移到函数 url 时,我没有类似的设置 get 方法。 url 如何知道在 postman 中使用哪种方法?还有...

我们是否有 event.apigatewayproxyrequest 的等效项来执行请求?

当我使用 url 调用它时,出现 502 bad gateway 错误。


正确答案


lambda 函数 url 的 aws 事件为 events.LambdaFunctionURLRequestrelated types

所以你的处理程序签名应该如下所示:

func handlerequest(ctx context.context, request events.lambdafunctionurlrequest) (events.lambdafunctionurlresponse, error) {
    // add code here
    return events.lambdafunctionurlresponse{body: request.body, statuscode: 200}, nil
}

创建 lambda 的 url 后,调用者(例如 postman)可以指定任何 http 方法,您可以通过以下方式在处理程序中访问该方法:

// request is LambdaFunctionURLRequest
request.RequestContext.HTTP.Method

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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