Как исправить ошибку подписки на тему SNS с помощью узла js и конечной точки http

#node.js #amazon-web-services #amazon-sns

#node.js #amazon-веб-сервисы #amazon-sns

Вопрос:

Я хочу использовать конечную точку http для подписки на тему, чтобы я мог отображать любые сообщения в веб-приложении. Я пытаюсь подписаться на тему, но получаю сообщение об ошибке InvalidParameter: Invalid parameter: TopicArn , и я не уверен, почему? Я думаю, что мой topicarn находится в правильном формате,

Соответствующий код:

 // configure AWS
AWS.config.update({
    'region': 'eu-west-2',    // is this the region of my topic ?
    'accessKeyId': 'keyid',
    'secretAccessKey': 'secretkey'
});

const sns = new AWS.SNS();
sns.subscribe({
    'TopicArn': 'arn:aws:sns:eu-west-x:xxxxxxx:my_topic',
    'Protocol': 'http',
    'Endpoint': 'http://localhost/:3000'
}, function (err, result) {

    if (err !== null) {
        console.log(util.inspect(err));
        return;
    }
    console.log(util.inspect(result));
});
  

Ответ №1:

Согласно этой проблеме и этой проблеме в github, похоже, что это связано с тем, что область экземпляра AWS не соответствует области темы.

Если вы используете экземпляр AWS в других областях и хотите сохранить глобальный регион как есть, вы можете сделать это, чтобы создать экземпляр sns в правильном регионе:

const sns = новый AWS.SNS({ region: ‘eu-west-x’ });