【问题标题】:How to GET all data from DynamoDB with Lambda Functions如何使用 Lambda 函数从 DynamoDB 获取所有数据
【发布时间】:2021-09-20 23:29:18
【问题描述】:

使用 Axios,我尝试从链接到 Lambda 函数的 API 获取数据:

async getData() {
    await axios.get("https://...")
    .then(response => {
        console.log(response)
    })
}

这是我的 Lambda 函数代码:

const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: "ap-southeast-1"});

const params = {
  TableName : 'tablename'
}

async function listItems(){
  try {
    const data = await docClient.scan(params).promise()
    return data
  } catch (err) {
    return err
  }
}

exports.handler = async (event, context) => {
  try {
    const data = await listItems()
    return { body: JSON.stringify(data) }
  } catch (err) {
    return { error: err }
  }
}

我有一个 DynamoDB 表,我试图从中取出所有数据点。 EG:我有 3 组数据,每组有 7 个属性。

问题:当我在 API 网关上测试 API 时,我的所有数据都显示出来了。但是,我无法让数据显示在控制台日志中。

我应该如何编辑我的数据以便在控制台日志中显示它?

【问题讨论】:

  • 您说的是哪些日志?对于 Lambda 日志,只需 console.log 在您的处理程序中显示您想要的任何内容,它将出现在 CloudWatch Logs 中。此外,您的 listItems 函数正在执行不需要的承诺操作 - 只是 return docClient.scan(params).promise()
  • @jarmod 哦,我想通过检查工具查看我的 web 应用程序上的控制台日志。很好,感谢您对 promise() 的提醒。

标签: javascript reactjs amazon-web-services aws-lambda amazon-dynamodb


【解决方案1】:

我不确定,但我认为您可能指的是您从中调用 axios 的客户端控制台?

您的回复可能是 Json 格式。只需执行您在 Lamba 中已经执行的操作,然后在记录之前将 JSON 数据转换为字符串。

代替

console.log(response)

试试

console.log(JSON.stringify(response))

【讨论】:

  • 我试图这样做,但仍然没有得到回应。在 AWS 方面,当我尝试时,我得到了一串数据,只是我无法将它显示在我的控制台日志中
【解决方案2】:

原来这段代码运行良好,我只是忘了部署它。感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2015-08-25
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2020-10-19
    • 2019-06-25
    相关资源
    最近更新 更多