Configuration des préférences de messagerie SMS dans Amazon SNS - 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.

Configuration des préférences de messagerie SMS dans Amazon SNS

Utilisez Amazon SNS pour spécifier des préférences pour la messagerie SMS. Par exemple, vous pouvez spécifier si vous souhaitez optimiser les distributions à des fins de coût ou de fiabilité, votre limite de dépenses mensuelles, comment les distributions sont consignées et si vous souhaitez vous abonner à des rapports d'utilisation quotidiens des SMS.

Ces préférences prennent effet pour chaque SMS que vous envoyez depuis votre compte, mais vous pouvez en remplacer certaines lorsque vous envoyez un message individuel. Pour de plus amples informations, veuillez consulter Publier des SMS sur un téléphone mobile à l'aide d'Amazon SNS.

Définition des préférences SMS à l'aide de AWS Management Console

  1. Connectez-vous à la console Amazon SNS.

  2. Choisissez une région qui prend en charge les SMS.

  3. Sur le panneau de navigation, choisissez Mobile, puis Messagerie texte (SMS).

  4. Sur la pageSMS mobile, dans la section Préférences de SMS, choisissez Modifier.

  5. Sur la page Modifier les préférences SMS, dans la section Détails, procédez comme suit :

    1. Pour Type de message par défaut, sélectionnez l'une des options suivantes :

      • Promotionnel – Messages non stratégiques (par exemple, marketing). Amazon SNS optimise la distribution de messages pour générer le coût le plus bas.

      • Transactionnel (par défaut) – Messages stratégiques qui prennent en charge les transactions clients, comme des codes secrets uniques pour l'authentification multifacteur. Amazon SNS optimise la distribution de messages pour obtenir la meilleure fiabilité possible.

      Pour la tarification des messages promotionnels et transactionnels, consultez la page Tarifs SMS internationaux.

    2. Dans le champ Limite de dépense du compte, saisissez le montant maximal (en USD) que vous voulez dépenser pour les SMS par mois calendaire.

      Important
      • Par défaut, le quota de dépenses est définie sur 1,00 USD. Si vous souhaitez augmenter le quota de service, soumettez une demande.

      • Si le montant défini dans la console dépasse le quota de votre service, Amazon SNS cesse la publication de SMS.

      • Amazon SNS étant un système distribué, il cesse d'envoyer des SMS quelques minutes après le dépassement du quota de dépense. Si vous continuez à envoyer des SMS au cours de cet intervalle, vous risquez de devoir payer des coûts au-delà de votre quota.

  6. (Facultatif) Pour ID de l'expéditeur par défaut, entrez un ID personnalisé, par exemple votre marque, qui s'affichera en tant qu'expéditeur de l'appareil de réception.

    Note

    Support pour les expéditeurs IDs varie selon les pays.

  7. (Facultatif) Saisissez le nom du compartiment Amazon S3 pour les rapports d'utilisation.

    Note

    La politique relative aux compartiments Amazon S3 doit accorder un accès en écriture à Amazon SNS.

  8. Sélectionnez Enregistrer les modifications.

Configuration des préférences (AWS SDKs)

Pour définir vos préférences en matière de SMS à l'aide de l'un des AWS SDKs, utilisez l'action de ce SDK qui correspond à la SetSMSAttributes demande dans l'API Amazon SNS. Cette demande vous permet d'affecter des valeurs aux différents attributs SMS, tels que votre quota de dépenses mensuelles et votre type de SMS par défaut (promotionnel ou transactionnel). Pour tous les attributs des SMS, consultez la section Set SMSAttributes dans le manuel Amazon Simple Notification Service API Reference.

Les exemples de code suivants illustrent comment utiliser SetSMSAttributes.

C++
SDK pour C++
Note

Il y en a plus à ce sujet 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.

Comment utiliser Amazon SNS pour définir l'attribut par défautSMSType .

//! Set the default settings for sending SMS messages. /*! \param smsType: The type of SMS message that you will send by default. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::SNS::setSMSType(const Aws::String &smsType, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::SNS::SNSClient snsClient(clientConfiguration); Aws::SNS::Model::SetSMSAttributesRequest request; request.AddAttributes("DefaultSMSType", smsType); const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes( request); if (outcome.IsSuccess()) { std::cout << "SMS Type set successfully " << std::endl; } else { std::cerr << "Error while setting SMS Type: '" << outcome.GetError().GetMessage() << "'" << std::endl; } return outcome.IsSuccess(); }
  • Pour plus de détails sur l'API, voir Set SMSAttributes in AWS SDK for C++ API Reference.

