Publication de SMS messages sur un SNS sujet Amazon - Amazon Simple Notification Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Publication de SMS messages sur un SNS sujet Amazon

Vous pouvez publier un seul SMS message sur plusieurs numéros de téléphone à la fois en abonnant ces numéros de téléphone à une SNS rubrique Amazon. Un SNS sujet est un canal de communication auquel vous pouvez ajouter des abonnés, puis publier des messages destinés à tous ces abonnés. Un abonné reçoit tous les messages publiés dans le sujet jusqu'à ce que vous annuliez son abonnement ou jusqu'à ce qu'il refuse de recevoir SMS des messages de votre AWS compte.

Envoyer un message à un sujet à l'aide de la console

Pour créer une rubrique

Procédez comme suit si vous n'avez pas encore de sujet auquel vous souhaitez envoyer SMS des messages.

  1. Connectez-vous à la SNSconsole Amazon.

  2. Dans le menu de la console, choisissez une AWS région qui prend en charge la SMS messagerie.

  3. Dans le volet de navigation, choisissez Rubriques.

  4. Sur la page Rubriques, choisissez Créer une rubrique.

  5. Sur la page Créer une rubrique sous Détails, procédez comme suit :

    1. Pour Type, choisissez Standard.

    2. Pour Nom de la rubrique, saisissez un nom de rubrique.

    3. (Facultatif) Dans Nom d'affichage, entrez un préfixe personnalisé pour vos SMS messages. Lorsque vous envoyez un message au sujet, Amazon SNS ajoute le nom d'affichage suivi d'un crochet à angle droit (>) et d'un espace. Les noms d'affichage ne distinguent pas les majuscules des minuscules et Amazon les SNS convertit en majuscules. Par exemple, si le nom d'affichage d'une rubrique est MyTopic et que le message est Hello World!, le message se présente comme suit :

      MYTOPIC> Hello World!
  6. Choisissez Créer une rubrique. Le nom du sujet et le nom de la ressource Amazon (ARN) apparaissent sur la page Sujets.

Pour créer un SMS abonnement

Vous pouvez utiliser les abonnements pour envoyer un SMS message à plusieurs destinataires en ne le publiant qu'une seule fois dans votre rubrique.

Note

Lorsque vous commencez à utiliser Amazon SNS pour envoyer SMS des messages, votre AWS compte se trouve dans le SMSbac à sable. Le SMS bac à sable fournit un environnement sûr qui vous permet d'essayer les SNS fonctionnalités d'Amazon sans mettre en danger votre réputation d'SMSexpéditeur. Lorsque votre compte est dans le SMS sandbox, vous pouvez utiliser toutes les fonctionnalités d'AmazonSNS, mais vous ne pouvez envoyer SMS des messages qu'à des numéros de téléphone de destination vérifiés. Pour de plus amples informations, veuillez consulter Le bac à SNS SMS sable Amazon.

  1. Connectez-vous à la SNSconsole Amazon.

  2. Dans le panneau de navigation, choisissez Abonnements.

  3. Sur la page Abonnements, choisissez Créer un abonnement.

  4. Sur la page Créer un abonnement, sous Détails, procédez comme suit :

    1. Dans le ARN champ Sujet, entrez ou choisissez le nom de ressource Amazon (ARN) du sujet auquel vous souhaitez envoyer SMS des messages.

    2. Pour Protocol (Protocole), choisissez SMS.

    3. Pour Point de terminaison, saisissez le numéro de téléphone que vous souhaitez abonner à votre rubrique.

  5. Choisissez Create subscription (Créer un abonnement). Les informations d'abonnement s'affichent sur la page Abonnements.

    Pour ajouter d'autres numéros de téléphone, répétez ces étapes. Vous pouvez également ajouter d'autres types d'abonnements, tels que la messagerie électronique.

Pour envoyer un message

Lorsque vous publiez un message dans un sujet, Amazon SNS tente de le transmettre à tous les numéros de téléphone abonnés au sujet.

  1. Dans la SNSconsole Amazon, sur la page Sujets, choisissez le nom du sujet auquel vous souhaitez envoyer SMS des messages.

  2. Sur la page des détails de la rubrique, sélectionnez Publier le message.

  3. Sur la page Publier un message dans la rubrique, sous Détails du message, procédez comme suit :

    1. Pour Objet, laissez le champ vide, sauf si votre sujet contient des abonnements par e-mail et que vous souhaitez publier à la fois par e-mail et par SMS abonnement. Amazon SNS utilise l'objet que vous avez saisi comme objet de l'e-mail.

    2. (Facultatif) Pour Time to Live (TTL), entrez le nombre de secondes dont SNS dispose Amazon pour envoyer votre SMS message à tous les abonnés des terminaux d'applications mobiles.

  4. Sous Corps du message, procédez comme suit :

    1. Pour Structure des messages, choisissez Charge utile identique pour tous les protocoles de distribution pour envoyer le même message à tous les types de protocoles abonnés à votre rubrique. Ou, choisissez Charge utile personnalisée pour chaque protocole de distribution pour personnaliser le message pour les abonnés de différents types de protocole. Par exemple, vous pouvez saisir un message par défaut pour les abonnés à un numéro de téléphone et un message personnalisé pour les abonnés à un courrier électronique.

    2. Pour Corps du message à envoyer au point de terminaison, saisissez votre message ou vos messages personnalisés par protocole de distribution.

      Si votre sujet possède un nom d'affichage, Amazon l'SNSajoute au message, ce qui augmente la longueur du message. La longueur du nom d'affichage est le nombre de caractères du nom plus deux caractères pour le crochet à angle droit (>) et l'espace SNS ajouté par Amazon.

      Pour plus d'informations sur les quotas de taille des SMS messages, consultezPublier SMS des messages sur un téléphone portable à l'aide d'Amazon SNS.

  5. (Facultatif) Pour les attributs de message, ajoutez des métadonnées de message telles que les horodatages, les signatures et. IDs

  6. Choisissez Publier le message. Amazon SNS envoie le SMS message et affiche un message de réussite.

