首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用容器本地调用AWS Lambda函数

使用容器本地调用AWS Lambda函数
EN

Stack Overflow用户
提问于 2020-12-09 19:05:54
回答 1查看 1.3K关注 0票数 2

所以我一直在探索Lambda容器图像

我有一个lambda函数如下

test.go:

代码语言:javascript
复制
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)
}

我的码头档案:

代码语言:javascript
复制
FROM amazon/aws-lambda-go

COPY bin/test /var/task

CMD [ "test" ]

我使用标记作为testing_go构建了上面的docker文件,并按如下方式运行它

代码语言:javascript
复制
docker run -p 8080:8080 testing_go

并尝试按以下方式调用它

代码语言:javascript
复制
curl -X GET --url http://localhost:8080/2015-03-31/functions/function/invocations?name=JOHN --header 'Content-Type: application/json' --data '{}'

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

代码语言:javascript
复制
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 <not Stringer>).WithValue(type string, val )
map[]

问题:

  1. 如何通过curl在本地调用函数,以便捕获Go lang代码中的Querystring参数?

如果有人能帮我解决这个问题会很有帮助的。

编辑:在打破我的头一段时间后,我能够弄清楚它。答案是

代码语言:javascript
复制
curl -X GET --url http://localhost:8080/2015-1/functions/function/invocations --header 'Content-Type: application/json' --data '{"queryStringParameters": {"name": "john"}}'
EN

回答 1

Stack Overflow用户

发布于 2020-12-10 06:35:33

在尝试了一堆内容之后,我发现如果我们想在本地调用lambda并将一个值作为查询字符串参数传递,我需要这样做:

代码语言:javascript
复制
curl -X GET --url http://localhost:8080/2015-1/functions/function/invocations --header 'Content-Type: application/json' --data '{"queryStringParameters": {"name": "john"}}'
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65223288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档