跳至內容

為什麼無法刪除 Amazon SNS 主題訂閱?

2 分的閱讀內容
0

我想刪除 Amazon Simple Notification Service (Amazon SNS) 主題訂閱。不過,我不是收到錯誤訊息,就是看到主控台中的訂閱刪除選項處於停用狀態。

簡短描述

Amazon SNS 不允許您刪除 Amazon SNS 主題訂閱的情況有三種:

  • 您的主題訂閱處於待確認狀態。
  • 您的主題訂閱處於已刪除狀態。
  • 嘗試刪除主題訂閱的 AWS Identity and Access Management (IAM) 實體沒有取消訂閱所需的權限。

注意: 兩天後,Amazon SNS 會自動從您的帳戶中移除處於已刪除和待確認狀態的訂閱。

如果您的主題訂閱處於待確認狀態,Amazon SNS 主控台中的 Delete (刪除) 按鈕會停用。

如果您的主題訂閱處於已刪除狀態,而您嘗試刪除該訂閱,Amazon SNS 會傳回下列錯誤訊息:

「Error code: InvalidParameter - Error message: Invalid parameter: SubscriptionArn Reason: An ARN must have at least 6 elements, not 1」

如果嘗試刪除訂閱的 IAM 實體沒有取消訂閱所需的權限,Amazon SNS 會傳回 Permissions Denied 錯誤。

解決方法

檢查您的 Amazon SNS 主題訂閱是否處於已刪除或待確認狀態

重要: 如果刪除主題時,訂閱處於已刪除或待確認狀態,您將無法從帳戶中手動移除訂閱。您必須等待兩天,Amazon SNS 才會自動從您的帳戶中移除訂閱。
注意: 如果系統未在兩天內自動移除訂閱,請聯絡 AWS Support。

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在左側導覽窗格中,選擇 Subscriptions (訂閱)。
  3. 在 Subscriptions (訂閱) 頁面上,尋找您要刪除的訂閱。接著,在 Status (狀態) 欄中,檢查訂閱是否處於已刪除或待確認狀態。
  4. 根據您的訂閱處於已刪除或待確認狀態,完成以下其中一節的步驟。如果您的訂閱未處於已刪除或待確認狀態,請完成疑難排解 Permissions Denied 錯誤一節中的步驟。

您的 Amazon SNS 主題訂閱處於已刪除狀態

主題訂閱處於已刪除狀態但尚未從帳戶中移除,可能有以下兩個原因:

主題郵寄清單的成員選取該主題所傳送電子郵件中的取消訂閱連結

採取下列動作:

  1. 在電子郵件收件匣中,開啟具有以下主旨的電子郵件: AWS 通知 - 取消訂閱確認。
  2. 在電子郵件底部,選取 Resubscribe (重新訂閱) 連結。選取 Resubscribe (重新訂閱) 連結後,系統會重新確認電子郵件訂閱,您便可以從 Amazon SNS 主控台刪除該訂閱。

-或-

依照下列步驟重新建立已刪除的訂閱:

  1. 重新建立已刪除的電子郵件訂閱,然後進行確認。
  2. 建立並確認訂閱後,從 Amazon SNS 主控台將其刪除。
    注意: 電子郵件垃圾郵件篩選器也可能自動取消郵寄清單電子郵件地址的訂閱。

其他帳戶中已訂閱該主題的 Amazon SQS 佇列刪除跨帳戶訂閱

請完成下列步驟:

  1. 依照如何為其他 AWS 帳戶中的 Amazon SQS 佇列重新建立「已刪除」的 Amazon SNS 主題訂閱?中的指示操作。
  2. 使用訂閱所屬的 AWS 帳戶刪除該訂閱。

您的 Amazon SNS 主題訂閱處於待確認狀態

主題訂閱處於待確認狀態但尚未從帳戶中移除,可能有以下五個原因:

  • 訂閱已新增,但尚未確認。
  • 新增至訂閱的電子郵件地址無效。
  • 電子郵件的傳送速率超過每秒 10 封電子郵件的預設配額。
  • HTTP 或 HTTPS 端點未自動處理 Amazon SNS 提出的訂閱確認請求。
  • HTTP 或 HTTPS 端點無效。

將下列任一端點類型訂閱至 SNS 主題時,訂閱會維持待確認狀態,直到完成確認:

  • 電子郵件
  • HTTP
  • HTTPS
  • 跨帳戶 Amazon SQS

若要確認與上述端點類型關聯的訂閱,請選取傳送至端點的 Confirm Subscription (確認訂閱) 連結。確認訂閱後,您可以從 Amazon SNS 主控台將其刪除。

在其他所有情況下,您必須將端點重新訂閱至 SNS 主題,然後完成下列步驟將其刪除:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在左側導覽窗格中,選擇 Subscriptions (訂閱)。
  3. 在 Subscriptions (訂閱) 頁面上,尋找您要刪除的訂閱。接著,選擇 Request confirmation (要求確認)。系統會將確認請求傳送至指定的端點。
  4. 根據您使用的端點類型,採取下列其中一項動作來確認訂閱:
  5. 若使用電子郵件端點

在電子郵件收件匣中,開啟具有以下主旨的電子郵件: AWS 通知 - 訂閱確認。接著,選擇 Confirm Subscription (確認訂閱)。
注意: 如果您沒有看到訂閱確認電子郵件,請檢查垃圾郵件與可疑郵件資料夾。

若使用跨帳戶 Amazon SQS 端點

在 Amazon SQS 佇列中尋找訂閱確認訊息。接著,將 HTTP GET 請求傳送至訊息內文中的 SubscribeURL。如需更多資訊,請參閱將 Amazon SNS 訊息傳送至其他帳戶中的 Amazon SQS 佇列。

若使用 HTTP 和 HTTPS 端點

確認您的端點可以處理 Amazon SNS 用來傳送訂閱確認與通知訊息的 HTTP POST 請求。如需更多資訊,請參閱確認端點已準備好處理 Amazon SNS 訊息。

訂閱處於已確認狀態時,請刪除訂閱。

注意: 對於電子郵件、HTTP 和 HTTPS 端點,刪除訂閱後,必須經過三天,系統才會從您的帳戶中移除訂閱。

疑難排解 Permissions Denied 錯誤

檢查取消訂閱權限

完成下列步驟,確認嘗試刪除主題訂閱的 IAM 實體具有取消訂閱所需的權限:

  1. 開啟 IAM Policy Simulator console (IAM 政策模擬器主控台)。
  2. 在左側的 Users, Groups, and Roles (使用者、群組和角色) 窗格中,選擇您用來刪除主題訂閱的 IAM 實體。
  3. 在 Policy Simulator (政策模擬器) 窗格中,從 Select service (選取服務) 下拉式清單中選取 SNS。
  4. 從 Select actions (選取動作) 下拉式清單中,選取 Unsubscribe (取消訂閱)。
  5. 選擇 Run Simulation (執行模擬)。
  6. 在 Action Settings and Results (動作設定和結果) 下方的 Permission (權限) 欄中,檢查取消訂閱權限是 Allowed (允許) 還是 Denied (拒絕)。

如果您的 IAM 實體不允許 Unsubscribe 動作,請聯絡系統管理員,要求對方新增所需的權限。如需更多資訊,請參閱新增和移除 IAM 身分權限。

AWS 官方已更新 3 年前