登录
首页 >  Golang >  Go问答

Go语言中如何获取AWS lambda函数的参数

来源:stackoverflow

时间:2024-02-16 09:00:24 235浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《Go语言中如何获取AWS lambda函数的参数》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我在 aws lambda 上使用 go,并且正在编写以下代码:

func hanldelambdafunction(ctx context.context, request events.apigatewayproxyrequest) (response, error) {
    limitstring := request.querystringparameters["limit"]
    fmt.println("limitstring", limitstring) //nothing is written
}

我正在使用 api 网关测试 lambda 函数并提供参数:

limit=2

lambda 函数正在成功执行,但未读取限制。

如何访问参数?


解决方案


您发布的代码的问题是,它甚至不应该编译。最大的问题是,没有 response 结构。它可能应该是 events.apigatewayproxyresponse

此外,该代码不会 return 任何内容,即使您定义它应该返回 responseerror

我拿了你的代码并修复了所有这些,它对我有用。固定代码如下所示:

package main

import (
    "context"
    "fmt"
    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
)

func hanldelambdafunction(ctx context.context, request events.apigatewayproxyrequest) (events.apigatewayproxyresponse, error) {
    limitstring := request.querystringparameters["limit"]
    fmt.println("limitstring", limitstring) //nothing is written

    return events.apigatewayproxyresponse{statuscode: 200}, nil
}

func main() {
    lambda.start(hanldelambdafunction)
}

输出为:

start requestid: 0c63f94f-b0aa-49de-ba6d-b1150d711b8a version: $latest
limitstring 2
end requestid: 0c63f94f-b0aa-49de-ba6d-b1150d711b8a
report requestid: 0c63f94f-b0aa-49de-ba6d-b1150d711b8a  duration: 0.56 ms   billed duration: 100 ms memory size: 512 mb max memory used: 34 mb

如果我不得不猜测,那么您的代码甚至无法运行。如果它可以运行但无法读取 limit 参数,它至少应该打印 limitstring

请记住,如果您为 aws lambda 编译 go 二进制文件,则需要为 linuxamd64 编译它,如下所示:

$ GOOS=linux GOARCH=amd64 go build

今天关于《Go语言中如何获取AWS lambda函数的参数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

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