在春季启动中,我们如何确认来自亚马逊SNS的订阅请求HTTP



我们如何使用spring boot和spring cloud starter aws消息确认来自亚马逊SNS的订阅请求?

根据Spring Cloud AWS–Messaging Support教程,我们需要将主题名称添加到控制器级别的@RequestMapping注释中。

然后在SNS订阅中,我们添加了这样的终点:http://foo.eu-west-1.elb.amazonaws.com/topic_name-sns

=>但就我而言,订阅从未得到确认,我也不知道为什么。

这是我正在使用的一段代码:

@Controller
@RequestMapping("/topic_name-sns")
public class SNSEndpointController {
private static final Logger logger = LoggerFactory.getLogger(SNSEndpointController.class);
@NotificationMessageMapping
public void receiveNotification(@NotificationMessage String message, @NotificationSubject String subject) {
logger.info("Received message: {}, having subject: {}", message, subject);
}
@NotificationUnsubscribeConfirmationMapping
public void confirmSubscriptionMessage(NotificationStatus notificationStatus) {
logger.info("Unsubscribed from Topic");
notificationStatus.confirmSubscription();
}
@NotificationSubscriptionMapping
public void confirmUnsubscribeMessage(NotificationStatus notificationStatus) {
logger.info("Subscribed to Topic");
notificationStatus.confirmSubscription();
}
}

要使用Spring Framework和SNS服务,请考虑使用官方AWS SDK for Java V2,如本AWS教程中所述。

创建发布/订阅Spring引导应用程序

如前所述,您可以在Spring项目中轻松使用AWS SDK for Java API,并且无需在AWS API上使用第三方API。通过这样做,您将获得AWS SDK团队的支持。如果您继续使用第三方API,则您没有AWS SDK团队的支持。

最后我发现了这个问题。与权限有关,我的ECS任务没有权限确认订阅,所以订阅一直没有确认。

相关内容

  • 没有找到相关文章