问题描述: 在AWS Lambda中使用AWS SNS发布消息时,无法成功发布消息。
解决方法:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSNSPublish",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:us-east-1:123456789012:my-topic"
}
]
}
请确保将 "Resource" 替换为正确的SNS主题ARN。
确保Lambda函数在正确的AWS区域中运行。SNS主题和Lambda函数应该在相同的区域中创建和部署。请确保您的Lambda函数和SNS主题都在相同的AWS区域中。
确保代码中使用正确的ARN(Amazon Resource Name)来发布消息。以下是一个示例代码,展示了如何在Lambda函数中使用AWS SDK(例如Node.js)发布SNS消息:
const AWS = require('aws-sdk');
const sns = new AWS.SNS();
exports.handler = async (event) => {
const params = {
Message: 'Hello from Lambda!',
Subject: 'Test SNS message',
TopicArn: 'arn:aws:sns:us-east-1:123456789012:my-topic'
};
try {
await sns.publish(params).promise();
console.log('Message published successfully');
} catch (error) {
console.log('Error publishing message:', error);
throw error;
}
};
请确保将 "TopicArn" 替换为正确的SNS主题ARN。
通过采取上述步骤,您应该能够在AWS Lambda中成功发布AWS SNS消息。如果问题仍然存在,请检查日志和错误消息,以获取更多信息来帮助排查和解决问题。