Хранить JSON запрос в DynamoDB - PullRequest
0 голосов
/ 04 мая 2020

В моей функции Lambda (с использованием node.js) есть запрос http, который возвращает json.

Код:

const http = require('https')
exports.handler = async (event) => {
    return httprequest().then((data) => {
        const response = {
            statusCode: 200,
            body: JSON.stringify(data),
        };
    return response;
    });
};
function httprequest() {
     return new Promise((resolve, reject) => {
        const options = {
            host: 'fcc-weather-api.glitch.me',
            path: '/api/current?lat=35&lon=139',
            port: 443, 
            method: 'GET'
        };
        const req = http.request(options, (res) => {
          if (res.statusCode < 200 || res.statusCode >= 300) {
                return reject(new Error('statusCode=' + res.statusCode));
            }
            var body = [];
            res.on('data', function(chunk) {
                body.push(chunk);
            });
            res.on('end', function() {
                try {
                    body = JSON.parse(Buffer.concat(body).toString());
                } catch(e) {
                    reject(e);
                }
                resolve(body);
            });
        });
        req.on('error', (e) => {
          reject(e.message);
        });
        // send the request
       req.end();
    });
}

Вывод:

{
  "statusCode": 200,
  "body": "{\"coord\":{\"lon\":139,\"lat\":35},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"https://cdn.glitch.com/6e8889e5-7a72-48f0-a061-863548450de5%2F04d.png?1499366020964\"}],\"base\":\"stations\",\"main\":{\"temp\":16.11,\"feels_like\":17.41,\"temp_min\":16.11,\"temp_max\":16.11,\"pressure\":1004,\"humidity\":94},\"wind\":{\"speed\":0.52,\"deg\":289},\"clouds\":{\"all\":100},\"dt\":1588576192,\"sys\":{\"type\":3,\"id\":2019346,\"country\":\"JP\",\"sunrise\":1588535407,\"sunset\":1588584680},\"timezone\":32400,\"id\":1851632,\"name\":\"Shuzenji\",\"cod\":200}"
}

Я хочу сохранить объекты json в DynamoDB. Какой простой способ сделать это? Я новичок в AWS, и любая помощь высоко ценится.

1 Ответ

0 голосов
/ 04 мая 2020

DynamoDB поддерживает следующие типы: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.DataTypes.html

Вам необходимо сохранить JSON как строковый атрибут

...