Проблемы конечной точки AWS Java SDK SQSlistener - PullRequest
0 голосов
/ 26 апреля 2018

Я использую AWS Java SDK, а также весеннюю облачную среду для использования SES и SQS в моем проекте. Я сталкиваюсь с небольшой проблемой. Когда я пытаюсь запустить свое приложение, я получаю сообщение об ошибке:

Ошибка создания компонента с именем 'simpleMessageListenerContainer' в ресурс пути к классу [Орг / springframework / облако / AWS / сообщения / конфигурация / аннотации / SqsConfiguration.class]: Ошибка вызова метода init; вложенное исключение com.amazonaws.services.sqs.model.AmazonSQSException: учетные данные должны быть ограниченным допустимым регионом, а не «очередью».

В качестве предисловия в моем файле app.properties имеется свойство queue.endpoint=https://queue.amazonaws.com/1234567890/queue-name.fifo, и конечная точка извлекается из aws cli.

Я прочитал документацию AWS и обнаружил, что эта конечная точка является устаревшей конечной точкой. Это свойство используется аннотацией @SqsListener из библиотеки aws весеннего облака.

Мне удалось избежать этой проблемы, посмотрев, использую ли я устаревшую конечную точку и преобразовал ее в не унаследованную конечную точку с помощью сценария оболочки, т.е. https://sqs.us-east-1.amazonaws.com/123456780/queue-name.fifo.

Мне было интересно, были ли в библиотеке Spring Cloud AWS проблемы с использованием устаревших конечных точек. Я заметил, что не было проблем для других моих очередей, где конечные точки были https://us-east-2.queue.amazonaws.com/1234567890/queue2-name.fifo, поэтому, возможно, он неправильно проанализировал устаревшую конечную точку us-east-1? Я также не уверен, были ли какие-либо конфигурации, которые необходимо было выполнить в моем приложении, чтобы использовать устаревшие конечные точки.

1 Ответ

0 голосов
/ 11 сентября 2018

Если я правильно понимаю вопрос, ваш вопрос касается конечной точки очереди SQS без добавления us-east-1 в начале конечной точки. Это не устаревшая конечная точка. В AWS существуют определенные службы, которые не позволяют указывать регион в конечной точке. Что бы это ни направлялось в эту конечную точку: https://queue.amazonaws.com/1234567890/queue-name.fifo, будет автоматически направлено в область us-east-1 в AWS.

Это четко указано в документации по AWS, связанной с конечными точками. ( Ссылка )

Некоторые службы, такие как IAM, не поддерживают регионы; следовательно, их конечные точки не включают регион. Некоторые сервисы, такие как Amazon EC2, позвольте вам указать конечную точку, которая не включает в себя определенный регион, например, https://ec2.amazonaws.com. В этом случае AWS маршрутизирует конечная точка для нас-восток-1.

...