为了账号安全,请及时绑定邮箱和手机立即绑定

在本地运行另一个 lambda 函数

在本地运行另一个 lambda 函数

Go
胡说叔叔 2023-05-22 17:08:06
我正在尝试开发一个必须与 S3 和 dynamoDB 一起使用的 lambda。问题是,因为我不熟悉 aws for go 的 SDK,所以我将进行大量测试和尝试。每次我更改代码都是另一次我必须编译项目并将其上传到 aws。有没有办法在当地做?传递某种配置,让我从我的计算机本地调用 aws 服务?谢谢!这个主要是用golang做的,其他语言比如python可以直接在aws lambda函数页面上运行,node有cloud9支持。
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您可以使用 lambci docker 镜像在本地执行您的代码,使用与 AWS 上使用的相同的 Lambda 运行时。

您也可以在另一个容器中本地运行 dynamo DB

要模拟 Lambda 上可用的凭据/角色,只需通过环境变量传入 Api creds。(对于 s3 访问)

干杯-JH


查看完整回答
反对 回复 2023-05-22
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

您可以按照AWS 文档中的说明在本地下载 AWS lambda 运行时环境


mkdir -p ~/.aws-lambda-rie && curl -Lo ~/.aws-lambda-rie/aws-lambda-rie \

https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie \

&& chmod +x ~/.aws-lambda-rie/aws-lambda-rie               

要在本地运行测试 lambda 函数,您可以在终端会话上运行:


~/.aws-lambda-rie/aws-lambda-rie go run main.go

这将启动一个侦听端口 8080 的服务器。要真正触发 lambda 函数,您最终可以在另一个终端会话上运行:


curl -XPOST "http://localhost:8080/2015-03-31/functions/function/invocations" -d '{"Name": "World"}'

最后但同样重要的是,我建议您看看localstack。您可以启动一个在本地运行的 docker 容器,并将模拟 AWS S3 和 DynamoDB API,因此您仍然可以检查代码的正确性,而无需将任何内容部署到 AWS。


查看完整回答
反对 回复 2023-05-22
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您可以使用这个aws-lambda-go-test模块,它可以在本地运行 lambda 并可用于测试来自 lambda 的实际响应

完全公开我分叉并升级了这个模块


查看完整回答
反对 回复 2023-05-22
  • 3 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信