通过Lambda在DynamoDB中发布JSON

时间:2018-06-04 22:02:26

标签: json amazon-web-services aws-lambda amazon-dynamodb aws-api-gateway

借助我的Lambda函数和AWS上的API网关,我无法在我的DynamoDB表中存储JSON文件。我按下HTML网站上的按钮后会执行以下代码:

  $('#submit').on('click', function(){
    var example = {"number":"121212"};

    $.ajax({
      type: 'POST',
      url: API_URL,
      data: JSON.stringify(example),
      contentType: "application/json",

      success: function(data){
        location.reload();
        }
    });

    return false;
  });

当按下网站重新加载时,我假设功能已成功执行。但是我的问题是数据在lambda函数中没有以正确的格式到达,因此没有正确执行。在检查CloudWatch时,它显示为{number:' 121212'而不是{"数字":" 121212"}。知道我怎么能确保价值到达'我的Lambda函数中有一个有效的JSON格式吗?

这是我的Lambda函数:

exports.handler = function index(e, ctx, callback) {
    var params = {
        Item: { number: e.number },
        TableName: 'collectionOfNumbers'
    };
    docCLient.put(params, function(err, data) {
        if (err) {
            callback(err, null);
        } else {
            callback(null, data);
        }
    });
}

1 个答案:

答案 0 :(得分:0)

如果我正确读取此权利,则e.number是JSON参数'数字'的值。你传入的,例如' 121212&#39 ;.我使用了docClient的putItem作为假设。

我认为您的Item参数应如下所示:

Item: {"number": {N: e.number}}

有关PutItem https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html

的信息,请参阅AWS文档