Lambda 在aws 扮演这很重要的位置:
1:下面开始用Lambda 导入SNS的消息,并且发送到DynamoDB 的过程:
先创建一个Lambda: (注意要选择一个可以执行DynamoDB 的role,没有建的话,要创建一个,否则会报对数据库没有权限的错)
2: 在lambda 下面贴好触发代码 (这个在文章最下面有):
3: 下面创建DB: 注意不要选default, capacity 都选1 就可以啦,这个费用小。
4: 创建好SNS:
5: 在lambda 里面把SNS 加到trigger 里面:
6: 下面开始点击 上面step4 的图中的publish:
7: 发现这个SNS已经被 lambda 连接上去了:(下面已经有订阅:subscription).
8: 测试完,去DyanamoDB 去看看:发现已经有数据了:
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);
}
});
}