Jér*_*émy 5 amazon-s3 go aws-lambda aws-sam localstack
我正在尝试在本地测试一个 lambda 函数,该函数在 S3 存储桶上列出存储桶。
为了拥有本地 S3 存储桶进行测试,我使用 localstack:
docker run --rm -it -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack
Run Code Online (Sandbox Code Playgroud)
然后我可以创建一个存储桶(它有效):
aws s3api --endpoint-url=http://localhost:4566 --region us-east-1 create-bucket --bucket images
Run Code Online (Sandbox Code Playgroud)
然后我有一个 lambda 尝试连接到 S3 并列出存储桶:
docker run --rm -it -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack
Run Code Online (Sandbox Code Playgroud)
为了在本地测试我的 lambda,我使用 SAM。这是模板:
aws s3api --endpoint-url=http://localhost:4566 --region us-east-1 create-bucket --bucket images
Run Code Online (Sandbox Code Playgroud)
当我执行 lambda 时:
sam local invoke AdBannerLambda -e test_data/payload.json
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
START RequestId: 7c9da60f-9a68-476b-bcd8-c24da422e80c Version: $LATEST
Got an error retrieving buckets:
operation error S3: ListBuckets, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Get "http://localhost:4566/": dial tcp 127.0.0.1:4566: connect: connection refused
2022/07/28 14:54:10 <nil>
28 Jul 2022 14:54:10,979 [ERROR] (rapid) Init failed error=Runtime exited with error: exit status 1 InvokeID=
END RequestId: 5319d88f-ea30-4a61-adb6-e9ab4a83c17e
Run Code Online (Sandbox Code Playgroud)
即使简单 go 文件(不是 lambda)中的相同代码可以在 S3 上执行操作,我的 lambda 也无法到达 localstack docker 中的 S3 存储桶。知道问题从何而来吗?
归档时间: |
|
查看次数: |
415 次 |
最近记录: |