登录
首页 >  Golang >  Go问答

在本地环境中调用AWS Lambda函数

来源:stackoverflow

时间:2024-02-23 12:03:27 242浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《在本地环境中调用AWS Lambda函数》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

所以我一直在尝试探索 lambda 容器镜像

我有一个 lambda 函数,如下

test.go:

package main

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


func handlerequest(ctx context.context, request events.apigatewayproxyrequest) (events.apigatewayproxyresponse, error) {

    fmt.println("request %s \n\n", request)
    fmt.println("context %s \n\n", ctx)

    name := request.querystringparameters["name"]

    return events.apigatewayproxyresponse{body: fmt.sprint("hello %s", name), statuscode: 200}, nil
}

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

我的 docker 文件为:

from amazon/aws-lambda-go

copy bin/test /var/task

cmd [ "test" ]

我构建了上面的docker文件,标签为testing_go,并按如下方式运行

docker run -p 8080:8080 testing_go

并尝试按如下方式调用它

curl -x get --url http://localhost:8080/2015-03-31/functions/function/invocations?name=john --header 'content-type: application/json' --data '{}'

我看到容器日志显示了以下上下文和请求的值

request %s 

 {   map[] map[] map[] map[] map[] map[] {        {            }  map[]   0 }  false}
context %s 

 context.background.withdeadline(2020-12-23 03:07:06.186819041 +0000 utc [325h22m17.998420615s]).withvalue(type *lambdacontext.key, val ).withvalue(type string, val )
map[]

问题:

  1. 如何通过curl 在本地调用该函数,以便可以捕获go lang 代码中的查询字符串参数?

如果有人能帮助我解决这个问题,那将非常有帮助。

编辑: 经过一段时间的思考后,我终于明白了。 答案是

curl -X GET --url http://localhost:8080/2015-1/functions/function/invocations --header 'Content-Type: application/json' --data '{"queryStringParameters": {"name": "john"}}'

解决方案


在尝试了一堆东西之后,我发现如果我们想在本地调用我的 lambda 并传递一个值作为查询字符串参数,我需要按如下方式执行。

curl -X GET --url http://localhost:8080/2015-1/functions/function/invocations --header 'Content-Type: application/json' --data '{"queryStringParameters": {"name": "john"}}'

到这里,我们也就讲完了《在本地环境中调用AWS Lambda函数》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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