AWS Lambda到DynamoDB-项目中缺少密钥PK



我正在通过Postman向API网关发送POST请求。

请有人帮我了解如何解决错误,并让它知道Item对象中的PK是什么?

错误:

2022-01-18T07:47:45.636Z    f9879b45-b7d5-22ab-9439-cec7c1c8c332    
ERROR   ValidationException: One or more parameter values were invalid: Missing the key PK in the item
-- DELETED MANY at Reqests --
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18) {
code: 'ValidationException',
time: 2022-01-18T07:47:45.519Z,
requestId: 'G7LU6ADFQKB26JDHJ6QXADDB3JVV4KQNSO5AEMVJF66Q9ASUAAJG',
statusCode: 400,
retryable: false,
retryDelay: 5.218698231501939

Lambda函数:

"use strict";
require("dotenv").config();
// const config = require("../../config/keys");
const AWS = require("aws-sdk");
AWS.config.update({ region: "eu-west-1" });
const documentClient = new AWS.DynamoDB.DocumentClient();
const addJobListing = async (data) => {
const body = {
Item: {
PK: data["PK"],
SK: data["SK"],
"Days Off": data["Days Off"],
"Start Date": data["Start Date"],
"Job ID": data["Job ID"],
"Contract Length": data["Contract Length"],
"Expiration Date": data["Expiration Date"],
Created: {
date: data["Created Date"],
time: data["Created Time"],
},
Insurance: data["Insurance"],
Title: data["Title"],
Holidays: data["Holidays"],
Ages: data["Ages"],
"Flight Reimbursement": data["Flight Reimbursement"],
Curriculum: data["Curriculum"],
"Account ID": data["Account ID"],
"Minimum Monthly Salary Before Tax":
data["Minimum Monthly Salary Before Tax"],
"Housing Allowance": data["Housing Allowance"],
Responsibilities: data["Responsibilities"],
"Job Closest Metro": data["Job Closest Metro"],
"Job Requirements": data["Job Requirements"],
"Job Type": data["Job Type"],
"Z-VISA Reimbursement": data["Z-VISA Reimbursement"],
Meals: data["Meals"],
Subject: data["Subject"],
"Salary Information": data["Salary Information"],
"Maximum Monthly Salary Before Tax":
data["Maximum Monthly Salary Before Tax"],
"Vacancy Status": data["Vacancy Status"],
"Contract Completion Bonus": data["Contract Completion Bonus"],
"Last Modified": {
date: data["Modified Date"],
time: data["Modified Time"],
},
},
TableName: "table-name-hidden",
};
return await documentClient
.put(body)
.promise()
.then((data) => console.log(data.Attributes))
.catch(console.error);
};
exports.handler = async (event, context, callback) => {
console.log("EVENT BODY", event.body);
const response = await addJobListing(JSON.parse(event.body));
return {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*", // Required for CORS support to work
"Access-Control-Allow-Credentials": true, // Required for cookies, authorization headers with HTTPS
},
body: JSON.stringify(response),
};
};

JSON:

{
"Item": {
"PK": "ACC#1000",
"SK": "JOBID#01.17/01/2022",
"Days Off": "Weekends",
"Start Date": "17/09/2022",
"Job ID": "01",
"Contract Length": "Two Years",
"Expiration Date": "17/09/2022",
"Created": {
"date": "17/09/2022",
"time": "00:00:00"
},
"Insurance": "Insurance",
"Title": "Title Of Vacancy",
"Holidays": "Amount of Holidays",
"Ages": "Ages of Children",
"Flight Reimbursement": "Flight Reimbursement",
"Curriculum": "Curriculum",
"Account ID": "10",
"Minimum Monthly Salary Before Tax": "Minimum Monthly Salary Before Tax",
"Housing Allowance":"Housing Allowance",
"Responsibilities": "Responsibilities",
"Job Closest Metro": "Job Closest Metro",
"Job Requirements": "Job Requirements",
"Job Type": "Job Type",
"Z-VISA Reimbursement": "Z-VISA Reimbursement",
"Meals": "Meals",
"Subject": "Subject",
"Salary Information": "Salary Information",
"Maximum Monthly Salary Before Tax": "Maximum Monthly Salary Before Tax",
"Vacancy Status": "Vacancy Status",
"Contract Completion Bonus": "Contract Completion Bonus",
"Last Modified": {
"date": "17/09/2022",
"time": "00:00:00"
}
}
}

基于提供的JSON,而不是data["PK"],它应该是data["Item"]["PK"]吗?

最新更新