簡體   English   中英

雙郵件發送 lambda function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM