AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

Lambda 在aws 扮演这很重要的位置:

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

1:下面开始用Lambda 导入SNS的消息,并且发送到DynamoDB 的过程:

 先创建一个Lambda: (注意要选择一个可以执行DynamoDB 的role,没有建的话,要创建一个,否则会报对数据库没有权限的错)

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

2:  在lambda 下面贴好触发代码 (这个在文章最下面有):

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

3:  下面创建DB: 注意不要选default, capacity 都选1 就可以啦,这个费用小。

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

4:  创建好SNS:

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

5: 在lambda 里面把SNS 加到trigger 里面:

 AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

6:  下面开始点击 上面step4 的图中的publish:

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

7:  发现这个SNS已经被 lambda 连接上去了:(下面已经有订阅:subscription).

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

8: 测试完,去DyanamoDB 去看看:发现已经有数据了:

AWS Lambda快速上手 - 接受SNS,并且插入DynamoDB

 9:最后贴上lambda 的测试代码:(注意message 的参数传递)

'use strict';
console.log('loading function');
var AWS = require('aws-sdk');
AWS.config.region = 'ap-northeast-1';
var docClient = new AWS.DynamoDB.DocumentClient();

exports.handler = function(event, context, callback){
    console.log("AWS Lambda and SNS notification");
    const message = event.Records[0].Sns.Message;
    console.log("From SNS:", message);
    var params = {
        Item:{
        name: "Sheng hui ping",
        message: message
        },
        TableName: 'shp'
     };
    docClient.put(params, function(err,data){
        if (err){
            console.log("Fail to write into DynamoDB");
            callback(err,null);
        }else{
            console.log("Successfully write into AWS DynamoDB");
            callback(null, data);
        }
    });
}

上一篇:安全公司Stormshield披露数据泄露,源代码被盗


下一篇:python数据分析之seaborn常见统计图