【问题标题】:Request to S3 from Lambda without leaving AWS Cloud在不离开 AWS 云的情况下从 Lambda 请求 S3
【发布时间】:2020-07-29 03:36:54
【问题描述】:
我有一个使用 aws-sdk 访问 S3 存储桶的 lambda 函数
S3 存储桶有大量操作(请求),这大大增加了使用 lambda 的成本
我希望请求使用s3:// 协议,但通过互联网进行
我了解一种解决方案可能是:
- 将 Lambda 附加到 VPC
- 为 S3 创建一个 VPC 终端节点
- 更新VPC的路由表
有没有更简单的方法呢?
【问题讨论】:
标签:
amazon-web-services
amazon-s3
aws-lambda
amazon-vpc
【解决方案1】:
另一种方法是创建 API 网关,并在 AWS Guide 或 Tutorial 之后创建 lambda 代理方法集成。
然后,您可以将您的 apigateway 配置为通过 Internet 充当面向外部的集成,并且您的 lambda / s3 保留在 AWS 中。
【解决方案2】:
只要非 VPC lambda 函数在与 S3 存储桶相同的区域中执行,流量就不会通过互联网并产生额外的数据传输成本。所以这种情况下不需要VPC。
https://aws.amazon.com/s3/pricing/
您需要为进出 Amazon S3 的所有带宽付费,但以下情况除外:
• 从互联网传入的数据。
• 当Amazon Elastic Compute Cloud (Amazon EC2) 实例与S3 存储桶位于同一AWS 区域时,数据会传出。
• 数据传输到 Amazon CloudFront (CloudFront)。
您可以将 lambda 视为 ec2。所以数据传输是免费的,但要小心你仍然需要为 api 请求付费。