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

2 分的閱讀內容
0

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

解決方法

下列各節提供無效參數錯誤的解決步驟。

解決平台憑證錯誤

InvalidParameter - Error message: Invalid parameter: Attributes Reason: Platform credentials are invalid

**重要事項:**在完成以下步驟,解決錯誤之前,請先檢查 Apple 開發人員帳戶中的供應商憑證類型。然後,下載該憑證。

  1. 開啟 Amazon SNS 主控台

  2. 在導覽窗格中,選擇推播通知

  3. 選擇建立平台應用程式

  4. 應用程式名稱中,輸入應用程式的名稱。

  5. 推播通知平台,選擇 Apple iOS/VoIP/Mac

  6. 如果您是使用沙盒類型的憑證,請在 Apple 登入資料區段中選取用於在沙盒中開發核取方塊。

    重要事項:如果您使用的是沙盒和生產類型的憑證,則不得選取此核取方塊。否則,您會收到錯誤訊息。

  7. 推播憑證類型中,選取您的憑證類型。

  8. 選擇選擇檔案,然後選取要從中載入登入資料的憑證。

  9. 選擇建立平台應用程式

解決 FIFO 錯誤

"message": "Invalid parameter: The MessageGroupId parameter is required for FIFO topics"

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

即使 API 請求中已提供 ID,仍可能會收到無效 MessageGroupId 或無效 MessageDeduplicationId 的 Amazon SNS FIFO 錯誤。Amazon SNS FIFO 屬性僅適用於較新的 SDK 版本。如需詳細資訊,請參閱 GitHub 網站上的 Changelog for AWS SDK for JavaScript

解決簡訊 (SMS) 錯誤

Couldn't set text messaging attributes.
Error code: InvalidParameter - Error message: Invalid parameter:

如果您看到以下錯誤,請完成下列步驟:

  1. 開啟 Amazon SNS 主控台
  2. 在導覽窗格中,選擇簡訊 (SMS)
  3. 簡訊偏好設定中,選擇編輯
  4. 帳戶支出限制 - 可選參數中,輸入數字值 1。此預設值為月支出限額 (以美元為單位)。如果您希望帳戶的月支出限額大於 1 美元,可以請求提高帳戶支出限額。
  5. **注意:**預設情況下,每個 Amazon SNS 帳戶在每個 AWS 區域的支出配額為 1 美元。當值大於 1 時,您會在 Amazon SNS 主控台收到錯誤訊息。
  6. 選擇儲存變更

解決訂閱刪除錯誤

Couldn't delete subscription.
Error code: InvalidParameter - Error message: Invalid parameter: SubscriptionArn Reason: An ARN must have at least 6 elements, not 1

當您嘗試移除處於 PendingConfirmation 狀態的訂閱時,就會遇到此錯誤。若要移除訂閱,請呼叫 Amazon SNS Unsubscribe API,這需要 SubscriptionARN。如果您使用主控台刪除訂閱,Amazon SNS 主控台會自動從所選的訂閱中選取 SubscriptionARN。對於處於 PendingSubscription 狀態的訂閱,主控台不會顯示 SubscriptionId。因此,主控台使用 PendingConfirmation 作為 SubscriptionId。接著,API 呼叫失敗並傳回錯誤。

如果是處於等待確認狀態的訂閱:

  1. 開啟 Amazon SNS 主控台
  2. 在導覽窗格中,選擇主題,然後選擇您的主題。
  3. 選取訂閱處於等待確認狀態的主題,然後選取處於等待確認狀態的訂閱。
  4. 選擇請求確認

系統會將訂閱通知傳送至端點,確認該訂閱。

  1. 複製通知中的訂閱網址。此網址看起來類似於下列內容:

    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
  2. 在 Amazon SNS 的導覽功能表上,選擇訂閱,然後選取您的訂閱。

  3. 選擇確認訂閱

  4. 將步驟 5 中的訂閱網址貼到對話方塊中,然後選擇確認訂閱

  5. 選取您的訂閱,然後選擇刪除

如果是處於已刪除狀態的訂閱:

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

Your subscription to the topic below has been deactivated:
arn:aws:sns:Your-AWS-Region:Your-Account-Number:Your-Topic-Name

If this was in error or you wish to resubscribe, click or visit the link below:
Resubscribe

Please click on the resubscribe link present in the notification. This will confirm the subscription. On success, please select the specific subscription and click on Delete button.

-或-

等待三天移除訂閱。預設情況下,Amazon SNS 會在三天內自動移除 PendingConfirmation 狀態的訂閱。

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