检查AWS账号是否拥有在此region创建Lambda、SNS、SQS等资源的权限,并确认触发器的目的地资源名称和ARN是否正确;如果用的是Lambda函数,确保函数名和别名是否正确,并检查是否有设定触发器;如果用的是SNS或SQS,检查ARN是否与region相同,并确保存在于指定的region下;另外,可以通过在命令行中使用awscli或者在AWS控制台上手动创建对应的资源来验证权限和资源名称是否正确。具体的代码示例如下:
// 引用 AWS SDK
const AWS = require('aws-sdk');
// 创建 SNS 对象实例
const sns = new AWS.SNS({ region: 'us-east-1' });
// 设置 SNS 主题 ARN
const topicArn = 'arn:aws:sns:us-east-1:1234567890:my-topic';
// 创建 SNS 订阅
sns.subscribe(
{
Protocol: 'email',
TopicArn: topicArn,
Endpoint: 'example@example.com',
},
(err, data) => {
if (err) {
console.log('订阅 SNS 主题失败:', err);
} else {
console.log('订阅 SNS 主题成功:', data);
}
}
);