Configuración de las preferencias de mensajería SMS en Amazon SNS - Amazon Simple Notification Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de las preferencias de mensajería SMS en Amazon SNS

Utilice Amazon SNS para especificar las preferencias de mensajería SMS. Por ejemplo, puede especificar si desea optimizar las entregas por costo o fiabilidad, el límite de gasto mensual, cómo se registran las entregas y si desea suscribirse a informes de uso de SMS diarios.

Estas preferencias se aplican en todos los mensajes SMS que envía desde su cuenta, pero puede anular algunas de ellas cuando envía un mensaje individual. Para obtener más información, consulte Publicación de mensajes SMS en un teléfono móvil mediante Amazon SNS.

Configuración de las preferencias de mensajería SMS mediante la AWS Management Console

  1. Inicie sesión en la consola de Amazon SNS.

  2. Elija una región que admita la mensajería SMS.

  3. En el panel de navegación, elija Móvil y después Mensajería de texto (SMS).

  4. En la página Mensajería de texto a través del móvil (SMS), en la sección Preferencias de mensajería de texto, elija Editar.

  5. En la página Editar preferencias de mensajería de texto, en la sección Detalles, haga lo siguiente:

    1. En Default message type (Tipo predeterminado de mensaje), seleccione uno de los siguientes:

      • Promocional: mensajes no importantes (por ejemplo, marketing). Amazon SNS optimiza la entrega de mensajes para conseguir el costo más bajo.

      • Transaccional (predeterminado): mensajes de importancia que admiten transacciones del cliente, como claves de acceso de un solo uso para la autenticación multifactor. Amazon SNS optimiza el envío de mensajes para conseguir la máxima reputación.

      Para obtener información sobre los precios de los mensajes promocionales y transaccionales, consulte la página relacionada con los precios globales de SMS.

    2. (Opcional) En Account spend limit (Límite de gasto de la cuenta), escriba el importe (en USD) que desea gastar en mensajes SMS cada mes natural.

      importante
      • De forma predeterminada, la cuota de gasto se establece en 1,00 USD. Si desea aumentar la cuota de servicio, envíe una solicitud.

      • Si el importe establecido en la consola supera la cuota del servicio, Amazon SNS deja de publicar mensajes SMS.

      • Como Amazon SNS es un sistema distribuido, deja de enviar mensajes SMS en cuestión de minutos en cuanto se ha excedido la cuota de gasto. Durante este intervalo, si sigue enviando mensajes SMS, podría incurrir en costos que superen la cuota.

  6. (Opcional) En Default sender ID (ID de remitente predeterminado), escriba un ID personalizado, como la marca de su negocio, que se muestra como el remitente en el dispositivo receptor.

    nota

    El soporte para el remitente IDs varía según el país.

  7. (Opcional) Ingrese el nombre del nombre del bucket de Amazon S3 para informes de uso.

    nota

    La política de buckets de Amazon S3 debe conceder acceso de escritura a Amazon SNS.

  8. Elija Guardar cambios.

Configuración de preferencias ()AWS SDKs

Para configurar sus preferencias de SMS mediante una de las AWS SDKs, utilice la acción de ese SDK que corresponda a la SetSMSAttributes solicitud en la API de Amazon SNS. Con esta solicitud, debe asignar valores a los diferentes atributos de SMS, como la cuota de gasto mensual o el tipo de SMS predeterminado (transaccional o promocional). Para ver todos los atributos de SMS, consulte Establecer SMSAttributes en la referencia de la API de Amazon Simple Notification Service.

En los siguientes ejemplos de código, se muestra cómo utilizar SetSMSAttributes.

C++
SDK para C++
nota

Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

Cómo utilizar Amazon SNS para establecer el atributo predeterminadoSMSType .

//! 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(); }
  • Para obtener más información sobre la API, consulte Establecer SMSAttributes en la referencia de AWS SDK for C++ la API.

CLI
AWS CLI

Establecimiento de los atributos de los mensajes SMS

En el siguiente ejemplo de set-sms-attributes, se establece el ID de remitente predeterminado para los mensajes SMS a MyName.

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

Este comando no genera ninguna salida.

  • Para obtener más información sobre la API, consulte Set SMSAttributes in AWS CLI Command Reference.

Java
SDK para Java 2.x
nota

Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de 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); } } }
  • Para obtener más información sobre la API, consulta Establecer SMSAttributes en la referencia AWS SDK for Java 2.x de la API.

JavaScript
SDK para JavaScript (v3)
nota

Hay más información. GitHub Busque el ejemplo completo y aprenda a configurarlo y ejecutarlo en el Repositorio de ejemplos de código de AWS.

Cree el cliente en un módulo separado y expórtelo.

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({});

Importe el SDK y los módulos cliente, y llame a la 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
SDK para PHP
nota

Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de 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()); }

Configuración de las preferencias de mensajería SMS para la entrega en un país específico

Puede administrar y controlar su tráfico de SMS enviando mensajes solo a países de destino específicos. Esto garantiza que sus mensajes se envíen solo a los países aprobados, lo que evita cargos por SMS no deseados. En las siguientes instrucciones se utiliza la configuración Proteger de Amazon Pinpoint para especificar los países que desea permitir o bloquear.

  1. Abra la AWS SMS consola en https://console.aws.amazon.com/sms-voice/.

  2. En el panel de navegación, en Información general, en la sección de Inicio rápido, elija Crear una configuración de protección.

  3. En los detalles de configuración de Protect, introduzca un nombre comercial para su configuración de protección (por ejemplo, Allow-Only-AU).

  4. En Reglas de país de SMS, activa la casilla de verificación Región/País para bloquear el envío de mensajes a todos los países admitidos.

  5. Desactive las casillas de los países a los que desea enviar mensajes. Por ejemplo, para permitir que los mensajes solo lleguen a Australia, desactive la casilla de Australia.

  6. En la sección Asociaciones de configuraciones de protección, en Tipo de asociación, seleccione Cuenta predeterminada. Esto garantizará que la configuración de AWS End User Messaging SMS Protect afecte a todos los mensajes enviados a través de Amazon SNS, Amazon Cognito y la llamada a la API Amazon Pinpoint. SendMessages

  7. Elija Crear configuración de protección para guardar la configuración.

    Se muestra el siguiente mensaje de confirmación.

    Success Protect configuration protect-abc0123456789 has been created.
  8. Inicie sesión en la consola de Amazon SNS.

  9. Publicación de un mensaje en uno de los países bloqueados, como India.

    El mensaje no se entregará. Puede verificarlo en los registros de errores de entrega mediante. CloudWatch Busque un grupo de registros sns/region/AccountID/DirectPublishToPhoneNumber/Failurepara obtener una respuesta similar a la del siguiente ejemplo:

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