小编Joh*_*des的帖子

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

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

我有一个 lambda 函数如下

测试.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)
}

Run Code Online (Sandbox Code Playgroud)

我的 Docker 文件为:

FROM amazon/aws-lambda-go

COPY bin/test /var/task

CMD [ "test" ]

Run Code Online (Sandbox Code Playgroud)

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

docker run -p 8080:8080 testing_go
Run Code Online (Sandbox Code Playgroud)

并尝试按如下方式调用它

curl -X GET --url http://localhost:8080/2015-03-31/functions/function/invocations?name=JOHN --header 'Content-Type: application/json' --data '{}'
Run Code Online (Sandbox Code Playgroud)

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

Request …
Run Code Online (Sandbox Code Playgroud)

containers go query-string aws-lambda

2
推荐指数
1
解决办法
1970
查看次数

标签 统计

aws-lambda ×1

containers ×1

go ×1

query-string ×1