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

时间:2018-04-13 05:02:29

标签: go amazon-s3 aws-lambda aws-sdk amazon-vpc

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

我不想使用NAT网关。我可以在NodeJS中做到这一点,但是aws-go-sdk有没有办法做同样的事情?

谢谢!

2 个答案:

答案 0 :(得分:2)

此代码段显示如何使用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

答案 1 :(得分:2)

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