AWS lambda DynamoDB api gateway之间的连接

  1. 创建角色 附加策略

AmazonDynamoDBFullAccess

AWSLambdaDynamoDBExecutionRole

  1. 创建DynamoDB表
  2. 在表的项目中创建内容

this

pipi

  1. 打开之后发现String后边有个空的value值,进行填写,和前面的一样即可。
  2. DB创建好了之后,在lambda上创建一个函数,模版无所谓,在生成的lambda函数下面,有一个index.js的文件,把它的内容变更为如下内容

var AWS = require('aws-sdk');

var dynamo = new AWS.DynamoDB({

    region: 'ap-northeast-1'       #区域选择东京

});

exports.handler = function(event, context) {

    var params = {

        "TableName": "sbrtest",            #表名

        "KeyConditionExpression":"this = :sbrtest", #项目第一个键值,表名

        "ExpressionAttributeValues": {

            ":sbrtest" : {"S": event.sbrtest}   #表名

        }

    };

    console.log("event:", event);

    dynamo.query(params, function(err, data) {

        console.log("dynamo_data:", data);

        console.log("dynamo_err:", err);

        context.done(null, data);

    });

};

6.内容保存好了之后,在上边的测试里创建一个文本,输入代码内容如下

   {

  "sbrtest": "this"

}

7.测试内容结果如下

{

  "Items": [

    {

      "pipi": {

        "S": "pipi"

      },

      "this": {

        "S": "this"

      }

    }

  ],

  "Count": 1,

  "ScannedCount": 1

}

8.API Gateway创建

操作→创建方法 创建一个新的子资源

Lambda函数选择自己创建的那个

保存

9.子项选择get 然后出现流程

10.方法请求打开→URL查询参数添加this(即表中的键值)

11.返回上级,然后选择集成请求→正文影射模版

   第二项,当未定义(推荐)

   Content-Type填写application/json

   然后会生成一个编辑文本,内容填写如下

   {

    "sbrtest": "$input.params('this')"

}

   保存返回

12.操作中选择部署API

   选择新阶段

   阶段名称填写API的名称即可(sbrtest),然后点击部署

13.部署结束之后会给出一个网址,打开显示null即为成功

   同时,也可以显示处表中的参数值,需要在网址的后面继续添加?this=this即可显示出刚才测试阶段显示的内容

原文地址:https://www.cnblogs.com/cnqfz/p/8603111.html