CLI
AWS CLI

Pour définir les attributs des SMS

L'exemple set-sms-attributes suivant définit l'ID d'expéditeur par défaut des SMS sur MyName.

aws sns set-sms-attributes \ --attributes DefaultSenderID=MyName

Cette commande ne produit aucun résultat.

  • Pour plus de détails sur l'API, voir Set SMSAttributes in AWS CLI Command Reference.

Java
SDK pour Java 2.x
Note

Il y en a plus à ce sujet 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.

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); } } }
  • Pour plus de détails sur l'API, voir Set SMSAttributes in AWS SDK for Java 2.x API Reference.

JavaScript
SDK pour JavaScript (v3)
Note

Il y en a plus à ce sujet 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 le client dans un module séparé et exportez-le.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Importez le kit SDK et les modules client et appelez l’API.

import { SetSMSAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {"Transactional" | "Promotional"} defaultSmsType */ export const setSmsType = async (defaultSmsType = "Transactional") => { const response = await snsClient.send( new SetSMSAttributesCommand({ attributes: { // Promotional – (Default) Noncritical messages, such as marketing messages. // Transactional – Critical messages that support customer transactions, // such as one-time passcodes for multi-factor authentication. DefaultSMSType: defaultSmsType, }, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '1885b977-2d7e-535e-8214-e44be727e265', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };
PHP
Kit SDK pour PHP
Note

Il y en a plus à ce sujet 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.

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->SetSMSAttributes([ 'attributes' => [ 'DefaultSMSType' => 'Transactional', ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Configuration des préférences de messagerie SMS pour une livraison spécifique au pays

Vous pouvez gérer et contrôler votre trafic SMS en n'envoyant des messages qu'à des pays de destination spécifiques. Cela garantit que vos messages sont envoyés uniquement aux pays approuvés, évitant ainsi des frais de SMS indésirables. Les instructions suivantes utilisent la configuration Protect d'Amazon Pinpoint pour spécifier les pays que vous souhaitez autoriser ou bloquer.

  1. Ouvrez la AWS SMS console à l'adresse https://console.aws.amazon.com/sms-voice/.

  2. Dans le volet de navigation, sous Vue d'ensemble, dans la section Démarrage rapide, choisissez Créer une configuration de protection.

  3. Sous Détails de configuration de Protect, entrez un nom convivial pour votre configuration de protection (par exemple, Allow-Only-AU).

  4. Dans les règles nationales relatives aux SMS, cochez la case Région/Pays pour bloquer l'envoi de messages vers tous les pays pris en charge.

  5. Décochez les cases correspondant aux pays dans lesquels vous souhaitez envoyer des messages. Par exemple, pour autoriser les messages uniquement destinés à l'Australie, décochez la case Australie.

  6. Dans la section Protéger les associations de configuration, sous Type d'association, sélectionnez Compte par défaut. Cela garantira que la configuration AWS End User Messaging SMS Protect affecte tous les messages envoyés via Amazon SNS, Amazon Cognito et l'appel d'API Amazon Pinpoint. SendMessages

  7. Choisissez Créer une configuration de protection pour enregistrer vos paramètres.

    Le message de confirmation suivant s'affiche :

    Success Protect configuration protect-abc0123456789 has been created.
  8. Connectez-vous à la console Amazon SNS.

  9. Publiez un message dans l'un des pays bloqués, comme l'Inde.

    Le message ne sera pas délivré. Vous pouvez vérifier cela dans les journaux des échecs de livraison à l'aide de CloudWatch. Recherchez un groupe de journaux sns/region/AccountID/DirectPublishToPhoneNumber/Failurepour obtenir une réponse similaire à l'exemple suivant :

    { "notification": { "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217", "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“ }, "delivery": { "destination": "+91XXXXXXXXXX", "smsType": "Transactional", "providerResponse": "Cannot deliver message to the specified destination country", "dwellTimeMs": 85 }, "status": "FAILURE" }