Публикация проблемы в DynamoDb через API - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь отправить некоторые значения в DynamoDb с помощью шлюза API и лямбда-функции. У меня все части работают локально, но я упускаю кое-что фундаментальное, когда собираю их все вместе.

Вот моя лямбда-функция. Когда я его тестирую, он работает должным образом.

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
 
exports.handler = (event, context, callback) => {
    
    var temperatureid = JSON.stringify(event.tempid, null, 2)
     var temperature = JSON.stringify(event.temperature, null, 2)
     console.info("EVENT\n" + temperatureid + ", " + temperature)
    
  //  var query = event.queryStringParameters;
  //   console.log(query);
    dynamodb.putItem({
        TableName: "temperature",
        Item: {
            "tempid": {
                S: temperatureid,
            },
             "temperature": {
                S: temperature,
            }
        }
    }, function(err, data) {
        if (err) {
            console.log(err, err.stack);
            callback(null, {
                statusCode: '500',
                body: err
            });
        } else {
            callback(null, {
                statusCode: '200',
                body: 'Result from ' + temperatureid + '!'
            });
        }
    })
};

В API я установил ресурс / метод типа post. Тип интеграции - «Лямбда-функция», и я ссылаюсь на лямбда-функцию выше. Я подозреваю, что проблема заключается в шаблоне сопоставления. В настоящее время у меня он установлен следующим образом (application / json - тип содержимого):

#set($inputRoot = $input.path('$'))
{
  "tempid" : $inputRoot.tempid,
  "temperature" : $inputRoot.temperature
}

при тестировании я ввожу это в область строк запроса: tempid = hottub3 & temperature = 109

Я получаю эту ошибку:

{"message": "Не удалось проанализировать тело запроса в json: Неожиданный символ (',' (код 44)): ожидалось значение \ n в [Источник: (byte []) "{\ r \ n" tempid ":, \ r \ n" температура ": \ г \ п}"; строка: 2, столбец: 15] "}

Пт 10 июля 13:35:09 UT C 2020: Метод HTTP: POST, Путь к ресурсам: / temperature Пт 10 июля 13:35:09 UT C 2020: Путь запроса метода: {} Пт 10 июля 13:35:09 UT C 2020: Строка запроса запроса метода: {temperature = 109, tempid = hottub3} Пт 10 июля 13:35:09 UT C 2020: Заголовки запроса метода: {} Пт 10 июля, 13:35:09 UT C 2020: Тело запроса метода до преобразований:

Пт 10 июля 13:35:09 UT C 2020: Выполнение не выполнено : Не удалось преобразовать тело запроса в json: Неожиданный символ (',' (код 44)): ожидалось значение в [Источник: (byte []) "{" tempid ":," temperature ":}"; строка : 2, столбец: 15]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...