Я пытаюсь создать приложение с базовой c клиент-серверной инфраструктурой. Инфраструктура сервера размещена на AWS, и когда клиент входит в систему, он отправляет сообщение на сервер, чтобы настроить различные аспекты инфраструктуры. Одним из элементов инфраструктуры является очередь SQS, с которой клиент может опросить, чтобы получать обновления с сервера (в конечном итоге я хотел бы создать службу pu sh, но сейчас я не знаю, как это сделать).
Я создаю это приложение в NodeJS, используя Node AWS SDK. Проблема, с которой я столкнулся, заключается в том, что мне нужно, чтобы очередь ARN выполняла различные действия, такие как подписка очереди SQS на SNS topi c, который использует приложение, но API создания очереди возвращает URL-адрес очереди, а не ARN. Поэтому я могу получить ARN из URL-адреса с помощью API getQueueAttributes, но, похоже, он не работает. Всякий раз, когда я звоню, я получаю неопределенный ответ. Вот мой код, скажите, пожалуйста, что я делаю не так:
exports.handler = (event, context, callback) => {
new aws.SQS({apiVersion: '2012-11-05'}).createQueue({
QueueName: event.userId
}).promise()
)
.then(data => { /* This has the Queue URL */
new aws.SQS({apiVersion: '2012-11-05'}).getQueueAttributes({
QueueUrl: data.QueueUrl,
AttributeNames: ['QueueArn']
}).promise()
})
.then(data => {
console.log(JSON.stringify(data)); /* prints "undefined" */
})
/* Some more code down here that's irrelevant */
}
Спасибо!