如何解決我在 Amazon SNS 中收到回應 API 呼叫的無效參數錯誤?

2 分的閱讀內容
0

我在 API 呼叫時,Amazon Simple Notification Service (Amazon SNS) 中收到無效參數錯誤。

解決方法

平台憑證錯誤

「InvalidParameter - 錯誤訊息: 無效的參數: 屬性原因: 平台憑證無效」

先決條件: 檢查 Apple 開發人員帳戶中的提供者憑證類型,然後下載憑證。

若要解決平台憑證錯誤,請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Push notifications (推播通知)。
  3. 選擇 Create platform application (建立平台應用程式)。
  4. Application name (應用程式名稱) 中,輸入應用程式的名稱。
  5. 對於 Push notification platform (推播通知平台),選擇 Apple iOS/VoIP/Mac
  6. 僅用於沙箱憑證類型時,請在 Apple Credentials (Apple 憑證) 區段中,選取 Used for development in sandbox (用於在沙盒中開發)。
    重要: 如果您使用沙盒和生產憑證類型,請勿選取 Used for development in sandbox (用於在沙箱中開發)。否則,您會收到錯誤訊息。
  7. 對於 Push certificate type (推播憑證類型),選取您的憑證類型。
  8. 選擇 Choose file (選擇檔案),然後選取要從中載入登入資料的憑證。
  9. 選擇 Create platform application (建立平台應用程式)。

FIFO 錯誤

「message: 無效的參數: FIFO 主題必須有 MessageGroupId 參數」

即使您提供 MessageID,您也可能會看到先前的錯誤。確認您使用適用於瀏覽器中的 JavaScript 的 AWS SDK,或適用於 JavaScript in Node.js 的 AWS SDK 2.777.0 版或更新版本。

即使已在 API 請求中提供 ID,您可能會收到無效 MessageGroupIdMessageDeduplicationId 的 Amazon SNS FIFO 錯誤。Amazon SNS FIFO 屬性僅適用於較新的 SDK 版本。如需詳細資訊,請參閱 GitHub 網站上的適用於 JavaScript 的 AWS SDK 變更記錄

簡訊 (SMS) 錯誤

「無法設定文字訊息屬性。錯誤代碼: InvalidParameter - 錯誤訊息: 無效的參數。」

若要解決文字訊息錯誤,請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Text messaging (SMS) (簡訊 (SMS))。
  3. 對於 Text messaging preferences (簡訊偏好設定),選擇 Edit (編輯)。
  4. 對於 Account spend limit - Optional Parameter (帳戶支出限制 - 可選參數) 中,輸入數字值 1
    注意: 預設情況下,每個 Amazon SNS 帳戶在每個 AWS 區域的每月支出配額為 1 美元。當您超過預設值時,會收到錯誤。若要增加帳戶每月支出配額,請要求增加帳戶支出配額。
  5. 選擇 Save changes (儲存變更)。

如果目的地國家需要專用的長碼、短碼或 SenderID,請在註冊後使用該代碼。如需詳細資訊,請參閱使用 AWS 終端用戶訊息 SMS 服務的 SMS 傳訊支援國家和地區

注意: 已註冊的來源身份或寄件者 ID 為國家/地區專用。若要在其他國家/地區使用源身份或寄件者 ID,您必須為每個其他目的地國家/地區分別註冊源身份或寄件者 ID 。如需詳細資訊,請參閱為 AWS 終端用戶訊息 SMS 服務選擇電話號碼或寄件者 ID

訂閱刪除錯誤

「無法刪除訂閱。錯誤代碼: InvalidParameter - 錯誤訊息: 無效的參數: SubscriptionArn 原因: ARN 必須至少含有 6 個元素,不能僅有 1 個元素」

PendingConfirmation 狀態

當您嘗試移除處於 PendingConfirmation 狀態的訂閱時,可能會收到此錯誤。當您使用取消訂閱 API 來刪除訂閱時,API 呼叫需要 SubscriptionARN。如果您使用 Amazon SNS 主控台來刪除訂閱,則 Amazon SNS 會自動選取 SubscriptionARN

對於處於 PendingSubscription 狀態的訂閱,主控台不會顯示 SubscriptionId。因此,主控台使用 PendingConfirmation 作為 SubscriptionId。接著,API 呼叫失敗並傳回錯誤。

若要解決處於 Pending confirmation 狀態的訂閱,請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。

  2. 在導覽窗格中,選擇 Topics(主題),然後選擇您的主題。

  3. 選取訂閱處於 Pending confirmation (待定確認) 狀態的主題,然後選取處於 Pending confirmation (待定確認) 狀態的訂閱。

  4. 選擇 Request confirmation (請求確認)。系統會將訂閱通知傳送至端點,確認該訂閱。通知包含類似下列範例的連結:

    https://sns.us-east-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:your-aws-region:your-account-number:your-topic-name&Token=your-token&Endpoint=your-endpoint
  5. 在導覽窗格中,選擇 Subscriptions (訂閱),然後選取您的訂閱。

  6. 選擇 Confirm subscription (確認訂閱)。

  7. 在對話方塊中輸入訂閱通知的訂閱網址,然後選擇 Confirm subscription (確認訂閱)。

  8. 選取您的訂閱,然後選擇 Delete (刪除)。

或者,等待預設 3 天,讓 Amazon SNS 移除處於 PendingConfirmation 狀態的訂閱。

「Deleted」狀態

您可能會收到處於 Deleted 狀態的訂閱錯誤訊息。

檢查選擇取消訂閱連結的端點。取消訂閱後,端點會收到另一個類似下列通知:

「您對以下主題的訂閱已停用:arn:aws:sns:Your-AWS-Region:Your-Account-Number:Your-Topic-Name
如果此為錯誤或您想重新訂閱,請按一下或訪問下列連結:
重新訂閱
請按一下通知中的重新訂閱連結。這將確認訂閱。成功後,請選取特定的訂閱,然後按一下「Delete」(刪除) 按鈕。」

AWS 官方
AWS 官方已更新 1 個月前