Я новичок в AWS и сейчас застрял. Мне удалось создать веб-страницу для сбора контактной информации и записи ее в таблицу DynamoDB с именем «WebUser-ContactUS». Я создал другую (справочную) таблицу с назначениями, в которой указываю, что таблица «WebUser-ContactUS» пока должна обрабатываться сотрудником GiselleS. Я надеюсь получить имя таблицы с помощью этой лямбда-функции и динамически отображать ее содержимое в соответствии с идентификатором сотрудника.
Вот мой текущий код для получения записи из справочной таблицы, и он возвращает NULL (Успешно хотя):
// Load the AWS SDK for JS
var AWS = require("aws-sdk");
// Set a region to interact with (make sure it's the same as the region of your table)
AWS.config.update({region: 'us-west-2'});
// Create the Service interface for DynamoDB
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
// Create the Document Client interface for DynamoDB
var ddbDocClient = new AWS.DynamoDB.DocumentClient();
// Get a single item with the getItem operation
function GetTasks(tblname, itemname, employee) {
var params = {
TableName: "map_Assignments",
KeyConditionExpression: "#TaskID = :TaskIDValue",
ExpressionAttributeNames: {
"#TaskID":"TaskID",
},
ExpressionAttributeValues: {
":TaskIDValue": itemname,
},
Limit: 1
};
ddbDocClient.query(params, function(err, data) {
if (err) { console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2)); return 'error'}
else { console.log("Query succeeded:", JSON.stringify(data, null, 2)); return data}
});
}
exports.handler = function (event, context, callback) {
console.log('Received event:', event);
// Setting up variables:
const AssignmentID = event.AssignmentID;
const Action = event.Action;
// Calculating variables:
const Tasks = GetTasks("map_Assignments", event.TaskID, event.EmployeeNetworkID);
const response = {
statusCode: 200,
body: Tasks
};
callback(null, JSON.stringify(Tasks));
};
Вот журнал: Ответ: null
Идентификатор запроса: «cb1a88f6-6496-49a5-8ee5-aab3400d49e5»
Журналы функций: START RequestId: cb1a88f6-6496-49a5-8ee5 -aab3400d49e5 Версия: $ LATEST 2020-07-08T19: 50: 30.694Z cb1a88f6-6496-49a5-8ee5-aab3400d49e5 ИНФОРМАЦИЯ Полученное событие: {EmployeeNetworkID: 'GiselleS', TaskID: 1, Action: 'Get'} 2020-07- 08T19: 50: 31.394Z cb1a88f6-6496-49a5-8ee5-aab3400d49e5 INFO Запрос выполнен успешно: {"Items": [{"TaskName": "Customer Service", "TaskID": 1, "TaskDescription": "Для обработки веб-пользователя сообщения, отправленные через форму «Связаться с нами», «EmployeeNetworkID»: «GiselleS», «CreateDt»: «2020-07-04», «TableWithTaskDetails»: «WebUser-ContactUS»}], «Count»: 1, «ScannedCount»: 1} END RequestId ...
Когда я пытаюсь получить значение имени таблицы с последней переключенной строкой ниже, функция не работает:
callback(null, JSON.stringify(Tasks[0].TableWithTaskDetails));
Вот сообщение об ошибке:
Ответ: { «errorType»: «TypeError», «errorMessage»: «Невозможно прочесть свойство 0 из неопределенного», «trace»: [«TypeError: невозможно прочесть свойство« 0 »из неопределенного», «в Runtime.exports.handler (/ var / task / index. js: 44: 40) "," в Runtime.handleOnce (/var/runtime/Runtime.js:66:25) "]}
Идентификатор запроса:" f7934e30-21ff-430b-a583-c991af3ef9e2 "
Журналы функций: START RequestId: f7934e30-21ff-430b-a583-c991af3ef9e2 Версия: $ LATEST 2020-07-08T19: 42: 19.688Z f7934e30-21ff -a583-c991af3ef9e2 INFO Полученное событие: {EmployeeNetworkID: 'GiselleS', TaskID: 1, Action: 'Get'} 2020-07-08T19: 42: 20.195Z f7934e30-21ff-430b-a583-c991af3ef9e2 ERROR Invoke Error {"errorType ":" TypeError "," errorMessage ":" Невозможно прочитать свойство "0" из неопределенного "," stack ": [" TypeError: невозможно прочитать свойство "0" из неопределенного "," в Runtime.expor ts.handler (/var/task/index.js:44:40) "," в Runtime.handleOnce (/var/runtime/Runtime.js:66:25) "]} END RequestId ...
Пожалуйста, помогите мне продвинуться вперед и получить значение поля TableWithTaskDetails «WebUser-ContactUS» как результат этой функции.