You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js Lambda调用S3 ListObjectsV2出现RequestTimeTooSkewed错误

Lambda调用S3 ListObjectsV2报RequestTimeTooSkewed错误排查思路

问题描述

我有一个运行在Node.js环境中的Lambda函数,用于列出已启用版本控制的S3存储桶内的对象。调用ListObjectsV2接口时抛出了RequestTimeTooSkewed错误。该错误通常由系统时钟不同步引发,但为何会出现在Lambda实例上?日志中的时间戳与当前时间一致,恳请提供相关排查思路。

错误日志

RequestTimeTooSkewed: The difference between the request time and the current time is too large.
    at throwDefaultError (/var/runtime/node_modules/@aws-sdk/node_modules/@smithy/smithy-client/dist-cjs/default-error-handler.js:8:22)
    at /var/runtime/node_modules/@aws-sdk/node_modules/@smithy/smithy-client/dist-cjs/default-error-handler.js:18:39
    at de_ListObjectsV2CommandError (/var/runtime/node_modules/@aws-sdk/client-s3/dist-cjs/protocols/Aws_restXml.js:5227:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /var/runtime/node_modules/@aws-sdk/node_modules/@smithy/middleware-serde/dist-cjs/deserializerMiddleware.js:7:24
    at async /var/runtime/node_modules/@aws-sdk/middleware-signing/dist-cjs/awsAuthMiddleware.js:30:20
    at async /var/runtime/node_modules/@aws-sdk/node_modules/@smithy/middleware-retry/dist-cjs/retryMiddleware.js:27:46
    at async /var/runtime/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/region-redirect-endpoint-middleware.js:14:24
    at async /var/runtime/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/region-redirect-middleware.js:9:20
    at async /var/runtime/node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js:7:26

排查思路

  • 检查区域一致性:确认S3存储桶和Lambda函数是否在同一AWS区域,跨区域请求的网络延迟可能放大时间差,触发S3的时间校验。尝试将Lambda部署到与S3桶相同的区域,或者验证跨区域请求的时间补偿逻辑。
  • 升级AWS SDK版本:部分旧版@aws-sdk/client-s3或依赖库可能存在时间处理bug,尤其是自定义客户端配置的场景。直接升级到最新稳定版,排查是否因SDK内部时间签名逻辑异常导致报错。
  • 验证Lambda实例时钟:虽然日志时间戳正常,但可以在函数中添加代码打印new Date().toISOString()和process.hrtime(),对比运行时时间与UTC标准时间,确认是否存在瞬时时钟漂移。
  • 检查请求签名时间参数:如果代码中手动指定了签名时间(比如复用旧签名、自定义签名逻辑),会导致请求时间与S3服务器时间差过大。排查是否在S3客户端配置中设置了signingDate,或有第三方库篡改了请求时间参数。
  • 排查VPC网络延迟:若Lambda部署在VPC内,通过NAT网关访问S3时,网络链路的延迟或阻塞可能让请求到达S3时的时间超出允许范围。检查VPC路由表、NAT网关状态,以及网络ACL/安全组是否限制了请求速度。
  • 确认S3服务状态:虽然概率极低,但S3服务端的时间异常也可能触发该错误。可以调用HeadBucket等简单接口测试是否同样报错,或查看AWS服务健康面板确认对应区域S3的运行状态。

内容的提问来源于stack exchange,提问作者Rakesh N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:16:16