2017-10-21 27 views
1

J'essaie d'envoyer OTP à partir de ma fonction AWS Lambda hébergée dans la région AP-South-1 (c'est-à-dire Mumbai). J'utilise une fonctionnalité de messagerie texte mondiale de SNS pour cela. Comme la région "AP-South-1" ne prend pas en charge la fonctionnalité de messagerie texte dans le monde, j'envoie le point de terminaison de la région SNSClient en tant que région "APNortheast1" (c'est-à-dire Tokyo) car elle prend en charge la messagerie texte mondiale.Impossible d'envoyer un message texte dans le monde entier à partir de la fonction aws lambda

Maintenant, j'ai donné mon privilège d'administrateur de fonction de lambda (en attachant le rôle avec la politique d'administrateur). Mais, encore, il ne semble pas fonctionner (ne pas livrer le message à mon mobile). Je ne reçois aucune exception lors de l'exécution de la fonction et je reçois également le "TransactionID" pour ce SMS. Dans la console SNS, le SMS s'affiche comme ayant échoué. J'ai donc activé le journal de cloudwatch pour cela. Le journal que je reçois est maintenant, est ici dessous-

{ 
    "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" 
} 

le irony- c'est en fait un nouveau compte où je suis émigre (manuellement) les ressources d'un autre compte. Dans cet ancien compte, j'ai exactement la même configuration, mais il semble que le message soit correctement transmis à mon mobile. Pour votre information, ma fonction Lambda est écrite dans le noyau .net et j'essaye de livrer le SMS à un numéro de portable indien.

+0

Bien que le message d'erreur ne suggère pas que c'est le problème, avez-vous dépassé la limite de dépenses du nouveau compte pour SMS? Avez-vous essayé d'envoyer des messages directement depuis la console SNS? Avez-vous essayé la console SNS dans d'autres régions, comme us-east-1? –

+0

Bonjour @ Michael-sqlbot J'ai essayé d'envoyer des SMS depuis la console directement dans la région "APNortheast1". Mais il n'est pas livré même à partir de la console. Ce compte courant est très nouveau et, de toute façon, il n'a jamais dépassé la limite de dépenses. Mais maintenant, quand j'ai essayé avec "USWest2" cela fonctionne à la fois de la console et du code. Mais cela ne fonctionne pas dans les régions d'Asie-Pacifique. Ce genre de résolu mon problème. Mais, sans savoir pourquoi cela ne fonctionne pas à partir de régions AP, me met mal à l'aise pour faire le code à la production. S'il vous plaît laissez-moi savoir si vous avez quelque chose dans votre esprit. – Sudip

+0

Si cela fonctionne d'une région et non d'une autre, cela suggère qu'il existe un problème dans la région que vous utilisez, que le support d'AWS doit connaître, donc vous pouvez publier sur le [forum officiel] (https://forums.aws.amazon.com/forum.jspa?forumID=72) ou ouvrez un dossier de support si vous avez un contrat de support. Quoi qu'il en soit, capturez les journaux et incluez les ID de message qui passent et qui échouent afin que le support puisse trouver les événements spécifiques. Notez également qu'à moins que vous ayez pris des mesures pour l'augmenter, votre compte aura une limite de dépenses par défaut de seulement 1 USD.Cela pourrait encore être lié à cela. –

Répondre

1

En Octobre 2017, Amazon SNS prend en charge la messagerie SMS in the following regions:

  • des États-Unis (N. Virginia)
  • US West (Oregon)
  • UE (Irlande)
  • Asie-Pacifique (Tokyo)
  • Asie-Pacifique (Singapour)
  • Asie-Pacifique (Sydney)

Un moyen rapide d'envoyer un SMS est avec le AWS Command-Line Interface (CLI):

aws sns publish --phone-number 9112345678 --message foo --region ap-southeast-2 

Cela échoue lors de l'utilisation ap-south-1, parce que SMS est pas pris en charge dans cette région.

Votre code lambda peut envoyer le message via une autre région, mais vous devez créer votre objet client SNS dans une autre région.

+0

Petite note pour les utilisateurs qui tentent d'envoyer des messages de cette façon: assurez-vous de mettre à jour votre cli locale 'aws' car l'option' --phone-number' est (relativement parlant) nouveau (je courais la version 1.10.34 qui ne l'avait pas). Instructions de mise à niveau 'aws' [ici] (http://docs.aws.amazon.com/cli/latest/userguide/installing.html). Version courte: 'pip install awscli --upgrade --user' –