我有一个spring引导war项目,并配置了一个使用@SqsListener的方法,当在本地运行时,@SqsListener注释的方法工作良好,能够轮询来自SQS队列的消息。当应用程序作为豆茎(web环境)的一部分被构建和部署时,它不再接收消息了。我不知道为什么。
方法:
@SqsListener(value = "rishi-demo-queue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void getSqsMessage(String message) {
logger.info("inside sqs listener, message: {}",message);
}SQS策略(ec2角色是正确的,我已经验证了):
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<accountid>:root"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:ap-south-1:<accountid>6:rishi-demo-queue"
},
{
"Sid": "__EC2_statement",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<accountid>:role/aws-elasticbeanstalk-ec2-role"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:ap-south-1:<accountid>:rishi-demo-queue"
}
]
}发布于 2022-07-16 14:56:39
当我将方法从@RestController注释类移到@Service注释类时,它就开始工作了。
https://stackoverflow.com/questions/73005029
复制相似问题