amazon-web-services - 无法通过 VPCE Endpoint 将私有子网中的 Lambda 连接到 S3
问题描述
我一直在尝试从位于私有子网中的 lambda 连接到 S3 存储桶。我对 Ec2 实例做了完全相同的事情,它就像一个魅力,我不确定为什么使用 lambda 会出现这样的问题。我的 lambda 在某个定义的时间间隔后超时。
如您所见,我创建了一个 VPC 终端节点来通过 VPC 路由我的流量,但它不起作用。我不确定我在这里缺少什么。下面是 VPC 端点配置。
我已经在这样的策略中完全访问了 S3:
{
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Principal": "*"
}
]
}
当我运行我的 lambda 代码时,我得到如下超时错误:
解决方案
为了重现您的情况,我执行了以下步骤:
- 创建了一个调用
ListBuckets()
. 在未附加到 VPC 的情况下对其进行了测试。它工作得很好。 - 创建了一个只有私有子网的VPC
- 向 VPC 和子网添加了Amazon S3 终端节点网关
- 重新配置 Lambda 函数以使用 VPC 和子网
- 测试了 Lambda 函数——它运行良好
我怀疑您的问题可能出在附加到 Lambda 函数的安全组上。我将出站规则保留为“所有流量 0.0.0.0/0”,而不是限制它。试一试,看看它是否能让事情变得更好。
推荐阅读
- terraform - 如何 Terraform 导入针对 NAT 网关的路由表的 AWS 路由
- c# - 返回 IAsyncEnumerable
如何在控制器级别设置 MaxIAsyncEnumerableBufferLimit - ruby-on-rails - 在 Ubuntu 20.04 上安装 tiny_tds gem 失败
- mongodb - 来自 mlab 的 GCP Cron Job MongoDB 备份
- bash - 这里字符串在while循环中抛出语法错误
- python - 使用 BeautifulSoup 抓取多个(市场指数)网站
- swift - 从其超类创建一个子类 - Swift
- go - 用“-”替换字符串中的空格。同时使用 fmt.Scan 进行用户输入。(哥朗)
- php - 在表单提交时,将表单数据发送到数据库
- tensorflow - tensorflow model.evaluate 和 model.predict 非常不同的结果