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

调用AWS Lambda访问DynamoDB超时问题求助

问题排查与解决方案

问题背景

Lambda函数将数据存储到DynamoDB表的功能在个人AWS账号正常运行,但在公司AWS账号中,代码在await dynamodb.describeTable(describeParams).promise();处超时,且CloudWatch无错误日志输出。

核心排查方向及解决步骤

1. 检查IAM执行角色权限

公司账号的Lambda执行角色大概率缺少dynamodb:DescribeTable权限(个人账号角色已配置该权限),同时需确保包含dynamodb:PutItem权限。

  • 进入IAM控制台,找到Lambda对应的执行角色
  • 附加或更新权限策略,示例策略片段:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:DescribeTable",
        "dynamodb:PutItem"
      ],
      "Resource": "arn:aws:dynamodb:你的区域:公司账号ID:table/my-values"
    }
  ]
}

2. 排查VPC网络限制

如果公司账号的Lambda配置了VPC,但未正确配置访问DynamoDB的网络通路,会导致请求超时:

  • 若Lambda在VPC内:
    • 要么为Lambda所在子网配置NAT网关,允许其访问公网DynamoDB服务
    • 要么创建DynamoDB的VPC端点,让Lambda通过内网访问DynamoDB
  • 检查安全组:Lambda安全组需允许443端口的出站流量,DynamoDB VPC端点的安全组需允许来自Lambda安全组的入站流量

3. 确认表名与区域一致性

  • 检查公司账号中是否存在名为my-values的DynamoDB表,且表状态为ACTIVE
  • 确保Lambda配置的AWS区域与DynamoDB表的区域一致,可在代码中显式指定区域:
const AWS = require('aws-sdk');
AWS.config.update({ region: '你的目标区域' }); // 例如 'ap-southeast-1'
const docClient = new AWS.DynamoDB.DocumentClient();
const dynamodb = new AWS.DynamoDB();

4. 调整Lambda超时时间

公司账号的Lambda默认超时时间(通常3秒)可能不足以完成describeTable请求,可在Lambda控制台的「配置→常规设置」中,将超时时间调高至10秒测试。

代码优化建议

实际上无需提前调用describeTable验证表存在,直接执行putItem即可——若表不存在或权限不足,putItem会抛出明确错误,同时减少一次API调用:

const AWS = require('aws-sdk');
AWS.config.update({ region: '你的目标区域' });
const docClient = new AWS.DynamoDB.DocumentClient();

exports.handler = async (event) => {
  const valueToStore = event.body || 'default_value';

  const params = {
    TableName: 'my-values',
    Item: {
      id: new Date().toISOString(),
      SessionConfig: valueToStore
    }
  };

  try {
    await docClient.put(params).promise();
    return {
      statusCode: 200,
      body: JSON.stringify({ message: 'Value stored successfully' })
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify({ 
        message: 'Error while storing value',
        error: error.message 
      })
    };
  }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:40:15