AWSLambdaGolangHelloWorld快速入门
- 人工智能
- 2025-08-17 23:00:04

操作步骤
以下测试基于 WSL2 Ubuntu 22.04 环境
# 下载最新 golang wget golang.google /dl/go1.21.1.linux-amd64.tar.gz # 解压 tar -C ~/.local/ -xzf go1.21.1.linux-amd64.tar.gz # 配置环境变量 PATH echo 'export PATH=$PATH:~/.local/go/bin' >> ~/.bashrc source ~/.bashrc # 确认执行版本 go version # go version go1.21.1 linux/amd64 # 配置使用国内镜像 go env -w GO111MODULE=on go env -w GOPROXY= goproxy ,direct # 创建项目文件夹 mkdir aws-lambda-go && cd aws-lambda-go # 初始化项目 go mod init aws-lambda-go # 安装依赖 go get github /aws/aws-lambda-go/lambda # 编辑主函数 vim main.go // main.go package main import ( "fmt" "context" "github /aws/aws-lambda-go/lambda" ) type MyEvent struct { Name string `json:"name"` } func HandleRequest(ctx context.Context, name MyEvent) (string, error) { return fmt.Sprintf("Hello %s!", name.Name ), nil } func main() { lambda.Start(HandleRequest) } # 编译 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o main main.go # 打包 zip -jrm main.zip main来到 Lambda 控制台, 创建新的函数, Runtime 选择 Go 1.x Code > Upload from > .zip file
选择前面编译并打包的 main.zip 文件上传. 随后创建新的 Test 匹配 Lambda 处理的 Event 数据格式:
{ "name": "Dexter" }Test, 欧耶~报错了! 返回 Code 标签页, 看到默认的 Handler 设置的是 hello, 这和我们写的入口函数名称不匹配, 是导致测试失败的原因. Edit 修改 Handler 为 main 再次 Test, succeeded!
填坑记录参考 官方文档 中的编译命令:
GOOS=linux GOARCH=amd64 go build -o bootstrap main.go编译打包上传后在测试时会报错:
/var/task/main: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /var/task/main)需要在编译时加上参数 CGO_ENABLED=0 也就是前面操作步骤中的编译命令才能正确运行. 相关讨论: github /aws/aws-lambda-go/issues/340
AWSLambdaGolangHelloWorld快速入门由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“AWSLambdaGolangHelloWorld快速入门”
下一篇
《幸福之路》罗素(读书笔记)