【发布时间】:2021-02-22 13:00:09
【问题描述】:
我有一个 DynamoDB 表,其列和主键为 ipAddress:
- ip地址
- 访问次数
我正在从我的 react 网站获取用户的 IP 地址,并通过 Lambda 函数和 API Gateway POST 请求将其插入到 DynamoDB。
如果来自 React 网站的 IP 地址已经存在于 DynamoDB 中,则增加 visits 列中的值。如果不是,则使用新 IP 地址和visits = 1 创建一条新记录。我尝试使用 ConditionExpression 但无济于事。
到目前为止,我只使用 Lambda 插入 ipAddress。下面是我在 NodeJS 中的 Lambda 函数:
const AWS = require("aws-sdk");
const documentClient = new AWS.DynamoDB.DocumentClient();
exports.handler = async event => {
const { ipAddress} = JSON.parse(event.body);
const params = {
TableName: "ipAddress",
Item: {
ipAddress: ipAddress,
}
};
try {
const data = await documentClient.put(params).promise();
const response = {
statusCode: 200,
};
return response;
}
catch (e) {
return {
statusCode: 500,
body: JSON.stringify(e)
};
}
};
【问题讨论】:
标签: node.js amazon-web-services aws-lambda amazon-dynamodb