Итак, в основном у меня есть API, который вставляет элемент в DynamoDB, и раньше, когда я тестировал его, у меня был один из идентификаторов случайным образом, используя uuid
, но теперь я бы хотел, чтобы идентификатор был конкретным в зависимости от один из атрибутов.
Вот моя лямбда-функция:
export async function main(event, context) {
const data = JSON.parse(event.body);
var siteNameStripped = data.content.siteName.replace(/[aeiou]/gi, ' ');
var siteNameConencted = siteNameStripped.trim();
var siteNameFinal = siteNameConencted.toUpperCase();
const params = {
TableName: "sites",
Item: {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: siteNameFinal,
content: JSON.stringify(data.content),
createdAt: Date.now()
}
};
try {
await dynamoDbLib.call("put", params);
return success(params.Item);
} catch (e) {
console.log(e);
return failure({ status: false });
}
}
Выше я получаю данные, и одним из полей является "siteName", и, как вы можете видеть, я пытаюсь взять имя сайта, ввести его в верхнем регистре, удалить все гласные и пробелы и сделать так, чтобы siteId. Когда я делаю это и пытаюсь вызвать его, я получаю сообщение об ошибке "Не удается прочитать свойство 'siteName' из неопределенного"