通过@SqsListener配置的SQS侦听器如何找到队列?

时间:2019-02-05 22:57:41

标签: spring-cloud spring-cloud-aws

我有一个配置如下的SpringBoot SQSListener

    @SqsListener(value = "${clients.xyz.queueName}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
    public void onMessage(String message) {
}

这在我的本地计算机上工作正常,但在AWS中启动应用程序期间看到了异常

  

原因:org.springframework.beans.factory.BeanCreationException:   创建名称为'stackResourceRegistryFactoryBean'的bean时出错   在类路径资源中定义   [org / springframework / cloud / aws / autoconfigure / context / ContextStackAutoConfiguration $ StackAutoDetectConfiguration.class]:   调用init方法失败;嵌套异常为   com.amazonaws.services.cloudformation.model.AmazonCloudFormationException:   用户:arn:aws:sts :: xyz:assumed-role / xyz-instance / i-xyz不是   授权执行:cloudformation:ListStack资源上的资源:   arn:aws:cloudformation:us-west-2:xyz:stack / xyz-preprod-qa-xyz-asg / *   (服务:AmazonCloudFormation;状态代码:403;

我发现使用者正在尝试查找通过@SqsListener定义的队列,因此我授予了权限。授予权限后,我不再看到错误,但消息也未被读取。

看着上面的异常,我的ec2实例在arn:aws:cloudformation:us-west-2:xyz:stack / xyz-preprod-qa-xyz-asg上执行了ListStackResources。我试图弄清楚为什么它需要在ASG上执行ListStackResources?如何检测到队列?

0 个答案:

没有答案