AWS Lambda Golang HelloWorld 快速入门
作者:小教学发布时间:2023-10-03分类:程序开发学习浏览:84
导读:操作步骤以下测试基于WSL2Ubuntu22.04环境#下载最新golangwgethttps://golang.google.cn/dl/go1...
操作步骤
以下测试基于 WSL2 Ubuntu 22.04 环境
# 下载最新 golang
wget https://golang.google.cn/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
# 创建项目文件夹
mkdir aws-lambda-go && cd aws-lambda-go
# 初始化项目
go mod init aws-lambda-go
# 安装依赖
go get github.com/aws/aws-lambda-go/lambda
# 编辑主函数
vim main.go
// main.go
package main
import (
"fmt"
"context"
"github.com/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
也就是前面操作步骤中的编译命令才能正确运行. 相关讨论:
https://github.com/aws/aws-lambda-go/issues/340
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版