【问题标题】:DyanmoDB getItem not providing any response within Async LambdaDynamoDB getItem 未在 Async Lambda 中提供任何响应
【发布时间】:2020-11-04 02:15:32
【问题描述】:

我一直试图在异步 Lambda 函数中向 dynamo DB 发出 getItem 请求,但我根本没有收到任何响应。任何故障排除或帮助将不胜感激。

一般来说,我正在尝试使用 AWS 开发工具包 getItem 向 dynamodb 表发出请求,但是,当我运行我的代码时,等待 ddb.getItem 函数没有响应

所以我有点不知道是什么原因造成的。

// Load AWS SDK
const AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "us-east-1" });

// Create the DyanmoDB service object
const ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

const handler = async (
  event,
  context,
  callback,
  test = false,
  testObjFunc = {
    test: () => {
      Error("Testing enabled");
    }
  }
) => {
  const response = {
    isBase64Encoded: false,
    statusCode: 200,
    headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" },
    multiValueHeaders: {},
    body: JSON.stringify({ responseBody })
  };

  try {
    // Parameters for DynamodDB getItem call
    const dbParams = {
      TableName: "Table_Name",
      Key: {
        personID: { S: "value" }
      },
      ProjectionExpression: "value_to_return"
    };

    // DynamoDB call to check for item
    const results = await ddb.getItem(dbParams).promise();
    console.log("success");
    console.log(results);

  } catch (error) {
    response.statusCode = 500;
  }

  return response;
};
module.exports.handler = handler;


【问题讨论】:

  • 这表明getItem 调用失败。您是否检查了调用的响应?也许在 catch 块中添加一个console.log 来记录错误。

标签: javascript node.js asynchronous aws-lambda amazon-dynamodb


【解决方案1】:

您已将 getitem 调用放在 try 块中,因为您没有收到任何响应意味着 try 块中出现问题。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 2021-01-02
    • 2020-04-24
    • 2023-03-12
    • 1970-01-01
    • 2012-06-17
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多