2016-02-11 149 views
0

我正在玩我的亚马逊Echo,并写了一个小功能,我希望在我女儿的回复后给我发短信。代码执行得很好 - 但sns.publish永远不会发生。它默默地失败 - 我不能提出错误。我相信我有适当的IAM权限和主题订阅。有人可以帮忙吗?AWS Lambda拨打SNS

function textMom(kindOfDay){ 
var message = "Test"; 
var sns = new AWS.SNS(); 
console.log("textMethod") 
sns.publish({ 
TopicArn: "arn:aws:sns:us-east-1:", 
Message: message 
}, function(err, data) { 
if(err) { 
console.log('error publishing to SNS'); 
context.fail(err); 
} else { 
console.log('message published to SNS'); 
context.done(null, data); 
} 
console.log(data); 
}); 
} 
+0

这是什么打印出来的? –

+0

它将在CloudWatch中记录“textMethod”,但之后没有任何记录。这就像sns.publish函数只是默默地失败了。 – theTechGrandma

+0

它不会打印'发布到SNS'的消息? –

回答

1

我遇到同样的问题,并通过改变参数,发布以下解决,

sns.publish(params, context.done); 

这帮我检查所有呼叫都完成之前,我的功能完成。尝试一下!

+0

我希望...它不起作用。你真的能够得到这个工作?让aws lamdba发布到sns话题? – theTechGrandma

+0

是的,我可以通过AWS IoT调用Lambda,然后通过Lambda代码发送SNS,您是否尝试删除“exports.handler”,只需通过“nodejs index.js”运行您的代码?这样更容易调试。 –

+0

我会试试看。 – theTechGrandma