【发布时间】:2017-06-30 00:44:41
【问题描述】:
以下对我不起作用的一些可能原因是什么?
- 创建一个至少包含一个
id字段的 DynamoDB 表card_auth_events。 - 创建一个调用 lambda 的触发器。这是 lambda:
console.log('Loading publishCardAuthEvent...');
var QUEUE_URL = 'https://sqs.us-west2.amazonaws.com/XXXXXXXXXXXX/CardAuthEvents';
var AWS = require('aws-sdk');
var sqs = new AWS.SQS({region : 'us-west-2'});
var http = require('https');
exports.handler = function(event, context) {
event.Records.forEach(function(record) {
console.log(record.eventID);
console.log(record.eventName);
console.log('DynamoDB Record: %j', record.dynamodb);
sendToQueue(record);
});
context.succeed("Successfully processed " + event.Records.length + " records.");
};
function sendToQueue(message){
//Send SQS message with details of file uploaded to S3.
var params = {
MessageBody: JSON.stringify(event),
QueueUrl: QUEUE_URL
};
sqs.sendMessage(params, function(err,data){
if (err) {
console.log('error:',"Fail Send Message" + err);
context.done('error', "ERROR Put SQS"); // ERROR with message
} else {
console.log('data:',data.MessageId);
context.done(null,''); // SUCCESS
}
});
}
将 Lambda 配置为具有
AmazonSQSFullAccess、AmazonDynamoDBFullAccess和AmazonAppStreamFullAccess的角色。在 SQS 中创建队列
在表中插入一条记录。
触发器被调用,但是为什么消息没有放入队列???
队列中没有消息,Cloud Watch 中也没有错误。有什么我遗漏的秘密吗?
【问题讨论】:
标签: node.js amazon-web-services amazon-sqs aws-lambda