在AWS Node.js SDK中,SNS.publish.promise()
方法是一个异步方法,它返回一个Promise对象。这意味着在调用该方法后,它不会立即发送SNS消息,而是返回一个Promise,可以使用.then()
方法来处理异步操作的结果。
以下是一个使用异步SNS.publish.promise()
方法发送SNS消息的示例代码:
const AWS = require('aws-sdk');
exports.handler = async (event) => {
try {
const sns = new AWS.SNS();
const params = {
Message: 'Hello from Lambda!',
TopicArn: 'arn:aws:sns:us-west-2:123456789012:my-topic'
};
await sns.publish(params).promise();
console.log('SNS message sent successfully');
return {
statusCode: 200,
body: JSON.stringify('SNS message sent successfully')
};
} catch (error) {
console.error('Error sending SNS message', error);
return {
statusCode: 500,
body: JSON.stringify('Error sending SNS message')
};
}
};
在上述代码中,我们使用await
关键字来等待异步操作完成。在await sns.publish(params).promise()
之后,代码将等待SNS消息发送完成,然后打印成功消息并返回相应的状态码。
请注意,要确保在Lambda函数的执行角色中具有适当的SNS发布权限,以便成功发送SNS消息。