AWS Lamdba Dynamo AWS SDK Node.js Метод запроса Проблема - PullRequest
0 голосов
/ 13 июня 2018

Здравствуйте, у меня есть следующий код Lamdba, основанный на Node.js.Я не могу вызвать метод запроса для извлечения данных.

Ввод: { key: 'value' } - Использование ввода тестовых событий.

var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-2'});
var ddb = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});

exports.handler = async (event, context) => {
    const params = {
        TableName: 'Chapter',
        IndexName: 'subjectId-index', // Global Secondary Index
        KeyConditionExpression: 'subjectId = :subjectId',
        ExpressionAttributeValues: {
            ':subjectId': event.key,
        },
    };
    console.log(JSON.stringify(params));
    ddb.query(params, (err, data) => {
        // Console.log('Not executing this part !!!')
        if (err) console.log(err);
        console.log(data);
    });
};

Метод запроса даже не вызывается или возникла ошибкабыть зарегистрированнымЯ действительно мог бы использовать некоторую помощь.

1 Ответ

0 голосов
/ 13 июня 2018

Поскольку у вас есть консольные журналы, вы можете отлаживать свой код с помощью cloudwatch для проверки ваших лямбда-журналов.

Вы можете выбрать лямбду, и если вы видите какие-либо журналы выполнения, вы можете нажать для получения более подробной информации, и вынайдите там журналы вашей консоли

Вызовите context.done

Пример программы, которую вы можете попробовать.Я просто написал это не пробовал

var AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-2' });
var ddb = new AWS.DynamoDB.DocumentClient({ apiVersion: '2012-08-10' });

const executeQuery = (params) => {
    return new Promise(function (resolve, reject) {
        ddb.query(params, (err, data) => {
            if (err) reject(err);
            resolve(data);
        });
    });
}
exports.handler = async (event, context) => {
    const params = {
        TableName: 'Chapter',
        IndexName: 'subjectId-index', // Global Secondary Index
        KeyConditionExpression: 'subjectId = :subjectId',
        ExpressionAttributeValues: {
            ':subjectId': event.key,
        },
    };
    console.log(JSON.stringify(params));
    executeQuery(params).then((data) => {
        console.log('sucess');
        context.done(data);
    }).catch((err) => {
        console.log('Error occurred');
        context.done(error);
    })
};
...