繁体   English   中英

查询 DynamoDB 以检查特定项目是否存在

[英]Query DynamoDB to check if a particular item exists or not

我刚开始使用 Node.js 和 AWS DynamoDB,我遇到了一个非常基本的问题。 我想查询我的 DynamoDB,它有一个带有“用户名”(PKey) 和“JoinedOn”列的“用户”表。 现在我想写一个 Lambda function 来检查一个特定的用户名是否存在,并在此基础上返回一个响应。 目前我正在使用以下代码:

const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient();

const params = {
  TableName : 'Users',

  Key: {
    Username: 'user1'
  }
}

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

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

我目前正在我的代码中对密钥(用户名:'user1')进行硬编码,但我想避免这样做,因为我想使用相同的代码来检查不同的用户,用户名是否存在于“用户”表中.

我想使用 SAM。 我的 event.json 应该如下所示,因为我想检查 user1 是否存在于“用户”中:

{
  "Username": "user1"
}

在运行“sam local invoke TestFunction -e events/event.json”时,我应该得到“用户存在”或“用户不存在”的响应

我是 AWS 和开发的新手。 非常感谢任何帮助。

先感谢您!

您需要在 lambda 的环境变量部分定义该用户名。然后在 lambda 代码中您可以简单地调用 process.env.username。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM