amazon-web-services - Lambda 函数(有时)尝试访问 s3 时超时
问题描述
所以我试图在我的 vpc 中创建一个需要 s3 访问的 lambda 函数。大多数时候它会顺利关闭,但是,有时它会一直挂在 s3.getObject 上,直到函数超时,发生这种情况时不会出错。我已经设置了一个 VPC 端点,并且该端点位于(私有)子网的路由表中,确保对端点的访问没有被安全组或 NACL 阻止,并且 IAM 权限似乎都是有序的(虽然如果这是问题,人们会期望出现错误消息)。
为了调试这个问题,我已经将我的代码简化为一个简单的 get/put,但这里是为了以防我遗漏了非常明显的内容。我已经花了几个小时在谷歌上搜索这个,尝试了所有建议/我能想到的......并且在这一点上基本上没有想法......所以我不能足够强调我多么感激任何可以给予的帮助
更新:我已经从与 lambda 相同的 vpc/subnet/security 组内的 ec2 实例运行我的代码...似乎没有相同的问题,所以问题似乎与 lambda 配置有关,而不是任何网络配置
try {
const getParams = {
Bucket: 'MY_BUCKET',
Key: '/path/to/file'
};
console.log('************** about to get', getParams);
const getObject = await s3.getObject(getParams).promise();
console.log('************** gotObject', getObject);
const uploadParams = {
Bucket: 'MY_BUCKET',
Key: '/new/path/to/file',
Body: getObject.Body
};
console.log('************** about to put', uploadParams);
const putObject = await s3.putObject(uploadParams).promise();
console.log('*************** object was put', putObject);
} catch (err) {
console.log('***************** error', err);
}
};```
解决方案
推荐阅读
- typescript - 更新到 Webpack 5 后。没有创建输出文件。我得到了与 Webpack 4 类似的错误,但没有输出文件
- vb.net - 输出为 CSV 文件时,半角片假名出现乱码/不可读
- javascript - 关闭模态窗口时停止音频
- css - 仅使用 css 悬停另一个 div 时显示 div
- php - “子查询返回超过 1 行”的解决方案
- swiftui - 修复表达式类型不明确,没有更多上下文 Amplify Model
- javascript - 在 Vue js 中,Json 响应对象的用户名字段显示为 null 而在后端完美运行
- python - 使用 matplotlib 重新映射 y 轴标签的子集
- swift - 在 SwiftUI 中,如何限制 ObservableObject 的哪些 @Published 属性触发视图刷新?
- javascript - 为什么我不能让这个 Svg 重音栏在 javascript 事件侦听器上缩小