在 aws-go-sdk 的 VPC 中从 lambda 访问 s3

accessing s3 from lambda within VPC in aws-go-sdk

我刚开始使用 aws-sdk-go 并注意到 s3 请求使用的是 http/https 而不是 s3 协议。如何使用 aws-sdk-go 从 vpc 中的 lambda 读取 s3 中的对象?

而且我不想使用 NAT 网关。我可以在 NodeJS 中执行此操作,但 aws-go-sdk 是否有任何方法可以执行相同的操作?

谢谢!

此代码片段展示了如何使用 aws-go-sdk 在 Lambda 函数中列出区域 us-east-1 的 S3 存储桶:

func listBuckets() {
    svc := s3.New(session.New(&aws.Config{Region: aws.String("us-east-1")}))
    buckets, err := svc.ListBuckets(nil)
    log.Printf("listBuckets: %q error=%v", buckets, err)
}

在这里找到完整的源代码:https://github.com/udhos/hellolambda/blob/master/main.go

要在没有互联网网关的情况下访问 VPC 内的 S3,您需要使用 S3 Endpoint