尝试将数据插入 dynamoDB 表时,无服务器 lambda 函数抛出错误

阿门拉

我正在尝试使用无服务器框架在 aws lambda 函数上测试 CRUD 功能。

这是我正在运行的命令:

sudo serverless invoke local -f createArticle -p articles/event.json

当我尝试创建记录时会引发错误。这是控制台中的错误:

Syntax Error -------------------------------------------

 Unexpected token u in JSON at position 0

 For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Get Support --------------------------------------------
 Docs:          docs.serverless.com
 Bugs:          github.com/serverless/serverless/issues
 Forums:        forum.serverless.com
 Chat:          gitter.im/serverless/serverless

Your Environment Information -----------------------------
 OS:                 darwin
 Node Version:       6.10.3
 Serverless Version: 1.13.1

现在我已经整理了我的 javascript 并验证了我的 event.json 文件。

这是我的javascript:

'use strict';

const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();
const uuid = require('uuid');

module.exports.handler = (event, context, callback) => {
  const data = JSON.parse(event.body);
  if (data.text && typeof data.text !== 'string') {
    console.log('Validation Failed');
    callback(new Error('Body did not contain a text property.'));
    return;
  }

  const params = {
    TableName: 'BlogTable',
    Item: {
      article_id: "1",
      text: data.text
    }
  };

  const putCallback = (error, result) => {
    if (error) {
      console.log(error);
      callback(new Error('Could not save record.'));
      return;
    }
    //console.log(result);
    const response = {
      statusCode: 200,
      body: JSON.stringify(result.Item)
    };
    callback(null, response);
  }
  dynamo.put(params, putCallback);
};

这是我的event.json文件:

{"text":"Hello World"}

为什么会抛出错误?以及如何设置我在serverless.yml文件中尝试过但没有得到任何输出的环境变量

马库斯·克莱姆斯

如果您使用“Lambda 代理”集成,您需要为http://直接调用您的 Lambda 函数的事件使用特定格式(例如,如果您serverless invoke从 CLI 而不是 AWS API Gateway 管理控制台使用,您可以在其中调用 Lambda 函数通过您的 API 使用“测试”按钮)。

使用 Lambda 代理,在本例中,您需要创建一个带有“body”属性的 json 文件并将值字符串化,如下所示:

{
  "body": "{\"text\":\"hello\"}"
}

原因是:“通过 Lambda 代理集成,API Gateway 将整个客户端请求映射到后端 Lambda 函数的输入事件参数” http://docs.aws.amazon.com/apigateway/latest/developerguide/api -gateway-set-up-simple-proxy.html#api-gateway-simple-proxy-for-lambda-input-format

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试将数据写入DynamoDB时Lambda函数超时

来自分类Dev

具有DynamoDB的无服务器框架:Lambda函数有效,但数据尚未保存到DynamoDB

来自分类Dev

具有 dynamodb 连接问题的无服务器 lambda 函数

来自分类Dev

使用无服务器框架时如何从AWS Lambda访问DynamoDB?

来自分类Dev

尝试将数据插入MySQL时出错

来自分类Dev

将 DynamoDB 与 Alexa Lambda 函数结合使用

来自分类Dev

将 Identity Server4 部署为 AWS 无服务器 Lambda 函数

来自分类Dev

适用于AWS的无服务器框架:将初始数据添加到Dynamodb表中

来自分类Dev

尝试将数据插入数据库时出错

来自分类Dev

尝试从表单将数据插入数据库时出错

来自分类Dev

尝试将数据插入空数据框中时出错

来自分类Dev

Amazon Lambda Java Function无法将数据插入DynamoDB

来自分类Dev

使用aws-lambda将数据插入DynamoDB

来自分类Dev

Amazon Lambda Java Function无法将数据插入DynamoDB

来自分类Dev

如何在Jest中为无服务器Nodejs Lambda模拟AWS DynamoDB?

来自分类Dev

AWS Lambda尝试访问dynamoDB时发生运行时错误-ClassNotFoundException

来自分类Dev

lambda 函数如何在无服务器中工作?

来自分类Dev

将记录插入dynamoDB时调用Lambda

来自分类Dev

插入mysqli抛出错误的函数

来自分类Dev

Flask FloatField 在尝试保存数据时抛出错误

来自分类Dev

如何使用 DynamoDB Stream 和 lambda 函数同步多个表

来自分类Dev

AWS Lambda测试不会从DynamoDB表返回数据

来自分类Dev

Lambda@Edge 触发 Dynamodb 时出现 503 错误

来自分类Dev

使用Lambda更新DynamoDB表

来自分类Dev

尝试将值插入数据库并获取最后插入的ID时出错

来自分类Dev

无服务器步骤功能:如何将数据从Lambda传递到ECS Fargate任务

来自分类Dev

尝试将购物车中的数据插入新表时出错

来自分类Dev

将文件上传到服务器时,WinSCP错误“无此文件”

来自分类Dev

尝试使用休眠将数据插入数据库时出错。错误是约束冲突异常(使用 Oracle DB)

Related 相关文章

  1. 1

    尝试将数据写入DynamoDB时Lambda函数超时

  2. 2

    具有DynamoDB的无服务器框架:Lambda函数有效,但数据尚未保存到DynamoDB

  3. 3

    具有 dynamodb 连接问题的无服务器 lambda 函数

  4. 4

    使用无服务器框架时如何从AWS Lambda访问DynamoDB?

  5. 5

    尝试将数据插入MySQL时出错

  6. 6

    将 DynamoDB 与 Alexa Lambda 函数结合使用

  7. 7

    将 Identity Server4 部署为 AWS 无服务器 Lambda 函数

  8. 8

    适用于AWS的无服务器框架:将初始数据添加到Dynamodb表中

  9. 9

    尝试将数据插入数据库时出错

  10. 10

    尝试从表单将数据插入数据库时出错

  11. 11

    尝试将数据插入空数据框中时出错

  12. 12

    Amazon Lambda Java Function无法将数据插入DynamoDB

  13. 13

    使用aws-lambda将数据插入DynamoDB

  14. 14

    Amazon Lambda Java Function无法将数据插入DynamoDB

  15. 15

    如何在Jest中为无服务器Nodejs Lambda模拟AWS DynamoDB?

  16. 16

    AWS Lambda尝试访问dynamoDB时发生运行时错误-ClassNotFoundException

  17. 17

    lambda 函数如何在无服务器中工作?

  18. 18

    将记录插入dynamoDB时调用Lambda

  19. 19

    插入mysqli抛出错误的函数

  20. 20

    Flask FloatField 在尝试保存数据时抛出错误

  21. 21

    如何使用 DynamoDB Stream 和 lambda 函数同步多个表

  22. 22

    AWS Lambda测试不会从DynamoDB表返回数据

  23. 23

    Lambda@Edge 触发 Dynamodb 时出现 503 错误

  24. 24

    使用Lambda更新DynamoDB表

  25. 25

    尝试将值插入数据库并获取最后插入的ID时出错

  26. 26

    无服务器步骤功能:如何将数据从Lambda传递到ECS Fargate任务

  27. 27

    尝试将购物车中的数据插入新表时出错

  28. 28

    将文件上传到服务器时,WinSCP错误“无此文件”

  29. 29

    尝试使用休眠将数据插入数据库时出错。错误是约束冲突异常(使用 Oracle DB)

热门标签

归档