我在 Amazon Simple Notification Service (Amazon SNS) 中收到回應 API 呼叫的無效參數錯誤。
解決方法
下列各節提供無效參數錯誤的解決步驟。
解決平台憑證錯誤
InvalidParameter - Error message: Invalid parameter: Attributes Reason: Platform credentials are invalid
**重要事項:**在完成以下步驟,解決錯誤之前,請先檢查 Apple 開發人員帳戶中的供應商憑證類型。然後,下載該憑證。
-
開啟 Amazon SNS 主控台。
-
在導覽窗格中,選擇推播通知。
-
選擇建立平台應用程式。
-
在應用程式名稱中,輸入應用程式的名稱。
-
在推播通知平台,選擇 Apple iOS/VoIP/Mac。
-
如果您是使用沙盒類型的憑證,請在 Apple 登入資料區段中選取用於在沙盒中開發核取方塊。
重要事項:如果您使用的是沙盒和生產類型的憑證,則不得選取此核取方塊。否則,您會收到錯誤訊息。
-
在推播憑證類型中,選取您的憑證類型。
-
選擇選擇檔案,然後選取要從中載入登入資料的憑證。
-
選擇建立平台應用程式。
解決 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:
如果您看到以下錯誤,請完成下列步驟:
- 開啟 Amazon SNS 主控台。
- 在導覽窗格中,選擇簡訊 (SMS)。
- 在簡訊偏好設定中,選擇編輯。
- 在帳戶支出限制 - 可選參數中,輸入數字值 1。此預設值為月支出限額 (以美元為單位)。如果您希望帳戶的月支出限額大於 1 美元,可以請求提高帳戶支出限額。
- **注意:**預設情況下,每個 Amazon SNS 帳戶在每個 AWS 區域的支出配額為 1 美元。當值大於 1 時,您會在 Amazon SNS 主控台收到錯誤訊息。
- 選擇儲存變更。
解決訂閱刪除錯誤
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 呼叫失敗並傳回錯誤。
如果是處於等待確認狀態的訂閱:
- 開啟 Amazon SNS 主控台。
- 在導覽窗格中,選擇主題,然後選擇您的主題。
- 選取訂閱處於等待確認狀態的主題,然後選取處於等待確認狀態的訂閱。
- 選擇請求確認。
系統會將訂閱通知傳送至端點,確認該訂閱。
-
複製通知中的訂閱網址。此網址看起來類似於下列內容:
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
-
在 Amazon SNS 的導覽功能表上,選擇訂閱,然後選取您的訂閱。
-
選擇確認訂閱。
-
將步驟 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 狀態的訂閱。