如何删除未确认的 AWS SNS 订阅

Posted

技术标签:

【中文标题】如何删除未确认的 AWS SNS 订阅【英文标题】:How to delete a unconfirmed AWS SNS subscription 【发布时间】:2014-03-24 18:02:33 【问题描述】:

我正在尝试删除对未确认的 SNS 主题(特别是电子邮件地址)的订阅,但 AWS 控制台不允许。它会让我删除已确认的订阅。有什么想法吗?

【问题讨论】:

还有 API - 它们不能被删除。有什么事吗? 您可以随时删除然后重新创建主题。使用 IaC 轻松实现(停机时间最短)。 【参考方案1】:

根据SNS架构和设计:

如果订阅是批准,那么无论是否有与之关联的主题。用户将能够删除订阅。)

如果订阅是PENDING,那么无论是否有与之关联的主题。亚马逊将在创建 3 天后自动删除订阅。

请参阅the FAQ 了解更多信息(向下滚动到标题为“订阅请求在等待确认期间将保持多长时间待处理?”的问题)

【讨论】:

¿您有这部分文档的链接吗? @Matt 我添加了一个常见问题的链接。 不能从控制台中删除它绝对没有意义。如果我输入了错误的 URL 怎么办?如果我能够删除它有什么大不了的?毕竟我是这个话题的主人。我可以删除主题本身,但不能删除主题的订阅?! docs.aws.amazon.com/sns/latest/dg/…You can't delete a pending confirmation. After 3 days, Amazon SNS deletes it automatically. @gomisha 您评论中的链接不再有效。这是更新的链接docs.aws.amazon.com/sns/latest/dg/…【参考方案2】:

我看到电子邮件订阅无限期地处于 PendingConfirmation 状态,正如您所提到的,它们无法使用 Web 控制台删除。另外,订阅确认邮件中的链接会在几天后失效,因此您也无法点击确认订阅然后删除。

但是,假设您仍然可以访问该电子邮件地址,您可以在 Web 控制台中使用相同的电子邮件地址为 SNS 主题创建新订阅。这实际上并不会导致单独的订阅,因为似乎一个电子邮件地址只能订阅一次。但是,它确实会发送另一封电子邮件,其中包含一个新的确认链接,您可以单击该链接以确认订阅。确认后,您终于可以在 SNS Web 控制台中删除订阅了。

【讨论】:

我也有同样的问题。订阅已长时间处于待处理状态,已成为孤立状态。主题已删除,但订阅仍然存在。无论我做什么,我都无法摆脱这个待定订阅。任何帮助将不胜感激。【参考方案3】:

我遇到了未确认的 SQS 订阅问题。删除挂起的订阅时,重新订阅队列会导致尴尬的状态,即它被已删除的挂起订阅订阅,因此不会传递任何消息。

我通过在主题帐户中设置订阅来解决此问题,该订阅触发了要发送的新确认消息。一旦(手动)确认订阅,它就会替换已删除的待处理订阅,并且队列会再次收到消息。 此外,订阅可以完全删除,而 已删除的待处理订阅不会再次出现。

不知道类似的方法是否适用于电子邮件订阅。

【讨论】:

【参考方案4】:

我不认为你可以,但如果没有得到确认,它们应该会在 3 天后消失......所以你可能只需要等待。

【讨论】:

嗯,已经超过 3 天没有确认他们还在徘徊......【参考方案5】:

如果 3 天后它没有消失,请尝试通过选择订阅并点击“请求确认”重新发送确认请求。这将重新触发自动移除的3天倒计时,如果订阅仍未确认,则应在3天后移除。

【讨论】:

以上是关于如何删除未确认的 AWS SNS 订阅的主要内容,如果未能解决你的问题,请参考以下文章

OpsGenie 不会在 AWS 仪表板或 terraform 中自动确认 SNS 订阅

AWS lambda 发送 SNS“成功”但未实际发送消息

如何使用 AWS CloudFormation 为 SNS 订阅指定“原始消息传递”?

通过 HTTP 确认 SNS 订阅

AWS SNS ConfirmSubscription 授权从未授予 IAM 用户

如何将 SQS 队列订阅到 Java 中的 SNS 主题