簡體   English   中英

無法發布到 SNS 主題,將 MessageId 設為未定義

[英]Unable to publish to SNS Topic, getting MessageId as undefined

我有一個非常基本的代碼片段來測試從節點 Lambda 向 SNS 發布消息:

exports.handler = async () => {
    const AWS = require('aws-sdk');
    AWS.config.update({region: 'us-east-2'});
    let result;
    try {
        result = await new AWS.SNS({apiVersion: '2010-03-31'}).publish({
            TopicArn: 'arn:aws:sns:us-east-2:99999999999:MyTopic',
            Message: 'Body of Message 1',
            Subject: 'Message 1'
        });
    } catch (err) {
        console.error('xxxxxxxx', err, err.stack);
        throw err;
    }
    console.info('>>>>>> ' + result.MessageId);
}

但是,我在日志中反復得到的只是>>>>>> undefined ,當然,消息沒有被發布(因為訂閱它的隊列總是空的)。 我可以確認 Lambda function 具有相關權限。 我究竟做錯了什么?

您沒有將publish轉換為 promise。 這意味着result = await不會按預期工作。

閱讀我的舊答案以獲得更多理解: How to use Async and Await with AWS SDK Javascript

TLDR;

result = await new AWS.SNS({apiVersion: '2010-03-31'}).publish({
            TopicArn: 'arn:aws:sns:us-east-2:99999999999:MyTopic',
            Message: 'Body of Message 1',
            Subject: 'Message 1'
        }).promise(); // !!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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