npm install --save aws-amplify
然后初始化:
import Amplify from 'aws-amplify';
Amplify.configure({
API: {
endpoints: [
{
name: 'myApiGateway',
endpoint: 'https://my-api-gateway.execute-api.us-east-1.amazonaws.com/dev/'
},
],
},
});
在AWS Console中设置Lambda触发器 在AWS Lambda控制台中,创建一个新函数并添加一个dynamodb的触发器。填写相关信息后,AWS会将事件发送给Lambda函数。
编写Lambda处理程序 根据Lambda触发器的配置,AWS在数据库更改时会执行Lambda函数,我们可以在这里编写处理程序。可以使用aws-sdk来与更改的数据进行交互。
var aws = require('aws-sdk');
aws.config.update({region: 'REGION'});
exports.handler = function(event, context, callback) {
console.log('Received event:', JSON.stringify(event, null, 2));
event.Records.forEach(function(record) {
if(record.eventName == 'MODIFY') {
var message = JSON.stringify(record.dynamodb.NewImage);
//发送消息给react-native
}
});
callback(null, `Successfully processed ${event.Records.length} records.`);
};
var sns = new aws.SNS();
var params = {
Message: message,
TopicArn: 'ARN'
};
sns.publish(params, function(err, data) {
if (err) {
console.error('Error publishing message:', err);
context.done('error', "Error publishing message");
} else {
console.log('Message sent:', data);
context.done(null, data);
}
});