[英]Double emails send by lambda function
我對async有問題,我覺得我對原理理解的不夠透徹。 我正在嘗試從 lambda function 向我的收件箱發送一條消息,但每次我都收到兩次相同的消息。 誰能解釋出什么問題或如何更改代碼以僅發送一條消息?
這是我的 function:
function sendToTopic(error){
var sns = new AWS.SNS();
let eventText = 'Error message: \n' + error;
var params = {
Message: eventText,
Subject: "Test SNS From Lamba",
TopicArn: 'arn'
};
console.log(params);
let promise = sns.publish(params, function onPublish(err, data){
if(err){
console.error("Unable to send to Topic. Error JSON:", JSON.stringify(err, null, 2));
}
console.log('succes:' + data);
}).promise();
return promise;
}
這是我的處理程序:
exports.handler = async (event, context, callback) => {
let promise = sendToTopic("error");
await promise;
}
有時候lambda的執行率很高,SNS處理的不是很好。 為此,它會觸發傳遞重試策略,我認為當出現相同的消息時它會傳遞多次。
您可以嘗試的快速解決方案(不是 100% 確定):在您的 SNS 主題下,您必須檢查傳遞重試策略並將numRetries
參數更改為 0 並嘗試。 它可能有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.