我试图用一个DynamoDb项目值在SNS服务发送通知。 它与超时错误,无法从不过取Dynamodb成功并且被发送通知。 但它不断重试和超时处理多次后。
{ “的errorMessage”: “2018-01-02T10:14:55.463Z c18d142e-efa5-11e7-8671-7f3af13c58c7任务后10.01秒超时”}
现在,我也使用参数尝试context.callbackWaitsForEmptyEventLoop = false
,但力帮助很大! 好像我没有正确使用它。
下面是一段代码,可以有人请帮助:
exports.handler = function (event, context, callback) {
var AWS = require('aws-sdk');
var doc = require('dynamodb-doc');
var dynamodb = new doc.DynamoDB();
var params = {
TableName : 'abcmsg',
ProjectionExpression: 'Message',
Key : {
"ind" : "ABC10"
}
};
var MESSAGE_ID = getmsg();
function getmsg(MESSAGE_ID) {
dynamodb.getItem(params, function (err, data) {
if (err) {
console.log('ERROR: Dynamo Failed:', err);
getmsg(err);
} else {
console.log('Dynamo Success: ' + JSON.stringify(data, null, ' '));
let MESSAGE_ID = data['Item'].Message;
console.log('data',data['Item'].Message);
getmsg(MESSAGE_ID);
}
});
console.log('MESSAGE_ID',MESSAGE_ID); //print the correct value 'ABCD'
var sns = new AWS.SNS({
region:'eu-west-1',
maxRetries: 0
});
sns.publish({
Message: MESSAGE_ID,
Subject:"Test Message",
TopicArn:"arn:aws:sns:eu-west-1:0123456789012:Lambda"
}, function (err, data) {
if (err) {
console.log(err.stack);
return;
}
console.log('push sent');
});
callback(null,{ "statusCode": 200 });
context.callbackWaitsForEmptyEventLoop = false;
}
};
日志:-----
2018-01-02T10:14:55.005Z c18d142e-efa5-11e7-8671-7f3af13c58c7发电机成功:{ “物品”:{ “消息”: “ABCD”}} 2018-01-02T10:14:55.005Z c18d142e-efa5 -11e7-8671-7f3af13c58c7数据ABCD 2018-01-02T10:14:55.006Z c18d142e-efa5-11e7-8671-7f3af13c58c7 MESSAGE_ID ABCD 2018-01-02T10:14:55.028Z c18d142e-efa5-11e7-8671-7f3af13c58c7推送到2018-01-02T10:14:55.086Z c18d142e-efa5-11e7-8671-7f3af13c58c7发电机成功:{ “物品”:{ “消息”: “ABCD”}} 2018-01-02T10:14:55.105Z c18d142e-efa5 -11e7-8671-7f3af13c58c7数据ABCD 2018-01-02T10:14:55.106Z c18d142e-efa5-11e7-8671-7f3af13c58c7 MESSAGE_ID ABCD 2018-01-02T10:14:55.127Z c18d142e-efa5-11e7-8671-7f3af13c58c7推送到2018-01-02T10:14:55.167Z c18d142e-efa5-11e7-8671-7f3af13c58c7发电机成功:{ “物品”:{ “消息”: “ABCD”}} 2018-01-02T10:14:55.185Z c18d142e-efa5 -11e7-8671-7f3af13c58c7数据ABCD 2018-01-02T10:14:55.186Z c18d142e-efa5-11e7-8671-7f3af13c58c7 MESSAGE_ID ABCD 2018-01-02T10:14:55.226Z c18d142e-efa5-11e7-8671-7f3af13c58c7推森 吨2018-01-02T10:14:55.253Z c18d142e-efa5-11e7-8671-7f3af13c58c7发电机成功:{ “物品”:{ “消息”: “ABCD”}} 2018-01-02T10:14:55.265Z c18d142e- efa5-11e7-8671-7f3af13c58c7数据ABCD 2018-01-02T10:14:55.285Z c18d142e-efa5-11e7-8671-7f3af13c58c7 MESSAGE_ID ABCD 2018-01-02T10:14:55.306Z c18d142e-efa5-11e7-8671-7f3af13c58c7推发送2018-01-02T10:14:55.345Z c18d142e-efa5-11e7-8671-7f3af13c58c7发电机成功:{ “物品”:{ “消息”: “ABCD”}} 2018-01-02T10:14:55.365Z c18d142e- efa5-11e7-8671-7f3af13c58c7数据ABCD 2018-01-02T10:14:55.366Z c18d142e-efa5-11e7-8671-7f3af13c58c7 MESSAGE_ID ABCD 2018-01-02T10:14:55.386Z c18d142e-efa5-11e7-8671-7f3af13c58c7推发送2018-01-02T10:14:55.406Z c18d142e-efa5-11e7-8671-7f3af13c58c7推送到2018-01-02T10:14:55.445Z c18d142e-efa5-11e7-8671-7f3af13c58c7迪纳摩成功:{ “项目”:{ “消息”: “ABCD”}} 2018-01-02T10:14:55.445Z c18d142e-efa5-11e7-8671-7f3af13c58c7数据ABCD END的requestId:c18d142e-efa5-11e7-8671-7f3af13c58c7 REPORT的requestId:c18d 142E-efa5-11e7-8671-7f3af13c58c7时间:10010.15毫秒帐单时间:10000毫秒内存大小:128 MB最大内存使用:44 MB
2018-01-02T10:14:55.463Z c18d142e-efa5-11e7-8671-7f3af13c58c7任务10.01秒后超时