Как слушатель SQS, настроенный через @SqsListener, находит очередь?
У меня SpringBoot SQSListener настроен следующим образом
@SqsListener(value = "${clients.xyz.queueName}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void onMessage(String message) {
}
Это работало нормально на моем локальном компьютере, но я увидел исключение при запуске приложения в AWS
Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем 'stackResourceRegistryFactoryBean', определенным в ресурсе пути к классу [org/springframework/cloud/aws/autoconfigure/context/ contextStackAutoConfiguration$ метод StackAutoDecate.conject: метод класса: init-метод-класса: init-метод-класса: init-метод класса: init-класс-класса: метод вызова StackAutoDec: не удалось; вложенное исключение - com.amazonaws.services.cloudformation.model.AmazonCloudFormationException: пользователь: arn: aws: sts:: xyz: предполагаемая роль /xyz-instance/i-xyz не авторизован для выполнения: cloudformation:ListStackResources на ресурсе: arn:aws:cloudformation:us-west-2:xyz:stack/xyz-preprod-qa-xyz-asg/* (Сервис: AmazonCloudFormation; Код состояния: 403;
Я подумал, что потребитель пытается найти очередь, определенную через @SqsListener, поэтому я дал разрешение. Я больше не вижу ошибку после выдачи разрешения, но сообщения также не читаются.
Глядя на вышеупомянутое исключение, мой экземпляр ec2 сделал ListStackResources для arn:aws:cloudformation:us-west-2:xyz:stack/xyz-preprod-qa-xyz-asg. Я пытаюсь выяснить, почему он должен делать ListStackResources на ASG? Как определяется очередь?