2

AP-South-1 (ムンバイ) リージョンでホストされている AWS Lambda 関数から OTP を送信しようとしています。これには、SNS の全世界へのテキスト メッセージ機能を使用しています。"AP-South-1" リージョンは全世界のテキスト メッセージ機能をサポートしていないため、SNSClient のリージョン エンドポイントを "APNortheast1" (つまり、東京) リージョンとして送信します。これは、全世界のテキスト メッセージをサポートするためです。

これで、ラムダ関数の管理者特権が付与されました (管理者ポリシーでロールをアタッチすることにより)。しかし、それでも機能していないようです (メッセージが携帯電話に配信されません)。関数の実行中に例外は発生せず、その SMS の「TransactionID」も取得しています。SNS コンソールで、SMS が失敗として表示されます。そのため、cloudwatch ログを有効にしました。私が取得しているログは以下のとおりです-

{ 
   "notification": {
        "messageId": "8cba93de-b794-577d-99be-c1ba5d5d21dd",
        "timestamp": "2017-10-21 06:26:17.946"
   },
   "delivery": {
        "destination": "+91XXXXXXXXXX",
        "smsType": "Transactional",
        "providerResponse": "Internal error",
        "dwellTimeMs": 79 
   },
   "status": "FAILURE" 
}

皮肉なことに、これは実際には、別のアカウントから (手動で) リソースを移行している新しいアカウントです。この古いアカウントでは、まったく同じ設定を使用していますが、メッセージが携帯電話に適切に配信されているようです。参考までに、私の Lambda 関数は .net コアで記述されており、SMS をインドの携帯電話番号に配信しようとしています。

4

1 に答える 1