У меня SpringBoot SQSListener настроен следующим образом
@SqsListener(value = "${clients.xyz.queueName}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void onMessage(String message) {
}
Это нормально работало на моем локальном компьютере, но я увидел исключение при запуске приложения в AWS
Причина: org.springframework.вложенное исключение - 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? Как определяется очередь?