モバイルテキストメッセージ (SMS メッセージ) が Amazon Simple Notification Service (Amazon SNS) 経由で送信されません。
解決策
SMS メッセージに対して CloudWatch Logs を有効にして表示する
詳細については、「SMS 配信用の Amazon CloudWatch のメトリクスおよびログを表示する」を参照してください。また、「How do I access Amazon SNS topic delivery logs for SMS messages?」を参照してください。
毎月の SMS 使用クォータ制限の上限を超えていないかどうかを確認する
1. 配信状態ログで、失敗した SMS メッセージ配信 ("status": "FAILURE") を確認します。
2. 失敗となった SMS 配信ログで、**"providerResponse": "No Quota left for account"**という値を確認します。失敗した SMS 配信ログにこの値が表示されている場合は、毎月の SMS 使用クォータ制限を超えています。
失敗した SMS メッセージ配信 CloudWatch ログイベントの例
{
"notification": {
"messageId": "efgh9a7-c68f-abcd-bdbe-21ada245e18f",
"timestamp": "2020-10-21 16:32:10.981"
},
"delivery": {
"destination": "+1234567890",
"smsType": "Transactional",
"providerResponse": "No quota left for account",
"dwellTimeMs": 145
},
"status": "FAILURE"
}
注: また、CloudWatch メトリクスの SMSMonthToDateSpentUSD メトリクスをチェックして、毎月の SMS 使用クォータ制限を超えたかどうかを確認することもできます。
3. 毎月の SMS 使用クォータ制限を超えた場合は、Amazon SNS で SMS メッセージの使用制限の引き上げをリクエストすることができます。詳細については、「Requesting a spending limit increase for SMS messages in Amazon SNS」を参照してください。
**重要: ** SMS 使用クォータが引き上げられたら、Amazon SNS コンソール内で、アカウントの使用クォータを調整する必要があります。Amazon SNS コンソールで SMS 設定を更新しない場合、SMS の使用クォータが引き上げられることはありません。
AWS SDK を使用して、SMS メッセージを送信する場合は、メッセージ料金の上限金額を超えていないどうかを確認してください。
1. 配信状態ログで、失敗した SMS メッセージ配信 ("status": "FAILURE") を確認します。
2. 失敗となった SMS 配信ログで、"providerResponse": "delivery would exceed maxprice" という値がないかどうかを確認します。失敗した SMS 配信ログに、この値が表示されている場合は、AWS.SNS.SMS.MaxPrice message attribute 内に設定された価格制限を超えています。
注: CloudWatch メトリクスの PublishSize メトリクスをチェックして、メッセージサイズの制限を超えたかどうかの確認もしてください。メッセージ送信用に設定された最大料金を超えるコストが発生すると Amazon SNS が判断した場合は、メッセージを送信できません。
3. メッセージの上限を超えた場合は、AWS.SNS.SMS.MaxPrice の値を増やすか、SMS メッセージのサイズを小さくします。詳しくは、「Publishing to a mobile phone」を参照してください。
アカウントが SMS メッセージの送信を承認されていることを確認する
1. 配信状態ログで、失敗した SMS メッセージ配信 ("status": "FAILURE") を確認します。
2. 失敗となった SMS 配信ログで、"providerResponse": "Your account requires additional review prior to being able to send SMS messages" という値がないかどうかを確認します。この値は、お客様のアカウントが SMS メッセージを送信できるようにするうえで必要となる情報を Amazon SNS チームが持っていないことを意味します。
注: Amazon SNS では、不正使用を防ぐために、使用量の上限と使用例を承認するよう SMS メッセージを送信する前にお客様にリクエストします。
3. アカウントに SMS メッセージの送信承認がない場合は、AWS サポートセンターで Service limit increase ケースを新規作成します。
発信元の ID がリージョンでサポートされていることを確認する
メッセージの宛先の国または AWS リージョンで、使用する発信元 ID がサポートされていることが必要となります。
例えば、米国の宛先電話番号にメッセージを送信するには、リージョンでサポートされている米国の発信元番号 (TFN/10DLC/ShortCode) であることが必要です。別の例では、カナダの宛先電話番号にメッセージを送信するには、リージョンでサポートされているカナダの発信元番号 (LongCode/ShortCode) であることが必要です。
それぞれの発信元 ID をサポートする国とサポートしない国に関する完全なリストについては、Supported Regions and countries を参照してください。