Envoyer un message à un sujet à l'aide du AWS SDKs

Pour utiliser un AWS SDK, vous devez le configurer avec vos informations d'identification. Pour plus d'informations, consultez la section Les fichiers de configuration et d'identification partagés dans le guide de référence AWS SDKs et Tools.

L’exemple de code suivant illustre comment :

  • Créez un SNS sujet Amazon.

  • Abonner des numéros de téléphone à la rubrique.

  • Publiez SMS des messages dans le sujet afin que tous les numéros de téléphone abonnés reçoivent le message en même temps.

Java
SDKpour Java 2.x
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

Créez un sujet et renvoyez-leARN.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.CreateTopicRequest; import software.amazon.awssdk.services.sns.model.CreateTopicResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class CreateTopic { public static void main(String[] args) { final String usage = """ Usage: <topicName> Where: topicName - The name of the topic to create (for example, mytopic). """; if (args.length != 1) { System.out.println(usage); System.exit(1); } String topicName = args[0]; System.out.println("Creating a topic with name: " + topicName); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); String arnVal = createSNSTopic(snsClient, topicName); System.out.println("The topic ARN is" + arnVal); snsClient.close(); } public static String createSNSTopic(SnsClient snsClient, String topicName) { CreateTopicResponse result; try { CreateTopicRequest request = CreateTopicRequest.builder() .name(topicName) .build(); result = snsClient.createTopic(request); return result.topicArn(); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; } }

Abonner un point de terminaison à une rubrique

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SnsException; import software.amazon.awssdk.services.sns.model.SubscribeRequest; import software.amazon.awssdk.services.sns.model.SubscribeResponse; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SubscribeTextSMS { public static void main(String[] args) { final String usage = """ Usage: <topicArn> <phoneNumber> Where: topicArn - The ARN of the topic to subscribe. phoneNumber - A mobile phone number that receives notifications (for example, +1XXX5550100). """; if (args.length < 2) { System.out.println(usage); System.exit(1); } String topicArn = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); subTextSNS(snsClient, topicArn, phoneNumber); snsClient.close(); } public static void subTextSNS(SnsClient snsClient, String topicArn, String phoneNumber) { try { SubscribeRequest request = SubscribeRequest.builder() .protocol("sms") .endpoint(phoneNumber) .returnSubscriptionArn(true) .topicArn(topicArn) .build(); SubscribeResponse result = snsClient.subscribe(request); System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Définir des attributs sur le message, tels que l'ID de l'expéditeur, le prix maximal et son type. Les attributs de message sont facultatifs.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest; import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse; import software.amazon.awssdk.services.sns.model.SnsException; import java.util.HashMap; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SetSMSAttributes { public static void main(String[] args) { HashMap<String, String> attributes = new HashMap<>(1); attributes.put("DefaultSMSType", "Transactional"); attributes.put("UsageReportS3Bucket", "janbucket"); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); setSNSAttributes(snsClient, attributes); snsClient.close(); } public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) { try { SetSmsAttributesRequest request = SetSmsAttributesRequest.builder() .attributes(attributes) .build(); SetSmsAttributesResponse result = snsClient.setSMSAttributes(request); System.out.println("Set default Attributes to " + attributes + ". Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Publier un message dans une rubrique Le message est envoyé à chaque abonné.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.PublishRequest; import software.amazon.awssdk.services.sns.model.PublishResponse; import software.amazon.awssdk.services.sns.model.SnsException; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class PublishTextSMS { public static void main(String[] args) { final String usage = """ Usage: <message> <phoneNumber> Where: message - The message text to send. phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s """; if (args.length != 2) { System.out.println(usage); System.exit(1); } String message = args[0]; String phoneNumber = args[1]; SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); pubTextSMS(snsClient, message, phoneNumber); snsClient.close(); } public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) { try { PublishRequest request = PublishRequest.builder() .message(message) .phoneNumber(phoneNumber) .build(); PublishResponse result = snsClient.publish(request); System.out .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }