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

Lambda+DynamoDB DAX集成后API Gateway超时连接问题求助

const endpoint = process.env.DAX_ENDPOINT as string;
const config = { ... }
const dax: any = new AmazonDaxClient({endpoints: [endpoint], region: 'us-east-1'});
const dynamodb = new DynamoDB.DocumentClient({...config, service: dax});

await dynamodb.transactWrite({
TransactItems: [
{
Delete: {
TableName: 'development_table',
Key: {
id: args.id,
createdAt: createdAt
}
}
},
],
}).promise();

return ( ... )

}

## 已尝试的修改
将serverless.yml中functions的events配置修改为:
```yaml
functions:
  graphql:
    handler: ./build/src/app.handler
    events:
      - httpApi:
          path: /{id+}
          method: GET
      - httpApi:
          path: /
          method: POST

依赖版本

"@types/amazon-dax-client": "^1.2.3",
"amazon-dax-client": "^1.2.9",

排查方向及步骤

1. 定位超时根源

查看Lambda的CloudWatch日志,确认超时发生在Lambda调用DAX的环节,还是API Gateway与Lambda的集成环节:

  • 若日志显示Lambda卡在DAX请求上,问题集中在VPC与DAX的网络连通性;
  • 若日志无触发记录,问题可能在API Gateway的集成配置。

2. 检查VPC网络配置

  • 子网IP可用性:Lambda部署到VPC子网需创建弹性网络接口(ENI),若子网可用IP不足,会导致Lambda无法正常启动,引发API Gateway超时,需检查子网IP使用情况。
  • 安全组规则:当前DAX安全组仅允许自身安全组访问8111端口,Lambda使用同一安全组,需确认该安全组的出站规则是否允许TCP 8111端口流量。
  • DNS解析:DAX集群发现端点需DNS解析,虽然VPC已开启EnableDnsHostnames和EnableDnsSupport,但需确认子网DNS设置是否继承VPC配置,可在Lambda中添加日志输出endpoint变量,验证端点能否正常解析。

3. 验证DAX集群状态

  • 登录AWS控制台查看DAX集群状态,确认集群处于ACTIVE状态,无异常告警。
  • 检查Lambda环境变量DAX_ENDPOINT是否正确获取到集群发现端点,可通过Lambda控制台环境变量列表确认。

4. API Gateway集成检查

  • 确认HTTP API路由配置与Lambda触发规则匹配:路径、方法是否一致,集成目标是否正确指向该Lambda函数。
  • 检查API Gateway超时设置(默认29秒),若Lambda执行DAX操作时间超过该值,需调整Lambda超时时间或优化DAX请求逻辑。

5. 本地测试Lambda

通过AWS控制台直接触发Lambda函数并传入测试参数,观察是否能正常执行并返回结果:

  • 若本地调用正常,说明问题出在API Gateway集成或路由配置;
  • 若本地调用也超时,问题集中在Lambda与DAX的连通性上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:15:35