Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de...

230
Amazon Simple Notification Service Guía del desarrollador Versión de API 2010-03-31

Transcript of Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de...

Page 1: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon SimpleNotification Service

Guía del desarrolladorVersión de API 2010-03-31

Page 2: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Amazon Simple Notification Service: Guía del desarrolladorCopyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Table of Contents¿Qué es Amazon SNS? ...................................................................................................................... 1

¿Es la primera vez que usa Amazon Simple Notification Service? ...................................................... 2Qué hacer después de la sección de introducción ........................................................................... 2Acceso a Amazon SNS ............................................................................................................... 2Situaciones habituales ................................................................................................................. 3

Distribución ramificada ........................................................................................................ 3Alertas de aplicación y de sistema ........................................................................................ 4Mensajería de correo electrónico de inserción y de texto .......................................................... 4Notificaciones de inserción en móvil ...................................................................................... 4Almacenamiento duradero de mensajes ................................................................................. 4

Introducción ....................................................................................................................................... 5Antes de empezar ...................................................................................................................... 5Creación de un tema .................................................................................................................. 5Suscripción a un tema ................................................................................................................ 6Publicación de un tema ............................................................................................................... 7

Creación de mensajes diferentes para cada protocolo .............................................................. 8Eliminación ................................................................................................................................ 9Mediante el SDK para Java ........................................................................................................ 10

Administración del acceso .................................................................................................................. 13Información general ................................................................................................................... 13

Cuándo se utiliza el control de acceso ................................................................................. 13Conceptos clave ............................................................................................................... 14Información general sobre la arquitectura ............................................................................. 16Uso del Access Policy Language ........................................................................................ 19Lógica de evaluación ......................................................................................................... 21Ejemplos de control de acceso de Amazon SNS ................................................................... 26

Información especial para políticas de Amazon SNS ...................................................................... 30Límites de las políticas de Amazon SNS .............................................................................. 30Acciones de políticas de Amazon SNS válidas ...................................................................... 30Claves de Amazon SNS .................................................................................................... 31

Control del acceso de usuarios a su cuenta de AWS ..................................................................... 31Utilización conjunta de políticas y roles de IAM y Amazon SNS ................................................ 31ARN de Amazon SNS ....................................................................................................... 34Acciones de Amazon SNS ................................................................................................. 35Claves de Amazon SNS .................................................................................................... 35Ejemplos de políticas para Amazon SNS .............................................................................. 35Usar credenciales de seguridad temporales .......................................................................... 37

Inserción en móvil de Amazon SNS .................................................................................................... 38Información general ................................................................................................................... 38Requisitos previos ..................................................................................................................... 39Pasos generales de la inserción en móvil ..................................................................................... 40

Paso 1: Solicitar credenciales a las plataformas móviles ......................................................... 40Paso 2: Solicitar un token a las plataformas móviles .............................................................. 40Paso 3: Crear un objeto de aplicación de plataforma .............................................................. 41Paso 4: Crear un objeto de punto de enlace de plataforma ..................................................... 41Paso 5: Publicar un mensaje en el punto de enlace móvil ....................................................... 41

Introducción a ADM .................................................................................................................. 42Requisitos previos de ADM ................................................................................................ 42Paso 1: Crear una aplicación de Kindle Fire con el servicio ADM habilitado ................................ 42Paso 2: Obtener el ID y la clave secreta de cliente ................................................................ 43Paso 3: Obtener una clave de API ...................................................................................... 43Paso 4: Obtener un ID de registro ....................................................................................... 44Paso 5: Enviar un mensaje a una aplicación de Kindle Fire mediante ADM y Amazon SNS ........... 44

Introducción a APNS ................................................................................................................. 46

Versión de API 2010-03-31iii

Page 4: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Requisitos previos de APNS ............................................................................................... 47Paso 1: Crear una aplicación de iOS ................................................................................... 47Paso 2: Obtener un certificado SSL de APNS ....................................................................... 47Paso 3: Obtener la clave privada de la aplicación .................................................................. 48Paso 4: Verificar el certificado y la clave privada de la aplicación ............................................. 48Paso 5: Obtener un token de dispositivo .............................................................................. 48Pasos siguientes ............................................................................................................... 49Envío de un mensaje a una aplicación de iOS ...................................................................... 49Envío de un mensaje a una aplicación VoIP ......................................................................... 51Envío de un mensaje a una aplicación de Mac OS X ............................................................. 52

Introducción a Baidu ................................................................................................................. 52Requisitos previos de Baidu ............................................................................................... 53Paso 1: Crear una cuenta de Baidu ..................................................................................... 53Paso 2: Registrarse como desarrollador de Baidu .................................................................. 55Paso 3: Crear un proyecto de inserción en la nube de Baidu ................................................... 58Paso 4: Descargar e instalar la aplicación de demostración Android .......................................... 61Paso 5: Obtener un ID de usuario y un ID de canal ............................................................... 65Paso 6: Enviar un mensaje de notificación de inserción a un punto de enlace móvil medianteAmazon SNS y Baidu ........................................................................................................ 65

Introducción a GCM .................................................................................................................. 69Requisitos previos de GCM ................................................................................................ 69Paso 1: Crear un proyecto de API de Google y habilitar el servicio GCM ................................... 70Paso 2: Obtener la clave API de servidor ............................................................................. 70Paso 3: Obtener un ID de registro de GCM .......................................................................... 70Paso 4: Enviar un mensaje a un punto de enlace móvil mediante GCM ..................................... 72

Introducción a MPNS ................................................................................................................ 74Requisitos previos de MPNS .............................................................................................. 74Paso 1: Configurar su aplicación Windows Phone para recibir mensajes de notificación deinserción .......................................................................................................................... 75Paso 2: Obtener un URI de notificación de inserción de MPNS ................................................ 75Paso 3: Crear una cuenta de desarrollador de Windows ......................................................... 75Paso 4: Cargar el certificado TLS ........................................................................................ 75Paso 5: Enviar un mensaje de notificación de inserción a una aplicación de Windows Phonemediante MPNS y Amazon SNS ......................................................................................... 75

Introducción a WNS .................................................................................................................. 77Requisitos previos de WNS ................................................................................................ 78Paso 1: Configurar su aplicación para recibir mensajes de notificación de inserción ..................... 78Paso 2: Obtener un URI de notificación de inserción de WNS .................................................. 78Paso 3: Obtener un identificador de seguridad del paquete de WNS ......................................... 78Paso 4: Obtener una clave secreta de WNS ......................................................................... 78Paso 5: Enviar un mensaje de notificación de inserción a una aplicación mediante Amazon SNSy WNS ............................................................................................................................ 79

Uso de la inserción en móvil de Amazon SNS .............................................................................. 80Registro de su aplicación móvil en AWS .............................................................................. 80Añadir tokens de dispositivo o ID de registro ........................................................................ 82Creación de un punto de enlace de plataforma y administración de tokens de dispositivos ............ 85Envío de un mensaje directo a un dispositivo móvil ................................................................ 90Envío de mensajes a dispositivos móviles suscritos a un tema ................................................. 90Envío de cargas específicas de plataforma personalizadas a dispositivos móviles ........................ 91

Atributos de aplicación para el estado de entrega de los mensajes ................................................... 93Configuración de los atributos del estado de entrega del mensaje con la Consola deadministración de AWS ...................................................................................................... 93Ejemplos de logs de CloudWatch de estado de entrega de mensajes de Amazon SNS ................. 94Configuración de atributos de estado de entrega de mensajes con los SDK de AWS .................... 94Códigos de respuesta de la plataforma ................................................................................ 95

Notificaciones de evento de aplicación ......................................................................................... 95Eventos de aplicación disponibles ....................................................................................... 96

Versión de API 2010-03-31iv

Page 5: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Envío de notificaciones de eventos de aplicaciones ................................................................ 96TTL de Amazon SNS ................................................................................................................ 98

Atributos del mensaje TTL para los servicios de notificación de inserción ................................... 98Orden de prioridad al determinar el TTL ............................................................................... 99Especificación del TTL con la Consola de administración de AWS ............................................ 99Especificación del TTL con los SDK de AWS ........................................................................ 99

API de inserción en móvil de Amazon SNS ................................................................................. 100Errores de API ........................................................................................................................ 101

Envío de mensajes a colas de Amazon SQS ...................................................................................... 109Paso 1. Obtener el ARN de la cola y el tema. ............................................................................. 110Paso 2. Dar permiso al tema de Amazon SNS para enviar mensajes a la cola de Amazon SQS ........... 110Paso 3. Suscribir la cola al tema de Amazon SNS ....................................................................... 111Paso 4. Dar a los usuarios permisos para las acciones adecuadas del tema y la cola ......................... 112

Añadir una política a un usuario o un grupo de IAM ............................................................. 112Añadir una política a un tema o una cola ............................................................................ 113

Paso 5. Probar ....................................................................................................................... 114Envío de mensajes a una cola de otra cuenta ............................................................................. 115

El propietario de la cola crea la suscripción ........................................................................ 115Un usuario que no es propietario de la cola crea una suscripción ........................................... 116

Uso de una plantilla de AWS CloudFormation para crear un tema que envíe mensajes a colas deAmazon SQS ......................................................................................................................... 118

Uso de una plantilla de AWS CloudFormation para configurar temas y colas en una cuenta deAWS ............................................................................................................................. 118

Envío de mensajes SMS .................................................................................................................. 123Configuración de las preferencias .............................................................................................. 123

Configuración de las preferencias (consola) ........................................................................ 124Configuración de las preferencias (SDK de AWS) ................................................................ 125

Envío de un mensaje ............................................................................................................... 126Envío de un mensaje (consola) ......................................................................................... 127Envío de un mensaje (SDK de AWS) ................................................................................. 127

Envío de un mensaje a varios números de teléfono ...................................................................... 129Envío de un mensaje a un tema (consola) .......................................................................... 129Envío de un mensaje a un tema (SDK de AWS) .................................................................. 130

Monitorización de la actividad de SMS ....................................................................................... 133Visualización de estadísticas de entrega ............................................................................. 133Visualización de métricas y logs de CloudWatch .................................................................. 134Visualización de informes de uso ...................................................................................... 136

Administración de suscripciones ................................................................................................ 138Desactivación de la recepción de mensajes SMS ................................................................. 138Administración de números de teléfono y suscripciones (consola) ........................................... 139Administración de números de teléfono y suscripciones (SDK de AWS) ................................... 140

Reserva de un código corto ...................................................................................................... 141Regiones y países admitidos .................................................................................................... 142

Envío de mensajes a puntos de enlace HTTP/HTTPS .......................................................................... 151Paso 1: Asegúrese de que el punto de enlace está listo para procesar mensajes de Amazon SNS ........ 152Paso 2: Suscriba el punto de enlace HTTP/HTTPS al tema de Amazon SNS .................................... 155Pase 3: Confirme la suscripción ................................................................................................ 155Paso 4: Defina la política de reintentos de entrega para la suscripción (opcional) ............................... 156Paso 5: Conceda a los usuarios permisos para publicar en el tema (opcional) ................................... 156Paso 6: Envíe mensajes al punto de enlace HTTP/HTTPS ............................................................ 157Configuración de las políticas de reintento de Amazon SNS para puntos de enlace HTTP/HTTPS ......... 158

Aplicación de políticas de entrega a temas y suscripciones .................................................... 160Configuración de la tasa de recepción máxima .................................................................... 161Fase de reintento inmediato ............................................................................................. 162Fase previa a la interrupción ............................................................................................. 162Fase de interrupción ........................................................................................................ 163Fase posterior a la interrupción ......................................................................................... 164

Versión de API 2010-03-31v

Page 6: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Entidades de certificación para puntos de enlace HTTPS .............................................................. 164Verificación de las firmas de mensajes ....................................................................................... 172Código de ejemplo para un servlet Java de un punto de enlace ..................................................... 174

Invocación de funciones Lambda ....................................................................................................... 178Requisitos previos ................................................................................................................... 178Configuración de Amazon SNS con puntos de enlace Lambda con la Consola de administración deAWS ..................................................................................................................................... 178

Uso de los atributos de tema de Amazon SNS para el estado de entrega del mensaje ............................... 180Configuración de los atributos del estado de entrega del mensaje con la Consola de administración deAWS ..................................................................................................................................... 180Configuración de los atributos del estado de entrega del mensaje para los temas suscritos a puntos deenlace de Amazon SNS con los SDK de AWS ............................................................................ 181

Atributos del tema ........................................................................................................... 181Ejemplo de Java para la configuración de atributos de tema .................................................. 182

Uso de atributos de mensajes ........................................................................................................... 183Elementos y validación de los atributos de mensajes .................................................................... 183Tipos de datos ........................................................................................................................ 184Atributos de mensaje reservados para notificaciones push en móviles ............................................. 184Aplicación de atributos de mensajes .......................................................................................... 185

Aplicación de atributos de mensajes con la consola ............................................................. 185Aplicación de atributos de mensajes con la AWS CLI ........................................................... 186Aplicación de atributos de mensajes con AWS SDK for Java ................................................. 186Aplicación de atributos de mensajes con la API de Amazon SNS ............................................ 188

Filtrado de mensajes ....................................................................................................................... 189Políticas de filtro de suscripciones ............................................................................................. 189

Mensaje de ejemplo con atributos ..................................................................................... 190Ejemplos de políticas de filtro ........................................................................................... 190.................................................................................................................................... 191

Coincidencia de valor de cadena ....................................................................................... 191Coincidencia de valor numérico ......................................................................................... 192Lógica AND/OR .............................................................................................................. 192Restricciones .................................................................................................................. 191

Aplicación .............................................................................................................................. 193Aplicación de una política de filtro con la consola ................................................................. 194Aplicación de una política de filtro con la AWS CLI .............................................................. 194Aplicación de una política de filtro con AWS SDK for Java ..................................................... 195Aplicación de una política de filtro con la API de Amazon SNS ............................................... 198

Eliminación ............................................................................................................................. 198Eliminación de una política de filtro con la consola ............................................................... 198Eliminación de una política de filtro con la AWS CLI ............................................................. 198Eliminación de una política de filtro con AWS SDK for Java ................................................... 199Eliminación de una política de filtro con la API de Amazon SNS ............................................. 199

Monitorización de Amazon SNS con CloudWatch ................................................................................. 200Acceso a las métricas de CloudWatch para Amazon SNS ............................................................. 200Establecimiento de alarmas de CloudWatch para métricas de Amazon SNS ..................................... 201Métricas de Amazon SNS ........................................................................................................ 202Dimensiones de métricas de Amazon Simple Notification Service ................................................... 203

Registro de llamadas a la API de Amazon SNS mediante CloudTrail ....................................................... 205Información de Amazon SNS en CloudTrail ................................................................................. 205Descripción de las entradas de archivos log de Amazon SNS ........................................................ 206

Publicación desde una VPC ............................................................................................................. 209Antes de empezar ................................................................................................................... 209Creación de un punto de conexión ............................................................................................ 209Comprobación de la conexión ................................................................................................... 209

Apéndice: formatos de mensaje y JSON ............................................................................................. 211Encabezados de HTTP/HTTPS ................................................................................................. 211Formato JSON de confirmación de suscripción HTTP/HTTPS ........................................................ 212

Versión de API 2010-03-31vi

Page 7: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Formato JSON de notificaciones HTTP/HTTPS ............................................................................ 214Formato JSON de confirmación de cancelación de suscripción HTTP/HTTPS ................................... 215Formato JSON de política de entrega SetSubscriptionAttributes ..................................................... 217Formato JSON de política de entrega SetTopicAttributes ............................................................... 217

Apéndice: cargas de gran tamaño y entrega de mensajes sin procesar .................................................... 219Habilitación de la entrega de mensajes sin procesar con la Consola de administración de AWS ............ 219

Historial de revisión ......................................................................................................................... 221

Versión de API 2010-03-31vii

Page 8: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

¿Qué es Amazon Simple NotificationService?

Amazon Simple Notification Service (Amazon SNS) es un servicio web que coordina y administra laentrega o el envío de mensajes a los puntos de enlace o clientes suscritos. En Amazon SNS existendos tipos de clientes, editores y suscriptores, también conocidos como productores y consumidores. Loseditores se comunican de forma asíncrona con los suscriptores generando y enviando un mensaje aun tema, que es un punto de acceso lógico y un canal de comunicación. Los suscriptores (por ejemplo,servidores web, direcciones de correo electrónico, colas de Amazon SQS, funciones de AWS Lambda)consumen o reciben el mensaje o la notificación por medio de uno de los protocolos admitidos (es decir,Amazon SQS, HTTP/S, correo electrónico, SMS o Lambda) cuando están suscritos al tema.

Cuando utiliza Amazon SNS, usted (como propietario) crea un tema y controla el acceso a dicho temamediante políticas que determinan qué editores y suscriptores pueden comunicarse con él. Un editorenvía mensajes a temas que ha creado o a temas en los que tiene permiso para publicar. En lugar deincluir una dirección de destino específica en cada mensaje, un editor envía un mensaje al tema. AmazonSNS correlaciona el tema con una lista de suscriptores que se han suscrito al tema y envía el mensaje acada uno de esos suscriptores. Cada tema tiene un nombre exclusivo que identifica el punto de enlacede Amazon SNS para que los editores publiquen mensajes y los suscriptores se registren para recibirnotificaciones. Los suscriptores reciben todos los mensajes publicados en los temas en los que estánsuscritos y todos los suscriptores de un tema reciben los mismos mensajes.

Temas• ¿Es la primera vez que usa Amazon Simple Notification Service? (p. 2)• Qué hacer después de la sección de introducción (p. 2)• Acceso a Amazon SNS (p. 2)

Versión de API 2010-03-311

Page 9: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador¿Es la primera vez que usa Amazon

Simple Notification Service?

• Situaciones de Amazon SNS habituales (p. 3)

¿Es la primera vez que usa Amazon SimpleNotification Service?

Si es la primera vez que usa Amazon SNS, le recomendamos que empiece leyendo la sección Introduccióna Amazon Simple Notification Service (p. 5). En dicha sección se le guía por el proceso de creación,suscripción y publicación de mensajes en un tema, cancelación de suscripción a un tema y, por último,eliminación de un tema.

Qué hacer después de la sección de introducciónUna vez completada la sección introductoria, es muy probable que desee obtener más información acercade las operaciones de Amazon SNS. En las secciones siguientes se proporciona información detalladaacerca del trabajo con Amazon SNS:

• Administración del acceso a los temas de Amazon SNS (p. 13)

Puede controlar de forma precisa qué puntos de enlace tienen autorización para inscribirse a un tema,quién puede publicar en un tema y en qué condiciones. En esta sección se muestra cómo controlar elacceso mediante políticas de control de acceso.

• Monitorización de Amazon SNS con CloudWatch (p. 200)

Amazon SNS y CloudWatch están integrados, por lo que puede recopilar, ver y analizar métricas de todotema de Amazon SNS activo.

• Envío de mensajes Amazon SNS a colas de Amazon SQS (p. 109)

Puede utilizar Amazon SNS para enviar mensajes a una o varias colas de Amazon SQS.• Envío de mensajes SMS con Amazon SNS (p. 123)

Puede utilizar Amazon Simple Notification Service (Amazon SNS) para enviar notificaciones de SMS ateléfonos móviles y smartphones habilitados para recibir SMS.

• Envío de mensajes de Amazon SNS a puntos de enlace HTTP/HTTPS (p. 151)

Puede utilizar Amazon SNS para enviar mensajes de notificación a uno o varios puntos de enlace HTTPo HTTPS.

Acceso a Amazon SNSSi tiene una cuenta de AWS, puede obtener acceso a Amazon SNS en cualquiera de las siguientesformas.

Consola de administración de AWS

La Consola de administración de AWS proporciona una interfaz web en la que puede administrarsus recursos de computación, almacenamiento y otros recursos de la nube. Dentro de la Consola deadministración de AWS, los servicios individuales tienen su propia consola. Para abrir la consola deAmazon SNS, inicie sesión en https://console.aws.amazon.com/ y elija SNS en la página de inicio dela consola o utilice la dirección URL directa de la consola de SNS: https://console.aws.amazon.com/sns/. Para consultar un tutorial que le ayude a realizar tareas de SNS habituales en la consola, vaya aIntroducción a Amazon Simple Notification Service (p. 5).

Versión de API 2010-03-312

Page 10: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorSituaciones habituales

AWS Command Line Interface (CLI)

Ofrece comandos para un amplio conjunto de productos de AWS y es compatible con Windows, Macy Linux. Para comenzar, consulte AWS Command Line Interface Guía del usuario. Para obtener másinformación acerca de los comandos para Amazon SNS, consulte sns en la AWS CLI CommandReference.

Herramientas de AWS para Windows PowerShell

Ofrece comandos para un amplio conjunto de productos de AWS para los usuarios que utilizan scriptsen el entorno de PowerShell. Para comenzar, consulte la Guía del usuario de Herramientas de AWSpara Windows PowerShell. Para obtener más información acerca de los cmdlets para Amazon SNS,consulte Amazon Simple Notification Service en la Herramientas de AWS para PowerShell CmdletReference.

AWS SDK

AWS ofrece SDK (kits de desarrollo de software) que se componen de bibliotecas y código de muestrapara diversos lenguajes de programación y plataformas (Java, Python, Ruby, .NET, iOS, Android,etc.). Los SDK proporcionan una forma cómoda de crear acceso mediante programación a AmazonSNS y AWS. Por ejemplo, los SDK se encargan de tareas como firmar solicitudes criptográficamente,gestionar los errores y reintentar las solicitudes de forma automática. Para obtener información sobrelos SDK de AWS, incluido cómo descargarlos e instalarlos, consulte la página Herramientas paraAmazon Web Services.

API de consulta de Amazon SNS

Puede obtener acceso a Amazon SNS y AWS de manera programática mediante la API de consultade Amazon SNS, que le permite generar solicitudes directamente al servicio. Para obtener másinformación, consulte el manual Amazon Simple Notification Service API Reference.

Situaciones de Amazon SNS habitualesDistribución ramificadaLa situación de "distribución ramificada" se produce cuando un mensaje de Amazon SNS se envía a untema y se replica e inserta en varias colas de Amazon SQS, puntos de enlace HTTP o direcciones decorreo electrónico. De este modo se permite un procesamiento asíncrono paralelo. Por ejemplo, puededesarrollar una aplicación que envíe un mensaje de Amazon SNS a un tema cada vez que se realiceun pedido de un producto. Después las colas de Amazon SQS que están suscritas a este tema recibennotificaciones idénticas para el nuevo pedido. La instancia de servidor Amazon EC2 asociada a una delas colas puede controlar el procesamiento o la ejecución del pedido, mientras que la instancia del otroservidor se puede asociar a un almacén de datos para analizar todos los pedidos recibidos.

Otro modo de utilizar la "distribución ramificada" consiste en replicar los datos enviados a su entorno deproducción con su entorno de desarrollo. Si profundizamos en el ejemplo anterior, puede suscribir otra colaal mismo tema para los nuevos pedidos que entren. A continuación, si asocia esta nueva cola a su entorno

Versión de API 2010-03-313

Page 11: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAlertas de aplicación y de sistema

de desarrollo, puede seguir mejorando y probando su aplicación utilizando los datos recibidos desde suentorno de producción. Para obtener más información sobre el envío de mensajes de Amazon SNS acolas de Amazon SQS, consulte Envío de mensajes Amazon SNS a colas de Amazon SQS (p. 109).Para obtener más información sobre el envío de mensajes de Amazon SNS a puntos de enlace HTTP/S,consulte Envío de mensajes de Amazon SNS a puntos de enlace HTTP/HTTPS (p. 151).

Alertas de aplicación y de sistemaLas alertas de aplicación y de sistema son notificaciones que se activan mediante umbralespredeterminados y que se envían por SMS o por correo electrónico a usuarios especificados. Por ejemplo,dado que muchos servicios de AWS utilizan Amazon SNS, puede recibir una notificación inmediata cuandose produce un evento como un cambio específico de su grupo de AWS Auto Scaling.

Mensajería de correo electrónico de inserción y detextoLa mensajería de texto y de correo electrónico tiene dos maneras de transmitir mensajes a grupos opersonas mediante correo electrónico o SMS. Por ejemplo, puede utilizar Amazon SNS para insertartitulares de noticias específicos a los suscriptores por correo electrónico o SMS. Al recibir el correoelectrónico o el SMS, los lectores interesados pueden elegir entre obtener más información visitando unsitio web o lanzando una aplicación. Para obtener más información sobre el uso de Amazon SNS paraenviar notificaciones SMS, consulte Envío de mensajes SMS con Amazon SNS (p. 123).

Notificaciones de inserción en móvilLas notificaciones de inserción en móvil le permiten enviar mensajes directamente a aplicaciones móviles.Por ejemplo, puede utilizar Amazon SNS para enviar notificaciones a una aplicación, en las que indiqueque una actualización está disponible. El mensaje de notificación puede incluir un enlace para descargar einstalar la actualización. Para obtener más información sobre el uso de Amazon SNS para enviar mensajesde notificación directos puntos de enlace móviles, consulte Notificaciones de inserción en móvil de AmazonSNS (p. 38)

Almacenamiento duradero de mensajesAmazon SNS almacena de forma permanente todos los mensajes que recibe. Cuando Amazon SNS recibesu solicitud Publish, almacena varias copias de su mensaje en el disco. Antes de que Amazon SNS leconfirme que ha recibido su solicitud, almacena el mensaje en varias ubicaciones aisladas conocidascomo zonas de disponibilidad. El mensaje se guarda en las zonas de disponibilidad que estén dentro desu región de AWS, como Región EE.UU. Este (Norte de Virginia). Si se produjera un error en una zona dedisponibilidad (lo cual es poco probable), Amazon SNS seguirá estando operativo y sus mensajes seguiránestando disponibles de forma permanente.

Versión de API 2010-03-314

Page 12: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAntes de empezar

Introducción a Amazon SimpleNotification Service

Esta sección contiene información para que pueda entender conceptos de Amazon SNS y configurar yutilizar rápidamente las herramientas e interfaces disponibles para crear y publicar en los temas. Paracomenzar a utilizar los mensajes de notificación de inserción, consulte Notificaciones de inserción en móvilde Amazon SNS (p. 38).

Temas• Antes de empezar (p. 5)• Creación de un tema (p. 5)• Suscripción a un tema (p. 6)• Publicación de un tema (p. 7)• Eliminación (p. 9)• Uso de AWS SDK for Java con Amazon SNS (p. 10)

Antes de empezarPara usar Amazon SNS, necesita disponer de una cuenta de AWS. Si todavía no tiene una, ejecute elprocedimiento siguiente.

Para inscribirse en una cuenta de AWS

1. Abra https://aws.amazon.com/ y después elija Create an AWS Account.Note

Esto podría no estar disponible en el navegador si ha iniciado previamente sesión en laConsola de administración de AWS. En ese caso, elija Sign in to a different account ydespués Create a new AWS account.

2. Siga las instrucciones en línea.

Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e introducir unnúmero PIN con el teclado del teléfono.

Para comenzar a trabajar con Amazon SNS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. Haga clic en el botón Get Started.

Ahora debería encontrarse en la página de inicio de SNS.

Creación de un temaAhora que se ha inscrito en Amazon SNS, ya puede crear un tema. Un tema es un canal de comunicaciónpara enviar mensajes y suscribirse a notificaciones. Proporciona un punto de acceso para que los

Versión de API 2010-03-315

Page 13: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorSuscripción a un tema

publicadores y los suscriptores se comuniquen entre sí. En esta sección se crea un tema que tiene comonombre MyTopic.

Para crear un tema

1. En la consola de Amazon SNS haga clic en Create topic.

Aparecerá el cuadro de diálogo Create topic.2. En el cuadro Topic name escriba un nombre para el tema.3. Haga clic en Create topic.

El nuevo tema aparecerá en la página Topics.4. Seleccione el nuevo tema y después haga clic en el ARN del tema.

Aparecerá la página Topic Details.

5. Copie el ARN del tema de la tarea siguiente.

arn:aws:sns:us-west-2:111122223333:MyTopic

Suscripción a un temaPara recibir los mensajes publicados en un tema, tiene que suscribirse a un punto de enlace en ese tema.Un punto de enlace es una aplicación móvil, un servidor web, una dirección de correo electrónico o unacola de Amazon SQS que puede recibir mensajes de notificación de Amazon SNS. Una vez se suscriba aun punto de enlace en un tema y la suscripción se haya confirmado, el punto de enlace recibirá todos losmensajes publicados en el tema.

En esta sección suscribe un punto de enlace al tema que acaba de crear en la sección anterior. Puedeconfigurar la suscripción para enviar mensajes del tema a su cuenta de correo electrónico.

Para suscribirse a un tema

1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.2. Haga clic en Create subscription.

Versión de API 2010-03-316

Page 14: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPublicación de un tema

Aparecerá el cuadro de diálogo Create Subscription.3. En el campo Topic ARN, pegue el ARN del tema que ha creado en la tarea anterior; por ejemplo:

arn:aws:sns:us-west-2:111122223333:MyTopic.4. En el cuadro desplegable Protocol seleccione Email.5. En el cuadro Endpoint escriba una dirección de correo electrónico que pueda utilizar para recibir la

notificación.

Important

Usuarios de Entourage: Entourage suprime la dirección URL de confirmación. Escriba unadirección de correo electrónico a la que pueda obtener acceso en otra aplicación de correoelectrónico.

6. Haga clic en Create subscription.

7. Vaya a su aplicación de correo electrónico, abra el mensaje de notificaciones de AWS y haga clic en elenlace para confirmar la suscripción.

El navegador web muestra una respuesta de confirmación de Amazon SNS.

Publicación de un temaLos editores envían mensajes a temas. Una vez que haya publicado un mensaje nuevo, Amazon SNSintentará entregar dicho mensaje a todos los puntos de enlace que estén suscritos al tema. En estasección se publica un mensaje en la dirección de correo electrónico que ha definido en la tarea anterior.

Para publicar en un tema

1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

En el panel de navegación de la izquierda, haga clic en Topics y después seleccione el tema en el quedesea publicar.

Versión de API 2010-03-317

Page 15: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCreación de mensajes diferentes para cada protocolo

2. Haga clic en el botón Publish to topic.

Se abrirá la página Publish a Message.

3. En el cuadro Subject escriba la línea de asunto de su mensaje.4. En el cuadro Message escriba un breve mensaje.5. Haga clic en Publish Message.

Aparece un cuadro de diálogo de confirmación.

A partir de ahora puede utilizar su aplicación de correo electrónico para abrir el mensaje de notificacionesde AWS y leerlo.

Creación de mensajes diferentes para cada protocoloPuede utilizar el formato de mensajes para personalizar los mensajes que envía para cada protocolo. Porejemplo, una notificación que vaya a suscriptores de correo electrónico y SMS se puede adaptar para cadatipo de cliente. Los usuarios de SMS pueden recibir una versión abreviada del mensaje, mientras que losusuarios de correo electrónico pueden recibir una versión más larga y detallada.

Para publicar en un tema con formato de mensaje

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación de la izquierda haga clic en Topics y después seleccione un tema.

Versión de API 2010-03-318

Page 16: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEliminación

3. Haga clic en el botón Publish to topic.

Se abrirá la página Publish a message.4. Haga clic en el botón JSON Message Generator.5. En el cuadro Message escriba un breve mensaje.6. En este ejemplo, en Target Platforms, seleccione email y sms.7. Haga clic en el botón Generate JSON.

A partir de ahora puede modificar el texto del mensaje para que se adapte a cada tipo de cliente.

El mensaje SMS puede contener hasta 160 caracteres ASCII (o 70 caracteres Unicode). Si el mensajesupera esta longitud, Amazon SNS lo envía como varios mensajes, cada uno adaptado al límite decaracteres. Los mensajes no se dividen en mitad de una palabra, sino en el espacio entre palabras.

Los mensajes de correo electrónico puede tener un tamaño de hasta 256 KB.

En el ejemplo siguiente los mensajes se especifican para los protocolos predeterminado, de correoelectrónico y SMS.

{"default": "Message body text here.", "email": "Message body text here.", "sms": "Message body text here."}

8. Haga clic en Publish message.

Aparece un cuadro de diálogo de confirmación.

EliminaciónHa creado un tema, se ha suscrito a él y ha publicado un mensaje en el tema. Ahora, limpie su entornocancelando la suscripción al tema y después eliminándolo.

Para cancelar la suscripción a un tema

1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

En el panel de navegación izquierdo haga clic en Subscriptions.

Se abrirá la página Subscriptions.2. Seleccione su suscripción en la lista de suscripciones. Este será el único listado de la página, a menos

que haya creado más de una suscripción.3. Haga clic en la lista desplegable Other actions y, a continuación, haga clic en Delete subscription(s).

Aparecerá el cuadro de diálogo de confirmación Delete.4. Haga clic en Delete.

La suscripción se eliminará, a menos que sea una suscripción pendiente, lo que significa que todavía nose ha confirmado. No puede eliminar una suscripción pendiente, pero si sigue pendiente durante 3 días,Amazon SNS la eliminará automáticamente.

Para eliminar un tema

Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

Versión de API 2010-03-319

Page 17: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorMediante el SDK para Java

1. En el panel de navegación de la izquierda haga clic en Topics y después seleccione el tema quedesee eliminar.

2. Haga clic en la lista desplegable Actions y seleccione Delete topics.

Aparecerá el cuadro de diálogo de confirmación Delete.3. Haga clic en Delete.

Cuando se elimina un tema, también se eliminan todas las suscripciones a dicho tema.

Uso de AWS SDK for Java con Amazon SNSEl SDK para Java proporciona una clase denominada AmazonSNSClient que puede utilizar parainteractuar con Amazon SNS. Para obtener información acerca de cómo descargar AWS SDK for Java,vaya a AWS SDK for Java.

La clase AmazonSNSClient define métodos que coinciden con las acciones de la API de consulta deAmazon SNS. (Estas acciones se describen en la sección Amazon SNS API Reference). Cuando llamaa un método, debe crear un objeto de solicitud y un objeto de respuesta correspondientes. El objeto desolicitud incluye la información que debe transmitirse con la solicitud real. El objeto de respuesta incluye lainformación que devuelve Amazon SNS en respuesta a la solicitud.

Por ejemplo, la clase AmazonSNSClient proporciona el método createTopic para crear un tema en else pueden publicar notificaciones. Este método coincide con la acción de la API CreateTopic subyacente.Usted crea un objeto CreateTopicRequest para transmitir información con el método createTopic.

Las siguientes declaraciones de importación se utilizan con las muestras de Java proporcionadas.

import com.amazonaws.services.sns.AmazonSNSClient;import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider;import com.amazonaws.regions.Region;import com.amazonaws.regions.Regions;import com.amazonaws.services.sns.model.CreateTopicRequest;import com.amazonaws.services.sns.model.CreateTopicResult;import com.amazonaws.services.sns.model.SubscribeRequest;import com.amazonaws.services.sns.model.PublishRequest;import com.amazonaws.services.sns.model.PublishResult;import com.amazonaws.services.sns.model.DeleteTopicRequest;

El siguiente ejemplo muestra cómo crear un cliente de Amazon SNS nuevo, establecer el punto de enlacede Amazon SNS y crear un nuevo tema.

Note

En algunos de los ejemplos siguientes, el método getCachedResponseMetadata se utiliza paramostrar cómo recuperar de forma programada el ID de una solicitud de Amazon SNS ejecutadapreviamente de forma correcta. Normalmente, esta operación se realiza para depurar problemas yes útil cuando se solicita ayuda de Amazon Web Services.

Creación de un tema

//create a new SNS client and set endpointAmazonSNSClient snsClient = new AmazonSNSClient(new ClasspathPropertiesFileCredentialsProvider()); snsClient.setRegion(Region.getRegion(Regions.US_EAST_1));

//create a new SNS topicCreateTopicRequest createTopicRequest = new CreateTopicRequest("MyNewTopic");CreateTopicResult createTopicResult = snsClient.createTopic(createTopicRequest);

Versión de API 2010-03-3110

Page 18: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorMediante el SDK para Java

//print TopicArnSystem.out.println(createTopicResult);//get request id for CreateTopicRequest from SNS metadata System.out.println("CreateTopicRequest - " + snsClient.getCachedResponseMetadata(createTopicRequest));

Cuando se ejecuta este ejemplo se muestra lo siguiente en la ventana de salida de la consola de su IDE,como Eclipse:

{TopicArn: arn:aws:sns:us-east-1:123456789012:MyNewTopic}CreateTopicRequest - {AWS_REQUEST_ID=93f7fc90-f131-5ca3-ab18-b741fef918b5}

El TopicArn se asigna a una variable de cadena para usarlo en operaciones adicionales.

String topicArn = "arn:aws:sns:us-east-1:123456789012:MyNewTopic";

Los siguientes ejemplos muestran cómo suscribirse a un tema, publicar en él y eliminarlo.

Suscripción a un tema

//subscribe to an SNS topicSubscribeRequest subRequest = new SubscribeRequest(topicArn, "email", "[email protected]");snsClient.subscribe(subRequest);//get request id for SubscribeRequest from SNS metadataSystem.out.println("SubscribeRequest - " + snsClient.getCachedResponseMetadata(subRequest));System.out.println("Check your email and confirm subscription.");

Cuando ejecuta este ejemplo, se muestra lo siguiente en la ventana de salida de la consola de su IDE:

SubscribeRequest - {AWS_REQUEST_ID=9b7ff59a-f917-533a-a6bd-be4bf6df0acf}Check your email and confirm subscription.

Publicación de un tema

//publish to an SNS topicString msg = "My text published to SNS topic with email endpoint";PublishRequest publishRequest = new PublishRequest(topicArn, msg);PublishResult publishResult = snsClient.publish(publishRequest);//print MessageId of message published to SNS topicSystem.out.println("MessageId - " + publishResult.getMessageId());

Cuando ejecuta este ejemplo, se muestra lo siguiente en la ventana de salida de la consola de su IDE:

MessageId - 9b888f80-15f7-5c30-81a2-c4511a3f5229

Eliminación de un tema

//delete an SNS topicDeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(topicArn);snsClient.deleteTopic(deleteTopicRequest);//get request id for DeleteTopicRequest from SNS metadataSystem.out.println("DeleteTopicRequest - " + snsClient.getCachedResponseMetadata(deleteTopicRequest));

Cuando ejecuta este ejemplo, se muestra lo siguiente en la ventana de salida de la consola de su IDE:

Versión de API 2010-03-3111

Page 19: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorMediante el SDK para Java

DeleteTopicRequest - {AWS_REQUEST_ID=067a4980-4e93-5bfc-b88c-0251415bc852}

Versión de API 2010-03-3112

Page 20: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación general

Administración del acceso a lostemas de Amazon SNS

Temas• Información general (p. 13)• Información especial para políticas de Amazon SNS (p. 30)• Control del acceso de usuarios a su cuenta de AWS (p. 31)

Amazon SNS admite otros protocolos además del correo electrónico. Puede utilizar HTTP, HTTPS y lascolas de Amazon SQS. Puede controlar de forma precisa qué puntos de enlace tienen autorización parainscribirse a un tema, quién puede publicar en un tema y en qué condiciones. En este apéndice se muestracómo controlar el uso de las políticas de control de acceso.

La mayor parte de esta sección contiene conceptos básicos que necesita entender: cómo escribir unapolítica y la lógica que Amazon Web Services (AWS) aplica para evaluar las políticas y decidir si da alsolicitante acceso al recurso. Aunque la mayor parte de la información de esta sección no depende delservicio, existen algunos detalles específicos de Amazon SNS que necesita conocer. Para obtener másinformación, consulte Información especial para políticas de Amazon SNS (p. 30).

Información generalTemas

• Cuándo se utiliza el control de acceso (p. 13)• Conceptos clave (p. 14)• Información general sobre la arquitectura (p. 16)• Uso del Access Policy Language (p. 19)• Lógica de evaluación (p. 21)• Ejemplos de control de acceso de Amazon SNS (p. 26)

En esta sección se describen los conceptos básicos que necesita conocer para utilizar el access policylanguage para escribir políticas. También describe el proceso general de funcionamiento del control deacceso con el access policy language, así como el modo de evaluación de las políticas.

Cuándo se utiliza el control de accesoTiene una gran flexibilidad en cuanto al modo de conceder o denegar el acceso a un recurso. Sin embargo,los casos de uso típicos son bastante sencillos:

• Desea conceder a otra cuenta de AWS un determinado tipo de acción de tema (p. ej., Publish). Paraobtener más información, consulte Permiso de acceso a un tema para la cuenta de AWS (p. 26).

• Desea limitar las suscripciones a su tema únicamente al protocolo HTTPS. Para obtener másinformación, consulte Limitación de las suscripciones a HTTPS (p. 27).

• Desea permitir que Amazon SNS publique mensajes en su cola de Amazon SQS. Para obtener másinformación, consulte Publicación en una cola de Amazon SQS (p. 27).

Versión de API 2010-03-3113

Page 21: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConceptos clave

Conceptos claveEn las secciones siguientes se describen los conceptos que necesita comprender para utilizar el accesspolicy language. Se presentan en un orden lógico, con los primeros términos que necesita conocer en laparte superior de la lista.

PermisoUn permiso consiste en el concepto de permitir o desestimar algún tipo de acceso a un recurso concreto.Los permisos tienen básicamente esta forma: "A tiene/no tiene permiso para ejecutar B en C donde D seaplica". Por ejemplo, Jane (A) tiene permiso para publicar (B) en TopicA (C), siempre y cuando utilice elprotocolo HTTP (D). Cuando Jane publica en TopicA, el servicio comprueba si Jane tiene permiso y si lasolicitud cumple las condiciones establecidas en el permiso.

StatementUna instrucción es la descripción formal de un único permiso, escrita en access policy language. Unainstrucción se escribe siempre como parte de un contenedor más amplio conocido como política (consulteel siguiente concepto).

Auto ScalingUna política es un documento (escrito en access policy language) que actúa como contenedor de una ovarias instrucciones. Por ejemplo, una política puede tener dos declaraciones: una que afirme que Janepuede suscribirse mediante el protocolo de correo electrónico y otra que establezca que Bob no puedepublicar en TopicA. Tal y como se muestra en la figura siguiente, un escenario equivalente sería tener dospolíticas; una que indique que Jane puede suscribirse mediante el protocolo de correo electrónico y otraque establezca que Bob no puede publicar en TopicA.

EmisorEl emisor es la persona que escribe una política para conceder los permisos sobre un recurso. El emisor(por definición) siempre es el propietario del recurso. AWS no permite que los usuarios del servicio deAWS creen políticas para recursos que no sean de su propiedad. Si John es el propietario de los recursos,

Versión de API 2010-03-3114

Page 22: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConceptos clave

AWS autentica la identidad de John cuando este envía la política que ha escrito para conceder lospermisos para dicho recurso.

PrincipalEl principal es la persona o las personas que reciben el permiso en la política. El principal es A en ladeclaración “A tiene permiso para hacer B en C, donde D se aplica”. En una política puede configurar elprincipal en "anyone" (es decir, puede especificar un comodín para representar a todas las personas).Puede hacerlo, por ejemplo, si no desea restringir el acceso en función de la identidad real del solicitante,sino de alguna otra característica identificatoria, como la dirección IP del solicitante.

AcciónLa acción es la actividad para cuya ejecución se le da permiso al principal. La acción es B en ladeclaración “A tiene permiso para hacer B a C cuando D sea de aplicación”. Normalmente, la acción noes más que la operación de la solicitud a AWS. Por ejemplo, Jane envía una solicitud a Amazon SNS conAction=Subscribe. Puede especificar una o varias acciones en una política.

RecursoEl recurso es el objeto al que el principal solicita acceso. El recurso es C en la instrucción “A tiene permisopara hacer B en C, donde D se aplica”.

Condiciones y clavesLas condiciones consisten en cualquier restricción o detalle sobre el permiso. La condición es D en ladeclaración “A tiene permiso para hacer B a C cuando D sea de aplicación”. La parte de la política queespecifica las condiciones puede ser la más detallada y compleja de todas las partes. Las condicionestípicas están relacionadas con los siguientes elementos:

• Fecha y hora (por ejemplo, la solicitud debe llegar antes de un día determinado).• Dirección IP (por ejemplo, la dirección IP del solicitante debe formar parte de un determinado intervalo

de CIDR).

Una clave es la característica específica que es la base de la restricción del acceso. Por ejemplo, la fechay la hora de la solicitud.

Utiliza las condiciones y las claves conjuntamente para expresar la restricción. La forma más sencilla deentender cómo implementar una restricción es utilizando un ejemplo: si desea restringir un acceso antesdel 30 de mayo de 2010, utilice la condición denominada DateLessThan. Utilice la clave denominadaaws:CurrentTime y defínala con el valor 2010-05-30T00:00:00Z. AWS define las condiciones ylas claves que puede utilizar. El mismo servicio de AWS, (por ejemplo, Amazon SQS o Amazon SNS),podría también definir claves específicas del servicio. Para obtener más información, consulte Informaciónespecial para políticas de Amazon SNS (p. 30).

SolicitanteEl solicitante es la persona que envía una solicitud a un servicio de AWS y solicita acceso a un recursoconcreto. El solicitante envía una solicitud a AWS que básicamente afirma: "¿Se me permitirá hacer B enC, donde D se aplica?"

EvaluaciónLaevaluación es el proceso que el servicio de AWS utiliza para determinar si una solicitud de entrada debedenegarse o permitirse en función de las políticas aplicables. Para obtener más información acerca de lalógica de evaluación, consulte Lógica de evaluación (p. 21).

Versión de API 2010-03-3115

Page 23: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación general sobre la arquitectura

EffectEl efecto es el resultado que desea que devuelva una declaración de política en tiempo de evaluación.Debe especificar este valor cuando escriba las instrucciones de una política, y los posibles valores sondeny y allow.

Por ejemplo, puede escribir una política que tenga una instrucción que deniegue todas las solicitudes queprocedan de la Antártida (efecto = denegar dado que la solicitud utiliza una dirección IP asignada a laAntártida). O bien puede escribir una política que tenga una instrucción que permita todas las solicitudesque no procedan de la Antártida (efecto = permitir, dado que la solicitud no proviene de la Antártida).Aunque parece que las dos instrucciones hagan lo mismo, en la lógica de access policy language, sondiferentes. Para obtener más información, consulte Lógica de evaluación (p. 21).

Aunque solo pueda especificar dos valores para el efecto (allow [permitir] o deny [denegar]), puedenobtenerse tres resultados diferentes en el momento de la evaluación de la política: denegaciónpredeterminada, permitir o denegación explícita. Para obtener más información, consulte los conceptossiguientes y Lógica de evaluación (p. 21).

Denegación predeterminadaUna denegación predeterminada es el resultado predeterminado de una política a falta de un permiso o deuna denegación explícita.

AllowUn permiso es el resultado de una declaración que tenga effect=allow, suponiendo que se cumplan todaslas condiciones indicadas. Ejemplo: permitir las solicitudes si se reciben antes de las 13:00 horas del 30 deabril de 2010. Un permiso anula todas las denegaciones predeterminadas, aunque nunca una denegaciónexplícita.

Denegación explícitaUna denegación explícita es el resultado de una declaración que tenga effect=deny, suponiendo quese cumplan todas las condiciones indicadas. Ejemplo: denegar todas las solicitudes si proceden de laAntártida. Cualquier solicitud que proceda de la Antártida siempre se denegará independientemente de loque cualquier otra política pueda permitir.

Información general sobre la arquitecturaEn la figura y la tabla siguientes se describen los componentes principales que interactúan paraproporcionar control sobre el acceso a los recursos.

Versión de API 2010-03-3116

Page 24: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación general sobre la arquitectura

1 Usted, el propietario del recurso.

2 Sus recursos (contenidos en el servicio de AWS, por ejemplo, colas de Amazon SQS).

3 Sus políticas.

Versión de API 2010-03-3117

Page 25: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación general sobre la arquitectura

Normalmente tiene una política por recurso, aunque puede tener varias. El mismo servicio deAWS proporciona una API que utiliza para cargar y administrar sus políticas.

4 Los solicitantes y sus solicitudes entrantes en el servicio de AWS.

5 El código de evaluación del access policy language.

Es el conjunto de código del servicio de AWS que evalúa las solicitudes entrantes en relacióncon las políticas aplicables y determina si se permite al solicitante obtener acceso al recurso.Para obtener más información acerca de cómo toma la decisión el servicio, consulte Lógica deevaluación (p. 21).

Versión de API 2010-03-3118

Page 26: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso del Access Policy Language

Uso del Access Policy LanguageEn la figura y la tabla siguientes se describe el proceso general de cómo funciona el control de acceso conel access policy language.

Proceso para utilizar el control de acceso con el Access Policy Language

1 Escribe una política para su recurso.

Por ejemplo, puede escribir una política para especificar permisos para sus temas de AmazonSNS.

2 Carga su política en AWS.

El mismo servicio de AWS proporciona una API que puede utilizar para cargar sus políticas. Porejemplo, utilice la acción SetTopicAttributes de Amazon SNS para cargar una política paraun tema de Amazon SNS concreto.

3 Alguien envía una solicitud para utilizar su recurso.

Por ejemplo, un usuario envía una solicitud a Amazon SNS para utilizar uno de sus temas.

4 El servicio de AWS determina qué políticas se aplican a la solicitud.

Por ejemplo, Amazon SNS busca en todas las políticas de Amazon SNS disponibles y determinacuáles son aplicables (en función de qué es el recurso, quién es el solicitante, etc.).

5 El servicio de AWS evalúa las políticas.

Versión de API 2010-03-3119

Page 27: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso del Access Policy Language

Por ejemplo, Amazon SNS evalúa las políticas y determina si se permite al solicitante utilizar sutema o no. Para obtener más información acerca de la lógica de decisión, consulte Lógica deevaluación (p. 21).

6 El servicio de AWS deniega la solicitud o sigue procesándola.

Por ejemplo, según el resultado de la evaluación de la política, el servicio devuelve al solicitanteun error del tipo acceso denegado o continúa procesando la solicitud.

Temas relacionados

• Información general sobre la arquitectura (p. 16)

Versión de API 2010-03-3120

Page 28: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorLógica de evaluación

Lógica de evaluaciónEl objetivo en el momento de la evaluación es decidir si una determinada solicitud debe autorizarse odenegarse. La lógica de evaluación sigue varias reglas básicas:

• De forma predeterminada, todas las solicitudes para utilizar su recurso procedentes de cualquierpersona que no sea usted se deniegan

• Un permiso anula todas las denegaciones predeterminadas.• Una denegación explícita invalida cualquier permiso concedido• El orden en que se evalúan las políticas no es importante

El siguiente diagrama de flujo y el debate describen con más detalle cómo se toma la decisión.

Versión de API 2010-03-3121

Page 29: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorLógica de evaluación

Versión de API 2010-03-3122

Page 30: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorLógica de evaluación

1 La decisión comienza con una denegación predeterminada.

2 El código de aplicación evalúa todas las políticas aplicables a la solicitud (en función del recurso,el principal, la acción y las condiciones).

El orden en que el código de aplicación evalúa las políticas no es importante.

3 En todas estas políticas, el código de aplicación buscará una instrucción de denegación explícitaque se aplique a la solicitud.

Aunque solo detecte una, el código de cumplimiento devolverá una decisión de "denegación"y el proceso finalizará (es una denegación explícita; para obtener más información, consulteDenegación explícita (p. 16)).

4 Si no se encuentra ninguna denegación explicita, el código de cumplimiento buscará unainstrucción de "permiso" que se aplique a la solicitud.

Si encuentra alguna, el código de aplicación devolverá una decisión de "permitir" y el proceso sellevará a cabo (el servicio seguirá procesando la solicitud).

5 Si no se detecta ningún permiso, la decisión final será "denegar" (dado que no había ningunadenegación explícita ni ningún permiso se trata de una denegación predeterminada). Paraobtener más información, consulte Denegación predeterminada (p. 16).

Interacción entre denegaciones explícitas y predeterminadasEn una denegación predeterminada se deniega una política si esta no se aplica directamente a lasolicitud. Por ejemplo, si un usuario solicita utilizar Amazon SNS, pero la política sobre el tema no serefiere a la cuenta de AWS del usuario en absoluto, dicha política dará como resultado una denegaciónpredeterminada.

También se deniega una política en una denegación predeterminada si no se cumple una condición deuna instrucción. Si se cumplen todas las condiciones de la instrucción, la política dará como resultado unpermiso o una denegación explícita, en función del valor del elemento Effect en la política. Las políticasno especifican qué es lo que se debe hacer si no se cumple una condición, por lo que el resultadopredeterminado en ese caso es una denegación predeterminada.

Por ejemplo, supongamos que desea evitar las solicitudes que procedan de la Antártida. Puede escribiruna política (denominada Policy A1) que permita una solicitud solo si no procede de la Antártida. Elsiguiente diagrama ilustra esta política.

Versión de API 2010-03-3123

Page 31: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorLógica de evaluación

Si alguien envía una solicitud desde los Estados Unidos, dicha condición se cumple (la solicitud no procedede la Antártida). Por lo tanto, la solicitud se permite. Pero, si alguien envía una solicitud desde la Antártida,la condición no se cumple y, por lo tanto, la política genera una denegación predeterminada.

Puede convertir el resultado en una denegación explícita reescribiendo la política (denominada PolicyA2) como se indica en el siguiente diagrama. Aquí la política deniega de forma explícita una solicitud siprocede de la Antártida.

Si alguien envía una solicitud desde la Antártida, la condición se cumple y, por lo tanto, el resultado de lapolítica es una denegación explícita.

La diferencia entre una denegación predeterminada y una denegación explícita es importante, ya que unadenegación predeterminada se puede anular con un permiso, mientras que una denegación explícita, no.Por ejemplo, supongamos que hay otra política que permite solicitudes si estas se reciben antes del 1 dejunio de 2010. ¿Cómo afecta esta política al resultado general cuando se asocia a la política que restringeel acceso desde la Antártida? Vamos a comparar el resultado general cuando se asocia la política basadaen la fecha (denominada Policy B) a las políticas anteriores A1 y A2. En el escenario 1 se asocia Policy A1a Policy B y, en el escenario 2, se asocia Policy A2 a Policy B. La figura y la discusión siguientes muestranel resultado que se obtiene cuando llega una solicitud procedente de la Antártida el 1 de junio de 2010.

Versión de API 2010-03-3124

Page 32: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorLógica de evaluación

Versión de API 2010-03-3125

Page 33: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplos de control de acceso de Amazon SNS

En el escenario 1, Policy A1 devuelve una denegación predeterminada, tal y como se ha descritoanteriormente en esta sección. Policy B devuelve un permiso, ya que la política (por definición) permite lassolicitudes que entran el 1 de junio de 2010. El permiso de la Policy B anula la denegación predeterminadade la Policy A1 y, por dicho motivo, la solicitud se permite.

En el escenario 2, la Policy B2 devuelve una denegación explícita, tal y como se ha descrito anteriormenteen esta sección. De nuevo, la Policy B devuelve un permiso. La denegación explícita de Policy A2 anula elpermiso de Policy B y, por dicho motivo, la solicitud se deniega.

Ejemplos de control de acceso de Amazon SNSTemas

• Permiso de acceso a un tema para la cuenta de AWS (p. 26)• Limitación de las suscripciones a HTTPS (p. 27)• Publicación en una cola de Amazon SQS (p. 27)• Autorización de publicación en un tema para un recurso de AWS (p. 28)• Autorización de publicación en un tema para un bucket de Amazon S3 (p. 28)

En esta sección se dan algunos ejemplos de casos de uso habituales de control de acceso.

Permiso de acceso a un tema para la cuenta de AWSSupongamos que tiene un tema en el sistema Amazon SNS. En el caso más sencillo desea permitir queuna o varias cuentas de AWS tengan acceso a una acción de tema específica (por ejemplo, Publish).

Para ello, utilice la acción de API de Amazon SNS AddPermission. Toma un tema, una lista de ID decuentas de AWS, una lista de acciones y una etiqueta, y crea automáticamente una nueva declaraciónen la política de control de acceso del tema. En este caso no escribe una política usted mismo, ya queAmazon SNS genera automáticamente la nueva declaración de política. Puede eliminar la declaración mástarde, llamando a RemovePermission con su etiqueta.

Por ejemplo, si ha llamado a AddPermission en el tema arn:aws:sns:us-east-1:444455556666:MyTopic,con el ID de cuenta de AWS 1111-2222-3333, la acción Publish y la etiqueta give-1234-publish,Amazon SNS podría generar e insertar la siguiente declaración de política de control de acceso:

{ "Version":"2012-10-17", "Id":"AWSAccountTopicAccess", "Statement" :[ { "Sid":"give-1234-publish", "Effect":"Allow", "Principal" :{ "AWS":"111122223333" }, "Action":["sns:Publish"], "Resource":"arn:aws:sns:us-east-1:444455556666:MyTopic" } ]}

Una vez que se añada esta declaración, el usuario con la cuenta de AWS 1111-2222-3333 puede publicarmensajes en el tema.

Versión de API 2010-03-3126

Page 34: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplos de control de acceso de Amazon SNS

Limitación de las suscripciones a HTTPSEn este caso de uso desea permitir las solicitudes de suscripción a su tema solo mediante HTTPS, pormotivos de seguridad.

Debe saber cómo escribir su propia política para el tema porque la acción AddPermission de AmazonSNS no le permite especificar una restricción de protocolo al conceder a alguien acceso a su tema. En estecaso deberá escribir su propia política y luego utilizar la acción SetTopicAttributes para establecer elatributo Policy del tema en su nueva política.

El siguiente ejemplo de política completa da al ID de cuenta de AWS 1111-2222-3333 la capacidad parasuscribirse a notificaciones desde un tema.

{ "Version":"2012-10-17", "Id":"SomePolicyId", "Statement" :[ { "Sid":"Statement1", "Effect":"Allow", "Principal" :{ "AWS":"111122223333" }, "Action":["sns:Subscribe"], "Resource": "arn:aws:sns:us-east-1:444455556666:MyTopic", "Condition" :{ "StringEquals" :{ "sns:Protocol":"https" } } } ]}

Publicación en una cola de Amazon SQSEn este caso de uso desea publicar mensajes desde su tema en su cola de Amazon SQS. Al igual queAmazon SNS Amazon SQS utiliza el lenguaje de políticas de control de acceso de Amazon. Para permitirque Amazon SNS envíe mensajes, tendrá que utilizar la acción de Amazon SQS SetQueueAttributespara establecer una política en la cola.

De nuevo, deberá saber cómo escribir su propia política, ya que la acción AddPermission de AmazonSQS no crea declaraciones de política con las condiciones.

Tenga en cuenta que el ejemplo que se presenta a continuación es una política de Amazon SQS (quecontrola de acceso a su cola) y no una política Amazon SNS (que controla el acceso a su tema). Lasacciones son acciones de Amazon SQS y el recurso es el nombre de recurso de Amazon (ARN) de lacola. Puede determinar el ARN de la cola recuperando el atributo QueueArn de la cola con la acciónGetQueueAttributes.

{ "Version":"2012-10-17", "Id":"MyQueuePolicy", "Statement" :[ { "Sid":"Allow-SNS-SendMessage", "Effect":"Allow", "Principal" :"*", "Action":["sqs:SendMessage"], "Resource": "arn:aws:sqs:us-east-1:444455556666:MyQueue",

Versión de API 2010-03-3127

Page 35: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplos de control de acceso de Amazon SNS

"Condition" :{ "ArnEquals" :{ "aws:SourceArn":"arn:aws:sns:us-east-1:444455556666:MyTopic" } } } ]}

Esta política utiliza la condición aws:SourceArn para restringir el acceso a la cola en función del origendel mensaje que se envíe a esta. Puede utilizar este tipo de política para permitir que Amazon SNS envíemensajes a la cola únicamente si los mensajes proceden de uno de sus propios temas. En este caso,debe especificar un tema concreto de sus temas, cuyo ARN sea arn: aws: sns: us-east-1: 444455556666:MyTopic.

La política anterior es un ejemplo de la política de Amazon SQS que puede escribir y añadir a una colaespecífica. Podría conceder acceso a Amazon SNS y otros productos de AWS. Amazon SNS ofrece unapolítica predeterminada para todos los temas que recién creados. La política predeterminadas ofrece atodos los demás productos de AWS acceso a su tema. Esta política predeterminada utiliza una condiciónaws:SourceArn para garantizar que los productos de AWS obtengan acceso a su tema solo en nombrede los recursos de AWS de su propiedad.

Autorización de publicación en un tema para un recurso de AWSEn este caso desea configurar la política de un tema para que el recurso de otra cuenta de AWS (porejemplo, un bucket de Amazon S3, una instancia Amazon EC2 o una cola de Amazon SQS) pueda publicaren su tema. En este ejemplo se presupone que ha escrito su propia política y luego ha utilizado la acciónSetTopicAttributes para establecer el atributo Policy del tema en su nueva política.

En la declaración del siguiente ejemplo el propietario del tema de estas políticas es 1111-2222-3333y el propietario del recurso de AWS es 4444-5555-6666. El ejemplo da al ID de cuenta de AWS4444-5555-6666 la capacidad para publicar en My-Topic desde cualquier recurso de AWS que seapropiedad de la cuenta.

{ "Version":"2012-10-17", "Id":"MyAWSPolicy", "Statement" :[ { "Sid":"My-statement-id", "Effect":"Allow", "Principal" :"*", "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:111122223333:My-Topic", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"444455556666" } } } ]}

Autorización de publicación en un tema para un bucket deAmazon S3En este caso desea configurar la política de un tema para que el bucket de Amazon S3 de otra cuentade AWS pueda publicar en su tema. Para obtener más información sobre la publicación de notificacionesdesde Amazon S3, vaya a Setting Up Notifications of Bucket Events.

Versión de API 2010-03-3128

Page 36: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplos de control de acceso de Amazon SNS

En este ejemplo se presupone que ha escrito su propia política y luego ha utilizado la acciónSetTopicAttributes para establecer el atributo Policy del tema en su nueva política.

La siguiente declaración del ejemplo utiliza la condición ArnLike para asegurarse de que el ARN delrecurso que realiza la solicitud (el AWS:SourceARN) es un ARN de Amazon S3. Puede utilizar unacondición similar para restringir el permiso a un conjunto de buckets de Amazon S3 o incluso a un bucketespecífico. En este ejemplo, el propietario del tema es 1111-2222-3333 y el propietario de Amazon S3 es4444-5555-6666. El ejemplo establece que cualquier bucket de Amazon S3 propiedad de 4444-5555-6666tiene permiso para publicar en My-Topic.

{ "Version":"2012-10-17", "Id":"MyAWSPolicy", "Statement" :[ { "Sid":"My-statement-id", "Effect":"Allow", "Principal" :"*", "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:111122223333:My-Topic", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"444455556666" } , "ArnLike": {"AWS:SourceArn": "arn:aws:s3:*:*:*" } } } ]}

Versión de API 2010-03-3129

Page 37: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación especial para políticas de Amazon SNS

Información especial para políticas de Amazon SNSEn la lista siguiente se ofrece información específica sobre la implementación por parte de Amazon SNSdel control de acceso:

• Cada política debe cubrir únicamente un único tema (a la hora de escribir una política, no incluyainstrucciones que abarquen diferentes temas).

• Cada política debe tener un Id de política único.• Cada instrucción de una política debe tener un sid de declaración exclusivo.

Límites de las políticas de Amazon SNSEn la siguiente tabla se muestran los límites máximos para las informaciones de la política.

Nombre Límite máximo

Bytes 30 kb

Instrucciones 100

Entidades principales De 1 a 200 (0 no es válido).

Recurso 1 (0 no es válido. El valor debe corresponder al ARN deltema de la política).

Acciones de políticas de Amazon SNS válidasAmazon SNS es compatible con las acciones que se muestran en la siguiente tabla.

Acción Descripción

sns:AddPermission Da permiso para añadir permisos a la política del tema.

sns:DeleteTopic Da permiso para eliminar un tema.

sns:GetTopicAttributes Da permiso para recibir todos los atributos del tema.

sns:ListSubscriptionsByTopic Da permiso para recuperar todas las suscripciones a un determinadotema.

sns:Publish Da permiso para publicar en un tema o en un punto de enlace. Paraobtener más información, consulte Publish en la Amazon SimpleNotification Service API Reference.

sns:RemovePermission Da permiso para eliminar cualquier permiso de la política del tema.

sns:SetTopicAttributes Da permiso para establecer los atributos de un tema.

sns:Subscribe Da permiso para suscribirse a un tema.

Versión de API 2010-03-3130

Page 38: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorClaves de Amazon SNS

Claves de Amazon SNSAmazon SNS utiliza las siguientes claves específicas de servicio. Puede utilizarlas en políticas querestrinjan el acceso a solicitudes Subscribe.

• sns:Endpoint: la URL, la dirección de correo electrónico o el ARN de una solicitud Subscribe o unasuscripción confirmada anteriormente. Utilícela con las condiciones de la cadena (consulte Ejemplosde políticas para Amazon SNS (p. 35)) para restringir el acceso a puntos de enlace específicos (porejemplo, *@example.com).

• sns:Protocol: el valor protocol de una solicitud Subscribe o de una suscripción confirmadaanteriormente. Utilícela con las condiciones de la cadena (consulte Ejemplos de políticas para AmazonSNS (p. 35)) para restringir la publicación en protocolos de entrega (por ejemplo, https).

Important

Cuando utiliza una política para controlar el acceso por sns:Endpoint, debe ser consciente de quelos problemas de DNS podrían afectar posteriormente a la resolución de nombres del punto deenlace.

Control del acceso de usuarios a su cuenta de AWSTemas

• Utilización conjunta de políticas y roles de IAM y Amazon SNS (p. 31)• ARN de Amazon SNS (p. 34)• Acciones de Amazon SNS (p. 35)• Claves de Amazon SNS (p. 35)• Ejemplos de políticas para Amazon SNS (p. 35)• Usar credenciales de seguridad temporales (p. 37)

Amazon Simple Notification Service está integrado en AWS Identity and Access Management (IAM) paraque pueda especificar qué acciones de Amazon SNS puede realizar un usuario de su cuenta de AWS conrecursos de Amazon SNS. Puede especificar un tema determinado de la política. Por ejemplo, puede usarvariables cuando crea una política de IAM a fin de que determinados usuarios de su organización tenganpermiso para utilizar la acción Publish en temas específicos de su cuenta de AWS. Para obtener másinformación, consulte Policy Variables en la guía Using IAM.

Important

El uso de Amazon SNS con IAM no cambia la forma de utilizar Amazon SNS. No hay cambiosen Amazon SNS ni en las nuevas acciones de Amazon SNS relacionados con los usuarios y elcontrol de acceso.

Para ver ejemplos de políticas que abarcan acciones y recursos de Amazon SNS, consulte Ejemplos depolíticas para Amazon SNS (p. 35).

Utilización conjunta de políticas y roles de IAM yAmazon SNSLas políticas de IAM se utilizan para restringir el acceso de los usuarios a acciones y temas de AmazonSNS. Una política de IAM puede restringir el acceso únicamente a los usuarios de su cuenta de AWS ydenegárselo a los usuarios de otras cuentas de AWS.

Versión de API 2010-03-3131

Page 39: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUtilización conjunta de políticasy roles de IAM y Amazon SNS

Puede utilizar una política de Amazon SNS con un tema determinado para restringir quién puede trabajaren ese tema (por ejemplo, quién puede publicar mensajes en el tema, quién puede suscribirse al tema,etc.). Las políticas de Amazon SNS pueden dar acceso a otras cuentas de AWS o a usuarios de su propiacuenta de AWS.

Para ofrecer a sus usuarios permisos sobre sus temas de Amazon SNS, puede utilizar políticas de IAM,políticas de Amazon SNS o ambas. La mayoría de las veces, puede conseguir los mismos resultados conambas. Por ejemplo, el siguiente diagrama muestra una política de IAM y una política de Amazon SNSequivalentes. La política de IAM permite la acción Subscribe de Amazon SNS para el tema llamadotopic_xyz de su cuenta de AWS. La política de IAM está asociada a los usuarios Bob y Susan (lo quesignifica que Bob y Susan tienen los permisos indicados en la política). La política de Amazon SNStambién ofrece a Bob y Susan permiso para obtener acceso a Subscribe en relación con topic_xyz.

Note

En el ejemplo anterior se muestran políticas sencillas sin condiciones. Puede especificar unacondición determinada en cualquiera de las dos políticas y obtener el mismo resultado.

Hay una diferencia entre las políticas de AWS IAM y Amazon SNS: el sistema de políticas de Amazon SNSle permite conceder permisos a otras cuentas de AWS, mientras que la política de IAM no.

Basándose en sus necesidades, decida el uso que quiere hacer de ambos sistemas para administrar lospermisos. Los siguientes ejemplos muestran cómo funcionan conjuntamente los dos sistemas de política.

Example 1

En este ejemplo, se aplica a Bob tanto una política de IAM como una política de Amazon SNS. La políticade IAM le concede permiso para Subscribe en cualquier tema de la cuenta de AWS, mientras que lapolítica Amazon SNS le concede permiso para utilizar Publish en un tema específico (topic_xyz). Elsiguiente diagrama ilustra este concepto.

Versión de API 2010-03-3132

Page 40: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUtilización conjunta de políticasy roles de IAM y Amazon SNS

Si Bob quiere enviar una solicitud de suscripción a cualquier tema de la cuenta de AWS, la política de IAMpermitirá la acción. Si Bob quiere enviar una solicitud para publicar un mensaje en topic_xyz, la política deAmazon SNS permitirá la acción.

Example 2

En este ejemplo, nos basamos en el ejemplo 1 (en el que se aplican dos políticas a Bob). Supongamosque Bob publica mensajes en topic_xyz que no debería haber publicado y usted decide quitarle porcompleto su capacidad para publicar en temas. Para ello, lo más fácil es añadir una política de IAM quele deniegue acceso a la acción Publish en todos los temas. Esta tercera política anula la política deAmazon SNS que anteriormente le daba permiso para publicar en topic_xyz, ya que una denegaciónexplícita siempre anula un permiso (para obtener más información acerca de la lógica de evaluación depolíticas, consulte Lógica de evaluación (p. 21)). El siguiente diagrama ilustra este concepto.

Versión de API 2010-03-3133

Page 41: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorARN de Amazon SNS

Para ver ejemplos de políticas que abarcan acciones y recursos de Amazon SNS, consulte Ejemplos depolíticas para Amazon SNS (p. 35). Para obtener más información sobre políticas de Amazon SNS,consulte la documentación técnica de Amazon SNS.

ARN de Amazon SNSPara Amazon SNS, los temas son el único tipo de recurso que puede especificar en una política. Acontinuación, mostramos el formato de nombre de recurso de Amazon (ARN) para los temas.

arn:aws:sns:region:account_ID:topic_name

Para obtener más información sobre los ARN, vaya a ARNs en la Guía del usuario de IAM.

Example

A continuación, mostramos el ARN de un tema llamado my_topic de la región us-east-1, que pertenece a lacuenta de AWS 123456789012:

arn:aws:sns:us-east-1:123456789012:my_topic

Example

Si tuviera un tema llamado my_topic en cada una de las diferentes regiones que Amazon SNS admite,podría especificar los temas con el siguiente ARN.

arn:aws:sns:*:123456789012:my_topic

Versión de API 2010-03-3134

Page 42: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAcciones de Amazon SNS

Puede utilizar los comodines * y ? en el nombre del tema. Por ejemplo, el ejemplo siguiente podría hacerreferencia a todos los temas creados por Bob a los que ha puesto el prefijo bob_.

arn:aws:sns:*:123456789012:bob_*

Para facilitarle su tarea, cuando crea un tema, Amazon SNS devuelve el ARN del tema en la respuesta.

Acciones de Amazon SNSEn una política de IAM, puede especificar cualquier acción que Amazon SNS ofrezca. Sin embargo, lasacciones ConfirmSubscription y Unsubscribe no requieren autenticación, lo que significa queincluso si especifica dichas acciones en una política, IAM no restringirá el acceso de los usuarios a estasacciones.

Cada acción que especifique en una política debe ir prefijada con la cadena en minúsculas sns:. Paraespecificar todas las acciones de Amazon SNS utilizaría, por ejemplo, sns:*. Para obtener una lista de lasacciones, vaya a la Amazon Simple Notification Service API Reference.

Claves de Amazon SNSAmazon SNS implementa las siguientes claves de política en todo AWS, además de algunas clavesespecíficas del servicio.

Para obtener una lista de las claves de contexto que admite cada servicio de AWS y una lista de las clavesde política de AWS, consulte Acciones, recursos y claves de condición para los servicios de AWS y Clavesde contexto de condición globales de AWS en la Guía del usuario de IAM.

Amazon SNS utiliza las siguientes claves específicas de servicio. Utilice estas claves en políticas querestringen el acceso a solicitudes Subscribe.

• sns:Endpoint: la URL, la dirección de correo electrónico o el ARN de una solicitud Subscribe o unasuscripción confirmada anteriormente. Utilícela con las condiciones de la cadena (consulte Ejemplosde políticas para Amazon SNS (p. 35)) para restringir el acceso a puntos de enlace específicos (porejemplo, *@yourcompany.com).

• sns:Protocol: el valor protocol de una solicitud Subscribe o de una suscripción confirmadaanteriormente. Utilícela con las condiciones de la cadena (consulte Ejemplos de políticas para AmazonSNS (p. 35)) para restringir la publicación en protocolos de entrega (por ejemplo, https).

Ejemplos de políticas para Amazon SNSEn esta sección se muestran varias políticas sencillas para controlar el acceso de los usuarios a AmazonSNS.

Note

En el futuro, Amazon SNS podría añadir nuevas acciones que deberán, lógicamente, incluirse enuna de las política siguientes, en función de los objetivos indicados en esta.

Example 1: Permitir a un grupo crear y administrar temas

En este ejemplo, creamos una política que da acceso a CreateTopic, ListTopics,SetTopicAttributes y DeleteTopic.

{

Versión de API 2010-03-3135

Page 43: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplos de políticas para Amazon SNS

"Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["sns:CreateTopic","sns:ListTopics","sns:SetTopicAttributes","sns:DeleteTopic"], "Resource":"*" } ]}

Example 2: Permitir que el grupo de TI publique mensajes en un tema determinado

En este ejemplo, creamos un grupo de TI y asignamos una política que da acceso a Publish en el temade interés específico.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":"sns:Publish", "Resource":"arn:aws:sns:*:123456789012:topic_xyz" } ]}

Example 3: Conceder a los usuarios de la cuenta de AWS capacidad para suscribirse a temas

En este ejemplo, creamos una política que da acceso a la acción Subscribe, con condiciones decoincidencia de la cadena para las claves de política sns:Protocol y sns:Endpoint.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["sns:Subscribe"], "Resource":"*", "Condition":{ "StringLike": { "SNS:Endpoint":"*@yourcompany.com" }, "StringEquals":{ "sns:Protocol":"email" } } } ]}

Example 4: Permitir a un socio publicar mensajes en un tema determinado

Puede utilizar una política de Amazon SNS o una política de IAM para permitir a un socio publicar en untema concreto. Si su socio tiene una cuenta de AWS, puede que sea más fácil utilizar una política deAmazon SNS. Sin embargo, cualquier usuario de la empresa del socio que posea las credenciales deseguridad de AWS puede publicar mensajes en el tema. En este ejemplo se presupone que quiere limitarel acceso a una determinada persona (o aplicación). Para ello debe tratar al socio como un usuario de supropia compañía y utilizar una política de IAM en vez de una política de Amazon SNS.

En este ejemplo, creamos un grupo denominado WidgetCo que representa a la compañía del socio;creamos un usuario para la persona (o la aplicación) específica en la compañía de la empresa quenecesita el acceso y, a continuación, incluimos el usuario en el grupo.

Versión de API 2010-03-3136

Page 44: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUsar credenciales de seguridad temporales

Después asocie una política que dé al grupo Publish acceso al tema específico denominadoWidgetPartnerTopic.

También queremos evitar que el grupo WidgetCo ejecute cualquier otra acción en los temas, por lo queañadimos una declaración que deniega permiso para ejecutar cualquier acción de Amazon SNS queno sea Publish en temas que no sean WidgetPartnerTopic. Este paso es necesario solo si existe unapolítica amplia en cualquier otra parte del sistema, que otorgue a los usuarios un acceso amplio a AmazonSNS.

{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":"sns:Publish", "Resource":"arn:aws:sns:*:123456789012:WidgetPartnerTopic" }, { "Effect":"Deny", "NotAction":"sns:Publish", "NotResource":"arn:aws:sns:*:123456789012:WidgetPartnerTopic" } ]}

Usar credenciales de seguridad temporalesAdemás de crear usuarios de IAM con sus propias credenciales de seguridad, IAM también le permiteotorgar credenciales de seguridad temporales a cualquier usuario, para que este obtenga acceso a susservicios y recursos de AWS. Puede administrar usuarios que tengan cuentas de AWS; dichos usuariosson usuarios de IAM. También puede administrar usuarios de su sistema que no tengan cuentas de AWS;dichos usuarios reciben el nombre de usuarios federados. Además, los "usuarios" pueden ser aplicacionesque se crean para obtener acceso a sus recursos de AWS.

Puede utilizar estas credenciales de seguridad temporales para realizar solicitudes a Amazon SNS. Lasbibliotecas de la API computan el valor de firma necesario con esas credenciales para autenticar susolicitud. Si envía solicitudes con credenciales vencidas, Amazon SNS deniega la solicitud.

Para obtener más información acerca de la compatibilidad de IAM con credenciales de seguridadtemporales, vaya a Granting Temporary Access to Your AWS Resources en Using IAM.

Example Uso de credenciales de seguridad temporales para autenticar una solicitud de AmazonSNS

En el siguiente ejemplo se muestra cómo obtener credenciales de seguridad temporales para autenticaruna solicitud de Amazon SNS.

http://sns.us-east-1.amazonaws.com/?Name=My-Topic&Action=CreateTopic&Signature=gfzIF53exFVdpSNb8AiwN3Lv%2FNYXh6S%2Br3yySK70oX4%3D&SignatureVersion=2&SignatureMethod=HmacSHA256&Timestamp=2010-03-31T12%3A00%3A00.000Z&SecurityToken=SecurityTokenValue&AWSAccessKeyId=Access Key ID provided by AWS Security Token Service

Versión de API 2010-03-3137

Page 45: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación general

Notificaciones de inserción en móvilde Amazon SNS

Con Amazon SNS, tiene la posibilidad de enviar directamente mensajes de notificación de inserción aaplicaciones que se encuentran en dispositivos móviles. Los mensajes de notificación enviados a un puntode enlace móvil pueden mostrarse en la aplicación móvil como mensajes de alerta, actualizaciones de latarjeta de identificación o incluso alertas de sonido.

Información generalLos mensajes de notificación de inserción se envían a dispositivos móviles y a escritorios utilizando uno delos siguientes servicios de notificación de inserción compatibles:

• Amazon Device Messaging (ADM)• Apple Push Notification Service (APNS) para iOS y Mac OS X• Baidu Cloud Push (Baidu)• Google Cloud Messaging for Android (GCM)• Microsoft Push Notification Service for Windows Phone (MPNS)• Windows Push Notification Services (WNS)

En la figura siguiente se da una visión general de cómo se utiliza Amazon SNS para enviar un mensaje denotificación de inserción directo a un punto de enlace móvil.

Los servicios de notificación de inserción como APNS y GCM mantienen una conexión con cada aplicacióny dispositivo móvil asociado registrado para utilizar su servicio. Cuando una aplicación y un dispositivomóvil se registran, el servicio de notificaciones de inserción devuelve un token de dispositivo. AmazonSNS utiliza el token de dispositivo para crear un punto de enlace móvil al que puede enviar mensajes denotificación de inserción directos. Para que Amazon SNS pueda comunicarse con los diferentes serviciosde notificaciones de inserción, debe enviar las credenciales de su servicio de notificaciones de inserción aAmazon SNS para que las use en su nombre. Para obtener más información, consulte Información de lospasos generales de la inserción en móvil de Amazon SNS (p. 40)

Además de enviar mensajes de notificación de inserción directos, también puede utilizar Amazon SNSpara enviar mensajes a puntos de enlace móviles suscritos a un tema. El concepto es el mismo que para

Versión de API 2010-03-3138

Page 46: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRequisitos previos

la suscripción de otros tipos de puntos de enlace, como Amazon SQS, HTTP/S, correo electrónico y SMS,a un tema, tal y como se describe en ¿Qué es Amazon Simple Notification Service? (p. 1). La diferenciaradica en que Amazon SNS se comunica mediante servicios de notificaciones de inserción para que lospuntos de enlace móviles suscritos reciban los mensajes de notificación de inserción enviados al tema. Enla figura siguiente se muestra un punto de enlace móvil como un suscriptor de un tema de Amazon SNS.El punto de enlace móvil se comunica mediante servicios de notificaciones de inserción, mientras que losdemás puntos de enlace no lo hacen.

Requisitos previosPara empezar a utilizar las notificaciones de inserción en móvil de Amazon SNS, necesita:

• Un conjunto de credenciales para conectarse a uno de los servicios de notificaciones de insercióncompatibles: ADM, APNS, Baidu, GCM, MPNS o WNS.

• Un token de dispositivo o ID de registro para la aplicación y el dispositivo móviles.• Amazon SNS configurado para enviar mensajes de notificación de inserción a los puntos de enlace

móviles.• Una aplicación móvil que esté registrada y configurada para utilizar uno de los servicios de notificación

de inserción compatibles.

Para registrar su aplicación a un servicio de notificaciones de inserción tiene que seguir varios pasos.Amazon SNS necesita parte de la información que proporciona al servicio de notificaciones de inserciónpara poder enviar mensajes de notificación de inserción al punto de enlace móvil. En general, necesitalas credenciales necesarias para establecer una conexión con el servicio de notificaciones de inserción,un token de dispositivo o ID de registro (que represente el dispositivo y la aplicación móviles) que hayarecibido del servicio de notificaciones de inserción y la aplicación móvil registrada en el servicio denotificaciones de inserción.

La forma exacta que las credenciales adoptan varía según la plataforma móvil, pero, en todos los casos,estas credenciales se deben enviar mientras se establece conexión con la plataforma. Se genera unconjunto de credenciales para cada aplicación móvil, que debe utilizarse para enviar un mensaje acualquier instancia de dicha aplicación.

Los nombres específicos variarán según el servicio de notificaciones de inserción que se utilice. Porejemplo, cuando utilice APNS como servicio de notificaciones de inserción, necesitará un token dedispositivo. O bien, cuando utilice GCM, el token de dispositivo equivalente se denomina ID de registro. El

Versión de API 2010-03-3139

Page 47: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPasos generales de la inserción en móvil

token de dispositivo o ID de registro es una cadena que el sistema operativo del dispositivo móvil envía ala aplicación. Sirve para identificar de forma exclusiva una instancia de una aplicación móvil que se ejecutaen un determinado dispositivo móvil y puede considerarse un identificador único de este par concreto deaplicación y dispositivo.

Amazon SNS almacena las credenciales (además de otros parámetros) como recurso de aplicación de unaplataforma. Los tokens de dispositivo (también aquí con algunos parámetros adicionales) se representancomo objetos denominados puntos de enlace de la plataforma. Cada punto de enlace de la plataformapertenece a una aplicación de plataforma específica y es posible comunicarse con cada uno de ellosusando las credenciales que se almacenan en su correspondiente aplicación de plataforma.

En las secciones siguientes se incluyen los requisitos previos de cada uno de los servicios denotificaciones de inserción compatibles. Una vez que haya obtenido la información sobre los requisitosprevios, puede enviar un mensaje de notificación de inserción a través de la Consola de administración deAWS o las API de inserción en móvil de Amazon SNS. Para obtener más información, consulte Informaciónde los pasos generales de la inserción en móvil de Amazon SNS (p. 40).

Información de los pasos generales de la inserciónen móvil de Amazon SNS

En esta sección se informa sobre los pasos generales que debe ejecutar para utilizar la inserciónen móvil de Amazon SNS. En primer lugar, en lo que se refiere a las plataformas móviles que deseeadmitir, debe cumplir los requisitos previos como, por ejemplo, tener las credenciales y el token dedispositivo obligatorios. Para obtener más información, consulte la sección Requisitos previos (p. 39)A continuación, utilice la información que ha obtenido de las plataformas móviles con Amazon SNS paraenviar un mensaje a un dispositivo móvil. Esta información debe ayudarle a comprender mejor los pasosque se siguen cuando se utiliza la inserción en móvil de Amazon SNS, tal y como se describe en Uso de lainserción en móvil de Amazon SNS (p. 80).

Paso 1: Solicitar credenciales a las plataformasmóvilesPara utilizar la inserción en móvil de Amazon SNS, primero debe solicitar las credenciales necesarias a lasplataformas móviles. Para obtener más información, consulte la sección de introducción de su plataformamás adelante en esta guía.

Paso 2: Solicitar un token a las plataformas móvilesSeguidamente, deberá utilizar las credenciales obtenidas para solicitar un token para su aplicación móvil yel dispositivo a las plataformas móviles. El token que reciba representa su aplicación móvil y el dispositivo.Para obtener más información, consulte la sección de introducción de su plataforma más adelante en estaguía.

Versión de API 2010-03-3140

Page 48: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3: Crear un objeto de aplicación de plataforma

Paso 3: Crear un objeto de aplicación de plataformaLas credenciales y el token se utilizan para crear un objeto de aplicación de plataforma(PlatformApplicationArn) a partir de Amazon SNS. Para obtener más información, consulte Creaciónde un punto de enlace de plataforma y administración de tokens de dispositivos (p. 85).

Paso 4: Crear un objeto de punto de enlace deplataformaEl valor PlatformApplicationArn se utiliza para crear un objeto de punto de enlace de plataforma(EndpointArn) a partir de Amazon SNS. Para obtener más información, consulte Creación de un puntode enlace de plataforma y administración de tokens de dispositivos (p. 85).

Paso 5: Publicar un mensaje en el punto de enlacemóvilEl valor EndpointArn se utiliza para publicar un mensaje en una aplicación de un dispositivo móvil. Paraobtener más información, consulte Envío de un mensaje directo a un dispositivo móvil (p. 90) y la APIPublish de la Amazon Simple Notification Service API Reference.

Versión de API 2010-03-3141

Page 49: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorIntroducción a ADM

Introducción a Amazon Device MessagingAmazon Device Messaging (ADM) es un servicio que le permite enviar mensajes de notificación deinserción a aplicaciones de Kindle Fire. En esta sección se describe cómo obtener los requisitos previos deADM y enviar un mensaje de notificación de inserción mediante Amazon SNS y ADM.

Temas• Requisitos previos de ADM (p. 42)• Paso 1: Crear una aplicación de Kindle Fire con el servicio ADM habilitado (p. 42)• Paso 2: Obtener el ID y la clave secreta de cliente (p. 43)• Paso 3: Obtener una clave de API (p. 43)• Paso 4: Obtener un ID de registro (p. 44)• Paso 5: Enviar un mensaje de notificación de inserción a una aplicación de Kindle Fire mediante ADM

y Amazon SNS (p. 44)

Requisitos previos de ADMPara enviar notificaciones de inserción a aplicaciones de Kindle Fire mediante Amazon SNS y ADM, debedisponer de lo siguiente:

• Aplicación de Kindle Fire con el servicio ADM habilitado• ID y clave secreta de cliente• Clave de API• ID de registro

Si ya cumple estos requisitos previos, puede enviar un mensaje de notificación de inserción a unaaplicación de Kindle Fire utilizando la consola de Amazon SNS o la API de Amazon SNS. Para obtenermás información sobre cómo usar la consola de Amazon SNS, consulte Uso de la inserción en móvil deAmazon SNS (p. 80). Para obtener más información acerca del uso de la API de Amazon SNS consultePaso 5: Enviar un mensaje de notificación de inserción a una aplicación de Kindle Fire mediante ADM yAmazon SNS (p. 44).

Paso 1: Crear una aplicación de Kindle Fire con elservicio ADM habilitadoPara enviar un mensaje de notificación de inserción a una aplicación de Kindle Fire, debe disponer deuna cuenta de desarrollador de Amazon, haber configurado el entorno de desarrollo, haber creado unaaplicación de Kindle Fire con ADM y haber habilitado y registrado la aplicación en ADM. Para obtener másinformación, consulte Integrating Your App with ADM.

Para crear una aplicación de Kindle Fire

1. Cree una cuenta de desarrollador de Amazon siguiendo las instrucciones indicadas en Create anaccount.

2. Configure su entorno de desarrollo para desarrollar aplicaciones móviles para tablets Kindle Fire. Paraobtener más información, consulte Setting Up Your Development Environment.

3. Cree una aplicación de Kindle Fire. Para obtener más información, consulte Creating Your First KindleFire App.

Versión de API 2010-03-3142

Page 50: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 2: Obtener el ID y la clave secreta de cliente

Note

Si aún no tiene una aplicación de Kindle Fire registrada en ADM, puede utilizar la aplicaciónde Kindle Fire de muestra proporcionada por AWS como plantilla para comenzar. Paraobtener más información, consulte Paso 4: Obtener un ID de registro (p. 44).

4. En el Amazon App Distribution Portal, haga clic en Apps and Services, en el nombre de su aplicaciónde Kindle Fire y en Device Messaging.

5. Compruebe que ADM esté habilitado para la aplicación. Si la aplicación no aparece en la lista delportal de distribución de aplicaciones de Amazon, añádala y habilite ADM.

Paso 2: Obtener el ID y la clave secreta de clienteADM utiliza un ID y una clave secreta de cliente para verificar la identidad de su servidor. Para obtenermás información, consulte Obtaining ADM Credentials.

Para obtener el ID y la clave secreta de cliente

1. En el Amazon App Distribution Portal, haga clic en Apps and Services, en el nombre de su aplicaciónde Kindle Fire y en Security Profile. Debería ver un perfil de seguridad asociado a su aplicación. Si noes así, haga clic en Security Perfiles para crear un perfil de seguridad nuevo.

2. Haga clic en View Security Profile. Apunte el ID y la clave secreta de cliente.

Paso 3: Obtener una clave de APIADM utiliza una clave de API para verificar la identidad de su aplicación.

Note

Es necesaria una clave de API para utilizar ADM con aplicaciones prelanzamiento o de prueba.Sin embargo, no es necesario con una versión o una versión de producción de su aplicacióncuando permite que Amazon firme su aplicación en su nombre.

Para obtener una clave de API

• Obtenga una clave de API siguiendo las instrucciones indicadas en Getting Your OAuth Credentialsand API Key.

Versión de API 2010-03-3143

Page 51: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Obtener un ID de registro

Paso 4: Obtener un ID de registroEn los siguientes pasos se muestra cómo utilizar la aplicación de Kindle Fire de muestra proporcionadapor AWS para obtener un ID de registro de ADM. Puede utilizar esta aplicación de Kindle Fire de muestracomo ejemplo para ayudarlo a comenzar a utilizar las notificaciones de inserción de Amazon SNS. Laaplicación de muestra requiere que usted haya incluido el archivo JAR de ADM amazon-device-messaging-1.0.1.jar en su entorno de desarrollo. Para obtener más información, consulte Setting UpADM.

Para obtener un ID de registro de ADM para su aplicación

1. Descargue y descomprima el archivo snsmobilepush.zip.2. Importe la carpeta KindleMobilePushApp a su IDE. En Eclipse, haga clic en File, Import, amplíe

la carpeta Android, haga clic en Existing Android Code Into Workspace y en Next, vaya a la carpetaKindleMobilePushApp, haga clic en OK y, por último, en Finish.

Después de importar la aplicación de muestra de Kindle Fire a su IDE, deberá añadir la clave de APIde su aplicación de Kindle Fire al archivo strings.xml, que está incluido en la aplicación de KindleFire de muestra.

3. Añada la clave de API al archivo strings.xml. En el IDE encontrará el archivo incluido en la carpetavalues, que es una subcarpeta de res. Añada la cadena a la línea siguiente:

<string name="api_key"></string>

4. Ejecute la aplicación para ver el ID de registro como salida del sistema de registro de Android.Si utiliza Eclipse con el complemento Android ADT, puede ver el ID de registro en la ventana devisualización LogCat. Por ejemplo, la salida que contiene el ID de registro tendrá un aspecto similar alsiguiente:

amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw

Ahora debe tener la información necesaria de ADM (ID de cliente, clave secreta de cliente, clave de APIe ID de registro) para enviar mensajes de notificación de inserción a su punto de enlace móvil. A partir deahora, puede enviar un mensaje de notificación de inserción a la aplicación de Kindle Fire de su dispositivousando la consola de Amazon SNS o la API de Amazon SNS. Para utilizar la consola de Amazon SNS,consulte Uso de la inserción en móvil de Amazon SNS (p. 80). Para usar la API de Amazon SNS,consulte Paso 5: Enviar un mensaje de notificación de inserción a una aplicación de Kindle Fire medianteADM y Amazon SNS (p. 44).

Paso 5: Enviar un mensaje de notificación de insercióna una aplicación de Kindle Fire mediante ADM yAmazon SNSEn esta sección se describe cómo utilizar la información de requisitos previos para enviar un mensaje denotificación de inserción a su aplicación de Kindle Fire mediante Amazon SNS y ADM. La información derequisitos previos recopilada se añade al archivo de muestra de AWS SNSMobilePush.java, que seencuentra en el archivo snsmobilepush.zip.

Versión de API 2010-03-3144

Page 52: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 5: Enviar un mensaje a una aplicación

de Kindle Fire mediante ADM y Amazon SNS

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.Para obtener más información, consulte AWS SDK for Java. Para obtener más información acercade las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

Para añadir la muestra a Eclipse

1. Cree un proyecto de Java nuevo en Eclipse (File | New | Java Project).2. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

3. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoAwsCredentials.properties y añada sus credenciales de seguridad de AWS.

Para añadir el AWS SDK for Java a la ruta de compilación

1. Haga clic con el botón secundario en la carpeta del proyecto de Java y luego haga clic en Build Path yen Configure Build Path...

2. Haga clic en la pestaña Libraries y luego en Add Library...3. Haga clic en AWS SDK for Java, Next y Finish.

Para añadir la información de requisitos previos a SNSMobilePush.java

1. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoSNSMobilePush.java en Eclipse.

2. Anule el comentario de sample.demoKindleAppNotification();. Debería parecerse a lo quesigue:

SNSMobilePush sample = new SNSMobilePush(sns);// TODO: Uncomment the services you wish to use.// sample.demoAndroidAppNotification();sample.demoKindleAppNotification();// sample.demoAppleAppNotification();// sample.demoAppleSandboxAppNotification();// sample.demoBaiduAppNotification();// sample.demoWNSAppNotification();// sample.demoMPNSAppNotification();

3. Localice el método demoKindleAppNotification y especifique el ID de registro que ha recibidode ADM para el valor de la cadena de ID de registro. Por ejemplo, han de tener un aspecto similar alsiguiente:

String registrationId = = "amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw";

4. Escriba el ID de cliente de su aplicación. Por ejemplo, han de tener un aspecto similar al siguiente:

String clientId = "amzn1.application-oa2-client.EXAMPLE7423654b79fc9f062fEXAMPLE";

Versión de API 2010-03-3145

Page 53: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorIntroducción a APNS

5. Escriba la clave secreta de cliente de su aplicación. Por ejemplo, han de tener un aspecto similar alsiguiente:

String clientSecret = "EXAMPLE01658e75ceb7bf9f71939647b1aa105c1c8eaccabaf7d41f68EXAMPLE";

6. Especifique un nombre para la aplicación. Los nombres de aplicaciones tienen que estar formadosúnicamente por letras ASCII mayúsculas y minúsculas, números, subrayados, guiones y puntos, ydeben tener entre 1 y 256 caracteres. Por ejemplo, han de tener un aspecto similar al siguiente:

String applicationName = "admpushapp";

7. Ejecute la aplicación Java. La salida que se vea en la ventana de salida del IDE debe ser similar a lasiguiente:

===========================================Getting Started with Amazon SNS===========================================

{PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/ADM/mypushappname}{EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/ADM/mypushappname/97e9ced9-f136-3893-9d60-775467eafebb}{"ADM": "{ \"data\": { \"message\": \"ENTER YOUR MESSAGE\" } }"}Published. MessageId=b35fb4bz-b503-4e37-83d4-feu4218d6da6

En su dispositivo Kindle Fire, debería ver un mensaje de notificación de inserción dentro de laaplicación de Kindle Fire.

Introducción a Apple Push Notification Service(Apple Push Notification Service APNS) es un servicio que le permite enviar mensajes de notificación deinserción a aplicaciones de iOS y OS X. En esta sección se describe cómo obtener los requisitos previosde APNS y enviar un mensaje de notificación de inserción mediante Amazon SNS y APNS.

Temas• Requisitos previos de APNS (p. 47)• Paso 1: Crear una aplicación de iOS (p. 47)• Paso 2: Obtener un certificado SSL de APNS (p. 47)• Paso 3: Obtener la clave privada de la aplicación (p. 48)• Paso 4: Verificar el certificado y la clave privada de la aplicación (p. 48)• Paso 5: Obtener un token de dispositivo (p. 48)• Pasos siguientes (p. 49)• Envío de un mensaje de notificación de inserción a una aplicación de iOS mediante Amazon SNS y

APNS. (p. 49)• Envío de un mensaje de notificación de inserción a una aplicación de iOS VoIP mediante Amazon SNS

y APNS (p. 51)• Envío de un mensaje de notificación de inserción a una aplicación de Mac OS X mediante Amazon

SNS y APNS (p. 52)

Versión de API 2010-03-3146

Page 54: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRequisitos previos de APNS

Requisitos previos de APNSPara enviar notificaciones de inserción a dispositivos móviles mediante Amazon SNS y APNS, debedisponer de lo siguiente:

• Aplicación de iOS registrada en APNS• Certificado SSL de APNS• Clave privada de la aplicación• Token del dispositivo

Si ya cumple estos requisitos previos, puede enviar un mensaje de notificación de inserción a unaaplicación de iOS utilizando la consola de Amazon SNS o la API de Amazon SNS. Para obtener másinformación sobre cómo usar la consola de Amazon SNS, consulte Uso de la inserción en móvil deAmazon SNS (p. 80). Para obtener más información acerca del uso de la API de Amazon SNS consulteEnvío de un mensaje de notificación de inserción a una aplicación de iOS mediante Amazon SNS yAPNS. (p. 49).

Paso 1: Crear una aplicación de iOSPara comenzar a utilizar el envío de mensajes de notificación de inserción a aplicaciones de iOS, debedisponer de una cuenta de desarrollador de Apple, haber creado un ID de aplicación (identificador deaplicación), haber registrado su dispositivo iOS y, además, haber creado un perfil de aprovisionamiento deiOS. Para obtener más información, consulte la Local and Remote Notification Programming Guide en labiblioteca para desarrolladores de iOS.

Note

Si aún no tiene una aplicación de iOS registrada en APNS, puede utilizar la aplicación de iOS demuestra proporcionada por AWS como plantilla para comenzar. Para obtener más información,consulte Paso 5: Obtener un token de dispositivo (p. 48).

Paso 2: Obtener un certificado SSL de APNSAmazon SNS requiere que el certificado SSL de APNS de la aplicación esté en formato .pem cuandose usa la API de Amazon SNS. Si utiliza la consola de Amazon SNS, puede cargar el certificado enformato .p12 y Amazon SNS lo convertirá a .pem y lo mostrará en la consola. Utilice la aplicación KeychainAccess de su equipo Mac para exportar el certificado SSL de APNS. Para obtener más información sobreel certificado SSL, consulte Provisioning and Development en el manual Apple Local and Push NotificationProgramming Guide.

Para descargar un certificado SSL de APNS

1. En el sitio web Apple Developer, haga clic en Member Center, Certificates, Identifiers and Profiles yCertificates.

2. Seleccione el certificado que ha creado para el desarrollo de APNS de iOS, haga clic en Download y,a continuación, guarde el archivo, que tendrá el tipo de extensión .cer.

Para convertir el certificado SSL de APNS del formato .cer al formato .pem

Los siguientes pasos usan la utilidad openssl.

• En el símbolo del sistema, escriba el siguiente comando. Sustituya myapnsappcert.cer por elnombre del certificado que ha descargado desde el sitio web para desarrolladores de Apple.

openssl x509 -in myapnsappcert.cer -inform DER -out myapnsappcert.pem

Versión de API 2010-03-3147

Page 55: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3: Obtener la clave privada de la aplicación

El archivo .pem que acaba de crear se utilizará para configurar Amazon SNS para que envíe mensajesde notificaciones de inserción en móvil.

Paso 3: Obtener la clave privada de la aplicaciónAmazon SNS requiere una clave privada de la aplicación en formato .pem. Utilice la aplicación KeychainAccess de su equipo Mac para exportar la clave privada de la aplicación.

Para obtener la clave privada de la aplicación

La clave privada asociada al certificado SSL se puede exportar desde la aplicación Keychain Access a suequipo Mac. Esto se basa en el supuesto de que ya ha importado el archivo .cer que ha descargado desdeel sitio web de Apple Developer en Keychain Access. Puede hacerlo copiando el archivo .cer en KeychainAccess o haciendo doble clic en el archivo .cer.

1. Abra Keychain Access, seleccione Keys y, a continuación, resalte su clave de aplicación privada.2. Haga clic en File y Export Items... y, a continuación, escriba un nombre en el campo Save As:.3. Acepte el formato de archivo .p12 predeterminado y haga clic en Save.

El archivo .p12 se convertirá al formato de archivo .pem.

Para convertir la clave privada de la aplicación del formato .p12 al formato .pem

• En el símbolo del sistema, escriba el siguiente comando. Sustituya myapnsappprivatekey.p12 porel nombre de la clave privada que ha exportado desde Keychain Access.

openssl pkcs12 -in myapnsappprivatekey.p12 -out myapnsappprivatekey.pem -nodes -clcerts

El archivo .pem que acaba de crear se utilizará para configurar Amazon SNS para que envíe mensajesde notificaciones de inserción en móvil.

Paso 4: Verificar el certificado y la clave privada de laaplicaciónPuede verificar el certificado .pem y los archivos de clave privada utilizándolos para conectarse a APNS.

Para verificar el certificado y la clave privada conectándose a APNS

• En el símbolo del sistema, escriba el siguiente comando. Sustituya myapnsappcert.pem ymyapnsappprivatekey.pem por el nombre de su certificado y la clave privada.

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert myapnsappcert.pem -key myapnsappprivatekey.pem

Paso 5: Obtener un token de dispositivoCuando registra su aplicación en APNS para recibir mensajes de notificación de inserción, se generaun token de dispositivo (valor hexadecimal de 64 bytes). Los siguientes pasos describen cómo utilizar laaplicación de iOS de muestra proporcionada por AWS para obtener un token de dispositivo de APNS.Puede utilizar esta aplicación de iOS de muestra como ayuda para comenzar a utilizar las notificaciones

Versión de API 2010-03-3148

Page 56: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPasos siguientes

de inserción de Amazon SNS. Para obtener más información, consulte Configuring Remote NotificationSupport en el manual Apple Local and Remote Notification Programming Guide.

Para obtener un token de dispositivo de APNS para su aplicación

1. Descargue y descomprima el archivo snsmobilepush.zip.2. Vaya a la carpeta AppleMobilePushApp y, a continuación, abra la carpeta iOS 7 and earlier o

iOS 8.3. En Xcode, abra el proyecto AmazonMobilePush.xcodeproj.4. Ejecute la aplicación en Xcode. En la ventana de salida, debería ver el token del dispositivo, que es

similar a lo siguiente:

Device Token = <examp1e 29z6j5c4 df46f809 505189c4 c83fjcgf 7f6257e9 8542d2jt 3395kj73>

Note

No incluya espacios en el token del dispositivo cuando lo envíe a Amazon SNS.

Pasos siguientesAhora debe tener la información necesaria de APNS (certificado SSL, clave privada de la aplicación ytoken de dispositivo) para enviar mensajes de notificación de inserción a su punto de enlace móvil. A partirde ahora, puede enviar una notificación a la aplicación de iOS de su dispositivo usando la consola deAmazon SNS o la API de Amazon SNS.

• Para enviar una notificación a la aplicación de iOS de su dispositivo con la consola de Amazon SNS,consulte Uso de la inserción en móvil de Amazon SNS (p. 80).

• Para usar la API de Amazon SNS, consulte Envío de un mensaje de notificación de inserción a unaaplicación de iOS mediante Amazon SNS y APNS. (p. 49).

• Para enviar un mensaje de notificación de inserción a una aplicación VoIP mediante Amazon SNSy APNS, consulte Envío de un mensaje de notificación de inserción a una aplicación de iOS VoIPmediante Amazon SNS y APNS (p. 51).

• Para enviar un mensaje de notificación de inserción a una aplicación de Mac OS X mediante AmazonSNS y APNS, consulte Envío de un mensaje de notificación de inserción a una aplicación de Mac OS Xmediante Amazon SNS y APNS (p. 52).

Envío de un mensaje de notificación de insercióna una aplicación de iOS mediante Amazon SNS yAPNS.En esta sección se describe cómo utilizar la información de requisitos previos con la API de AmazonSNS para enviar un mensaje de notificación de inserción a su aplicación de iOS mediante AmazonSNS y APNS. La información de requisitos previos se añade al archivo de muestra de AWSSNSMobilePush.java, que se encuentra en el archivo snsmobilepush.zip.

También puede usar la consola de Amazon SNS. Para obtener más información sobre cómo usar laconsola de Amazon SNS, consulte Uso de la inserción en móvil de Amazon SNS (p. 80).

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.

Versión de API 2010-03-3149

Page 57: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a una aplicación de iOS

Para obtener más información, consulte AWS SDK for Java. Para obtener más información acercade las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

Para añadir la muestra a Eclipse

1. Cree un proyecto de Java nuevo en Eclipse (File | New | Java Project).2. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

3. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoAwsCredentials.properties y añada sus credenciales de seguridad de AWS.

Para añadir el AWS SDK for Java a la ruta de compilación

1. Haga clic con el botón secundario en la carpeta del proyecto de Java y luego haga clic en Build Path yen Configure Build Path...

2. Haga clic en la pestaña Libraries y luego en Add Library...3. Haga clic en AWS SDK for Java, Next y Finish.

Para añadir la información de requisitos previos a SNSMobilePush.java

1. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoSNSMobilePush.java en Eclipse.

2. En función del APNS que utilice, anule el comentario de sample.demoAppleAppNotification();o sample.demoAppleSandboxAppNotification();. Por ejemplo, si utilizademoAppleSandboxAppNotification, debe tener un aspecto similar al siguiente:

SNSMobilePush sample = new SNSMobilePush(sns);// TODO: Uncomment the services you wish to use.// sample.demoAndroidAppNotification();// sample.demoKindleAppNotification();// sample.demoAppleAppNotification();sample.demoAppleSandboxAppNotification();// sample.demoBaiduAppNotification();// sample.demoWNSAppNotification();// sample.demoMPNSAppNotification();

3. Localice el método demoAppleSandboxAppNotification e introduzca el token de dispositivo queha recibido de APNS para el valor de la cadena de token de dispositivo. Por ejemplo, han de tener unaspecto similar al siguiente:

String deviceToken = "examp1e29z6j5c4df46f809505189c4c83fjcgf7f6257e98542d2jt3395kj73";

4. Especifique el certificado SSL de APNS para su aplicación. Al principio de cada línea nueva de sucertificado, debe añadir \n. Por ejemplo, han de tener un aspecto similar al siguiente:

String certificate = "-----BEGIN CERTIFICATE-----\nMIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD\nVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z

Versión de API 2010-03-3150

Page 58: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a una aplicación VoIP

\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE\nIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END CERTIFICATE-----";

5. Escriba la clave privada de su aplicación. Al principio de cada línea nueva de su certificado, debeañadir \n. Por ejemplo, han de tener un aspecto similar al siguiente:

String privateKey = "-----BEGIN RSA PR1VATE KEY-----\nMJICiTCHAfICCQD9m7oRw0uXOjANBgkqhkiG7w0BAQUFADCBiDELMAkGA1UEBhMC\nWVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGx2MQ8wDQYDVQQKEwZBbWF6\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\n4MXNchZOFFreg4Rr3Xzhb9RhvlIRgsr3wU4/FYai3z96EXAMPLE=\n-----END RSA PR1VATE KEY-----";

6. Especifique un nombre para la aplicación. Los nombres de aplicaciones tienen que estar formadosúnicamente por letras ASCII mayúsculas y minúsculas, números, subrayados, guiones y puntos, ydeben tener entre 1 y 256 caracteres. Por ejemplo, han de tener un aspecto similar al siguiente:

String applicationName = "mypushappname";

7. Ejecute la aplicación Java. La salida que se vea en la ventana de salida del IDE debe ser similar a lasiguiente:

===========================================Getting Started with Amazon SNS===========================================

{PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/APNS_SANDBOX/mypushappname}{EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/APNS_SANDBOX/pushapp/97e9ced9-f136-3893-9d60-775467eafebb}{"default":"This is the default Message","APNS_SANDBOX":"{ \"aps\" : { \"alert\" : \"You have got email.\", \"badge\" : 9,\"sound\" :\"default\"}}"}Published. MessageId=d65fb4bb-b903-5e37-83d4-feb4818d6da3

En su dispositivo iOS, deberá ver un mensaje de notificación.

Envío de un mensaje de notificación de inserción auna aplicación de iOS VoIP mediante Amazon SNS yAPNSPara enviar un mensaje de notificación de inserción a una aplicación VoIP utilizando Amazon SNS yAPNS, primero debe completar los requisitos previos en Requisitos previos de APNS (p. 47).

Note

Si aún no tiene una aplicación de iOS registrada en APNS, puede descargar y usar el archivo demuestra snsmobilepush.zip que AWS proporciona como plantilla para comenzar. Para obtenermás información, consulte Paso 5: Obtener un token de dispositivo (p. 48).

Para registrar su aplicación móvil en AWS

1. Vaya a https://console.aws.amazon.com/sns/ y haga clic en Create platform application.

Versión de API 2010-03-3151

Page 59: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a una aplicación de Mac OS X

2. En el cuadro Application name, escriba un nombre que represente a su aplicación.

Los nombres de aplicaciones tienen que estar formados únicamente por letras ASCII mayúsculas yminúsculas, números, subrayados, guiones y puntos, y deben tener entre 1 y 256 caracteres.

3. En el campo Push Notification Platform, seleccione Apple Development o Apple Production.4. En el campo Push Certification Type, seleccione VoIP Push Certificate.5. Seleccione el certificado cifrado de contraseña y la clave privada tal como los exportó desde Keychain

Access a su equipo Mac en formato de archivo .p12.6. Escriba la contraseña y, a continuación, haga clic en Create Platform Application.

Envío de un mensaje de notificación de inserción auna aplicación de Mac OS X mediante Amazon SNS yAPNSPara enviar un mensaje de notificación de inserción a una aplicación de Mac OS X utilizando Amazon SNSy APNS, primero debe completar los requisitos previos en Requisitos previos de APNS (p. 47).

Note

Si aún no dispone de una aplicación de Mac OS X registrada en APNS, puede descargar y utilizaruna aplicación de muestra como PushyMac, que se encuentra disponible en el sitio web de AppleDeveloper.

Para registrar su aplicación móvil en AWS

1. Vaya a https://console.aws.amazon.com/sns/ y haga clic en Create platform application.2. En el cuadro Application name, escriba un nombre que represente a su aplicación.

Los nombres de aplicaciones tienen que estar formados únicamente por letras ASCII mayúsculas yminúsculas, números, subrayados, guiones y puntos, y deben tener entre 1 y 256 caracteres.

3. En el campo Push Notification Platform, seleccione Apple Development o Apple Production.4. En el campo Push Certification Type, seleccione MacOS Push Certificate.5. Seleccione el certificado cifrado de contraseña y la clave privada tal como los exportó desde Keychain

Access a su equipo Mac en formato de archivo .p12.6. Escriba la contraseña y, a continuación, haga clic en Create Platform Application.

Introducción a Baidu Cloud PushBaidu Cloud Push es un servicio en la nube chino. Con Baidu, puede enviar mensajes de notificación deinserción a dispositivos móviles. En esta sección se describe cómo obtener los requisitos previos de Baiduy enviar un mensaje de notificación de inserción utilizando Amazon SNS y Baidu.

Temas• Requisitos previos de Baidu (p. 53)• Paso 1: Crear una cuenta de Baidu (p. 53)• Paso 2: Registrarse como desarrollador de Baidu (p. 55)• Paso 3: Crear un proyecto de inserción en la nube de Baidu (p. 58)

Versión de API 2010-03-3152

Page 60: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRequisitos previos de Baidu

• Paso 4: Descargar e instalar la aplicación de demostración Android desde Baidu (p. 61)• Paso 5: Obtener un ID de usuario y un ID de canal de Baidu (p. 65)• Paso 6: Enviar un mensaje de notificación de inserción a un punto de enlace móvil mediante Amazon

SNS y Baidu (p. 65)

Requisitos previos de BaiduPara enviar un mensaje de notificación de inserción a dispositivos móviles utilizando Amazon SNS y Baidu,necesita los elementos siguientes:

• Cuenta de Baidu• Registro como desarrollador de Baidu• Proyecto de inserción en la nube de Baidu• Clave API y clave secreta de un proyecto de inserción en la nube de Baidu• ID de usuario e ID de canal de Baidu• Aplicación de demostración Android

Si ya cumple estos requisitos previos, puede enviar un mensaje de notificación de inserción a un punto deenlace móvil utilizando la API de Amazon SNS. Para obtener más información acerca del uso de la API deAmazon SNS consulte Paso 6: Enviar un mensaje de notificación de inserción a un punto de enlace móvilmediante Amazon SNS y Baidu (p. 65).

Paso 1: Crear una cuenta de BaiduPara utilizar Baidu, primero debe crear una cuenta.

Important

Para crear una cuenta de Baidu, debe seguir un paso de verificación en el que tiene que escribircaracteres en chino simplificado. La forma más sencilla de realizar esta tarea consiste en tenerla ayuda de alguien que pueda leer chino. Otra opción consiste en utilizar Amazon MechanicalTurk para crear la cuenta de Baidu. Una vez que haya creado la cuenta y la contraseña deBaidu, puede iniciar sesión y cambiar la contraseña sin necesidad de escribir caracteres enchino simplificado. Para obtener más información sobre Mechanical Turk, consulte la AmazonMechanical Turk Requester User Interface.

Para crear una cuenta de Baidu

1. En el portal de Baidu, en la esquina superior derecha, haga clic en 注册 (registro).

2. Escriba la dirección de correo electrónico, la contraseña y el código de verificación y, a continuación,haga clic en 注册 (registro).

Versión de API 2010-03-3153

Page 61: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1: Crear una cuenta de Baidu

A continuación, tendría que ver una página similar a la siguiente, en la que se le informa del envío deun correo electrónico de activación a la dirección de correo electrónico que ha especificado.

3. Inicie sesión en su cuenta de correo electrónico, abra el correo electrónico de activación que harecibido de Baidu y, a continuación, haga clic en el enlace proporcionado:

4. Después de hacer clic en el enlace proporcionado en el correo electrónico de activación de Baidu,debe escribir el código de verificación (caracteres en chino simplificado).

Versión de API 2010-03-3154

Page 62: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 2: Registrarse como desarrollador de Baidu

Una vez que haya creado una cuenta de Baidu, podrá registrarse como desarrollador.

Paso 2: Registrarse como desarrollador de BaiduDebe registrarse como desarrollador de Baidu para utilizar el servicio de notificación de inserción de Baidu.

Para registrarse como desarrollador de Baidu

1. En el portal de Baidu, haga clic en 更多 (más).

2. Haga clic en 百度开放云平台 (plataforma de nube abierta de Baidu).

3. En la página siguiente, cerca de la esquina superior derecha, haga clic en 开发者服务 (servicios dedesarrollador).

Versión de API 2010-03-3155

Page 63: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 2: Registrarse como desarrollador de Baidu

4. Haga clic en 马上开始 (comenzar ahora).

5. Escriba su nombre, una descripción y el número de teléfono móvil para recibir un mensaje de texto deverificación y, a continuación, haga clic en 发送验证码 (enviar código de verificación).

A continuación, recibirá un mensaje de texto con un número de verificación similar al siguiente:

6. Complete el registro del desarrollador escribiendo el número de verificación y, a continuación, hagaclic en 提交 (enviar) en la parte inferior de la página.

Versión de API 2010-03-3156

Page 64: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 2: Registrarse como desarrollador de Baidu

Tras finalizar correctamente el proceso de registro, debería ver lo siguiente:

Después de registrarse como desarrollador de Baidu, puede pasar al siguiente paso para crear unproyecto de inserción en la nube de Baidu. Se presupone que sigue conectado a la sesión. Si no hainiciado sesión, puede utilizar el siguiente procedimiento de inicio de sesión.

Para iniciar sesión en Baidu

1. En el portal de Baidu, en la esquina superior derecha, haga clic en 登录 (inicio de sesión).

Versión de API 2010-03-3157

Page 65: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3: Crear un proyecto de inserción en la nube de Baidu

2. Escriba su nombre de usuario de Baidu (dirección de correo electrónico) y la contraseña y, acontinuación, haga clic en 登录 (inicio de sesión).

Paso 3: Crear un proyecto de inserción en la nube deBaiduCuando crea un proyecto de inserción en la nube de Baidu, recibe el ID de la aplicación, la clave API y laclave secreta.

Para crear un proyecto de inserción en la nube de Baidu

1. En el portal de Baidu, haga clic en 更多 (más).

2. Haga clic en 百度开放云平台 (plataforma de nube abierta de Baidu).

Versión de API 2010-03-3158

Page 66: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3: Crear un proyecto de inserción en la nube de Baidu

3. En la página siguiente, cerca de la esquina superior derecha, haga clic en 开发者服务 (servicios dedesarrollador).

4. Haga clic en 云推送 (inserción en la nube).

5. Haga clic en 管理控制台 (consola de administración).

6. Haga clic en 管理控制台 (consola de administración) para escribir información de un proyecto Android.

Versión de API 2010-03-3159

Page 67: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3: Crear un proyecto de inserción en la nube de Baidu

7. Haga clic en 创建工程 (crear proyecto).

8. Escriba el nombre de la aplicación y, a continuación, haga clic en 创建 (crear).

Versión de API 2010-03-3160

Page 68: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Descargar e instalar la

aplicación de demostración Android

9. Tras completar correctamente el proyecto, podrá ver una página similar a la siguiente con sus valoresapp ID, API Key y Secret Key. Tome nota de la clave API y la clave secreta, ya que se necesitan mástarde.

Paso 4: Descargar e instalar la aplicación dedemostración Android desde BaiduBaidu genera una aplicación de demostración Android que puede descargar e instalar en su dispositivomóvil.

Para descargar e instalar la aplicación de demostración Android desde Baidu

1. A partir de la página que muestra el ID, la API Key y la Secret Key de la aplicación, haga clic en 云推送 (inserción en nube).

2. Haga clic en 推送设置 (configuración de inserción)

Versión de API 2010-03-3161

Page 69: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Descargar e instalar la

aplicación de demostración Android

3. Utilizando la anotación de nombres de dominio inversa, escriba un nombre de paquete en la casilla 应用包名 (nombre de paquete de aplicación).

4. Haga clic en 保存设置 (guardar configuración)

Versión de API 2010-03-3162

Page 70: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Descargar e instalar la

aplicación de demostración Android

Se visualizará el mensaje 保存成功! (guardado correctamente).

5. A continuación, haga clic en 快速示例 (ejemplo rápido).

Debería ver una página similar a la siguiente:

Versión de API 2010-03-3163

Page 71: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Descargar e instalar la

aplicación de demostración Android

6. En el dispositivo móvil Android con el que quiere hacer la prueba, analice el icono de código QR conun escáner de códigos como QR Droid, para obtener un enlace a una aplicación de demostraciónproporcionada por Baidu.

Note

También puede descargar la aplicación de demostración haciendo clic en 下载Android示例(descargar muestra de Android).

La aplicación de demostración de inserción de Baidu está incluida en el paquetePushDemo.zip descargado. Puede utilizar la aplicación de demostración como ejemplopara crear su propia aplicación para su uso con Baidu. Además, el archivo jar del servicio deinserción (pushservice-4.0.0.jar) de Baidu se incluye en el paquete PushDemo.zip.Debe utilizar el archivo jar de Baidu para crear una nueva aplicación.

7. Haga clic en el enlace que reciba después de escanear el código de análisis; se descargará laaplicación de demostración proporcionada por Baidu en su dispositivo móvil.

8. Después de que la descarga se haya completado, instale la aplicación de demostración en sudispositivo móvil. Verá que la siguiente aplicación Push Demo está instalada:

Versión de API 2010-03-3164

Page 72: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 5: Obtener un ID de usuario y un ID de canal

Paso 5: Obtener un ID de usuario y un ID de canal deBaiduBaidu genera un ID de usuario y un ID de canal que necesitará para enviar un mensaje de notificación deinserción con Baidu.

Para obtener el ID de usuario y el ID de canal de Baidu

1. Abra Push Demo y, a continuación, haga clic en la parte inferior derecha, 无账号绑定 (enlazar sincuenta de Baidu).

Aparecerá una pantalla similar a la siguiente con el userId y el channelId.

2. Anote el userId y el channelId, ya que los utilizará en el paso siguiente.

Note

Para ver un ejemplo de código Java utilizado para recuperar el userID y el channelId,consulte el método onBind en el archivo MyPushMessageReceiver.java de la aplicaciónde demostración de inserción de Baidu. Para obtener más información, consulte Androidintegration guide. Para traducir esta guía al español, puede pegar la dirección URL, http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/guide, en Bing Translator y, acontinuación, hacer clic en Traducir.

Paso 6: Enviar un mensaje de notificación de insercióna un punto de enlace móvil mediante Amazon SNS yBaiduEn esta sección se describe cómo enviar un mensaje de notificación de inserción a su punto deenlace móvil. La información de requisitos previos recopilada se añade al archivo de muestrade AWS SNSMobilePush.java, que se encuentra en el archivo snsmobilepush.zip. El archivoSNSMobilePush.java contiene ejemplos sobre cómo crear un punto de enlace móvil y utilizar losatributos de los mensajes para estructurar el mensaje. Para obtener más información y ejemplos sobrecómo crear puntos de enlace móviles y utilizar los atributos de los mensajes con Baidu, consulte Creaciónde un punto de enlace Amazon SNS para Baidu (p. 67) y Uso de los atributos del mensaje paraestructurar el mensaje (p. 68).

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.Para obtener más información, consulte AWS SDK for Java. Para obtener más información acerca

Versión de API 2010-03-3165

Page 73: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 6: Enviar un mensaje de notificación de inserción aun punto de enlace móvil mediante Amazon SNS y Baidu

de las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

Para añadir la muestra a Eclipse

1. En Eclipse, cree un proyecto de Java nuevo (File | New | Java Project).2. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

3. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoAwsCredentials.properties y añada sus credenciales de seguridad de AWS.

Para añadir el AWS SDK for Java a la ruta de compilación

1. Haga clic con el botón secundario en la carpeta del proyecto de Java y luego haga clic en Build Path yen Configure Build Path...

2. Haga clic en la pestaña Libraries y luego en Add Library...3. Haga clic en AWS SDK for Java, Next y Finish.

Para añadir la información de requisitos previos a SNSMobilePush.java

1. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush,abra SNSMobilePush.java en Eclipse y quite el comentariosample.demoBaiduAppNotification();. Debería parecerse a lo que sigue:

SNSMobilePush sample = new SNSMobilePush(sns);// TODO: Uncomment the services you wish to use.//sample.demoAndroidAppNotification();//sample.demoKindleAppNotification();//sample.demoAppleAppNotification();//sample.demoAppleSandboxAppNotification();sample.demoBaiduAppNotification();//sample.demoWNSAppNotification();//sample.demoMPNSAppNotification();

2. Localice el método demoBaiduAppNotification y escriba el ID de usuario y el ID de canal que leenvió Baidu para el valor de las cadenas de userId y channelId. Por ejemplo, han de tener un aspectosimilar al siguiente:

String userId = "EXAMPLE-kLMchcX0v3xOxWVhG6TfdBp...KT2TGkvnKyTvLuSpzK_qsHgxVB_UpmcUa7Gl6g3EXAMPLE";String channelId = "EXAMPLE<channelId>EXAMPLE";

3. Escriba la clave secreta de su aplicación. Por ejemplo, han de tener un aspecto similar al siguiente:

String secretKey = "EXAMPLE<secretkey>EXAMPLE";

4. Escriba la clave API de su aplicación. Por ejemplo, han de tener un aspecto similar al siguiente:

String apiKey = "EXAMPLExV2lcV2zEKTLNYs625zfk2jh4EXAMPLE";

5. Escriba un nombre para su aplicación. Los nombres de aplicaciones tienen que estar formadosúnicamente por letras ASCII mayúsculas y minúsculas, números, subrayados, guiones y puntos, ydeben tener entre 1 y 256 caracteres. Por ejemplo, han de tener un aspecto similar al siguiente:

Versión de API 2010-03-3166

Page 74: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 6: Enviar un mensaje de notificación de inserción aun punto de enlace móvil mediante Amazon SNS y Baidu

String applicationName = "baidupushapp";

6. Ejecute la aplicación. La salida que se vea en la ventana de salida del IDE debe ser similar a lasiguiente:

===========================================Getting Started with Amazon SNS===========================================

{PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/BAIDU/TestApp}{EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/BAIDU/TestApp/8f3fdf0d-520b-38d1-8ed2-3301a477eef3}{Message Body: {"BAIDU":"{\"title\":\"New Notification Received from SNS\",\"description\":\"Hello World!\"}"}}{Message Attributes: ("AWS.SNS.MOBILE.BAIDU.MessageKey": "default-channel-msg-key"),("AWS.SNS.MOBILE.BAIDU.DeployStatus": "1"),("AWS.SNS.MOBILE.BAIDU.MessageType": "0")}Published! {MessageId=56a3a3e6-4b4b-59b4-8d1d-eff592c0ffa1}

En su dispositivo Android debería ver un mensaje de notificación de inserción dentro de la aplicaciónAndroid similar al siguiente:

Creación de un punto de enlace Amazon SNS para BaiduEn esta sección se proporciona más información y ejemplos sobre cómo crear un punto de enlace deAmazon SNS para su uso con Baidu. Puede crear un punto de enlace de Amazon SNS utilizando el userIdy el channelId combinados recibidos de Baidu, para representar la aplicación y el dispositivo móvil. Acontinuación, Amazon SNS utiliza el punto de enlace para publicar mensajes de notificación utilizando elservicio de notificación de inserción de Baidu en la aplicación del dispositivo móvil.

El siguiente ejemplo de Java muestra cómo crear un punto de enlace de Amazon SNS para un dispositivomóvil y una aplicación Baidu.

Map<String ,String> attributes = new HashMap<String ,String>();

// Insert your UserId. This is a mandatory field.attributes.put("UserId", "9999999999");

// Insert your ChannelId. This is a mandatory field.attributes.put("ChannelId", "1234567890");

CreatePlatformEndpointRequest createPlatformEndpointRequest = new CreatePlatformEndpointRequest();

Versión de API 2010-03-3167

Page 75: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 6: Enviar un mensaje de notificación de inserción aun punto de enlace móvil mediante Amazon SNS y Baidu

// Baidu endpoints are identified by a combination of the userId and channelId which must be supplied as endpoint attributes,// without which a valid endpoint cannot be successfully created.createPlatformEndpointRequest.setAttributes(attributes);

// Insert your ChannelId. This is a mandatory field.createPlatformEndpoint.setPlatformToken("1234567890");

// Insert your Customer User Data. This is an optional field.createPlatformEndpoint.setCustomUserData("Test Endpoint");

// Insert your Platform Application Arn. This is a mandatory field.createPlatformEndpoint.setPlatformApplicationArn("arn:aws:sns:us-west-2:123456789012:app/BAIDU/TestApp");String endpointArn = snsClient.createPlatformEndpoint(createPlatformEndpointRequest);

Tenga en cuenta las siguientes consideraciones cuando utilice la API de Amazon SNS para crear un puntode enlace para su uso con Baidu:

• En CreateEndpointRequest, el campo del token de la plataforma debe contener el channelId.• Si especifica el atributo de punto de enlace "Token" en el mapa de atributos, este campo debe contener

también el channelId.• El channelId también debe especificarse como atributo de punto de enlace con el nombre "ChannelId".• El valor del atributo de punto de enlace "ChannelId" y el campo de token de la plataforma o el atributo de

punto de enlace "Token" deben ser idénticos para crear una solicitud que dé resultado.• El userId también debe especificarse como atributo de punto de enlace con el nombre "UserId".• Para obtener una respuesta satisfactoria, la solicitud debe contener valores de ChannelId y UserId

válidos en los atributos. Además, el parámetro ChannelId introducido utilizando setPlatformToken(String), que es una parte de CreatePlatformEndpointRequest, debe ser el mismo que el valor deChannelId especificado en el mapa de atributos.

Uso de los atributos del mensaje para estructurar el mensajeEn esta sección se proporciona más información y ejemplos para utilizar los atributos del mensajes paraestructurar un mensaje y enviar un mensaje de notificación de inserción a un punto de enlace móvil.

El siguiente ejemplo de Java muestra cómo enviar un mensaje de notificación de inserción a un punto deenlace móvil y cómo utilizar los atributos de un mensaje para estructurar el mensaje. Si no se envía unatributo, se establece automáticamente un valor predeterminado en su lugar.

Note

El mensaje de notificación de inserción no puede superar los 256 bytes, que es el tamaño máximopermitido por Baidu.

Map<String, MessageAttributeValue> messageAttributes = new HashMap<String, MessageAttributeValue>();

// Insert your desired value of Deploy Status here. 1 = DEV, 2 = PRODmessageAttributes.put("AWS.SNS.MOBILE.BAIDU.DeployStatus", new MessageAttributeValue().withDataType("String").withStringValue("1"));

// Insert your desired value of Message Type here. 0 = IN-APP MESSAGE, 1 = ALERT NOTIFICATIONmessageAttributes.put("AWS.SNS.MOBILE.BAIDU.MessageType", new MessageAttributeValue().withDataType("String").withStringValue("1"));

// Insert your desired value of Message Key

Versión de API 2010-03-3168

Page 76: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorIntroducción a GCM

messageAttributes.put("AWS.SNS.MOBILE.BAIDU.MessageKey", new MessageAttributeValue().withDataType("String").withStringValue("test-message"));

PublishRequest publishRequest = new PublishRequest();publishRequest.setMessageAttributes(messageAttributes);String message = "{\"title\":\"Test_Title\",\"description\":\"Test_Description\"}";publishRequest.setMessage(message);publishRequest.setTargetArn("arn:aws:sns:us-west-2:999999999999:endpoint/BAIDU/TestApp/309fc7d3-bc53-3b63-ac42-e359260ac740");PublishResult publishResult = snsClient.publish(publishRequest);

Tenga en cuenta las siguientes consideraciones cuando utilice los atributos del mensaje opcionales paraestructurar el mensaje:

• AWS.SNS.MOBILE.BAIDU.DeployStatus

Valores posibles (valor predeterminado = 1):

1 – Etiqueta la notificación como enviada en un entorno de desarrollo

2 – Etiqueta la notificación como enviada en un entorno de producción• AWS.SNS.MOBILE.BAIDU.MessageType

Valores posibles (valor predeterminado = 1):

0 – Genera un mensaje en la aplicación

1 – Genera una notificación de alerta. Las notificaciones de alerta están restringidas al formato siguiente:

{"title":"<TITLE>","description":"<DESCRIPTION>"}

<TITLE> y <DESCRIPTION> son el título y la descripción que desea para su notificación de alerta. Si elformato JSON del mensaje es incorrecto, la solicitud generará un error.

• AWS.SNS.MOBILE.BAIDU.MessageKey

Identificador de mensaje breve que puede adjuntar al mensaje.

Introducción a Google Cloud Messaging for AndroidGoogle Cloud Messaging for Android (GCM) es un servicio que le permite enviar mensajes de notificaciónde inserción a aplicaciones Android. En esta sección se describe cómo obtener los requisitos previos deGCM y enviar un mensaje de notificación de inserción a un punto de enlace móvil.

Temas• Requisitos previos de GCM (p. 69)• Paso 1: Crear un proyecto de API de Google y habilitar el servicio GCM (p. 70)• Paso 2: Obtener la clave API de servidor (p. 70)• Paso 3: Obtener un ID de registro de GCM (p. 70)• Paso 4: Enviar un mensaje de notificación de inserción a un punto de enlace móvil mediante

GCM (p. 72)

Requisitos previos de GCMPara enviar mensajes de notificación de inserción a una aplicación Android, necesita lo siguiente:

Versión de API 2010-03-3169

Page 77: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1: Crear un proyecto de API de

Google y habilitar el servicio GCM

• Aplicación Android registrada en GCM• ID de registro• Clave API del servidor (token de autenticación del remitente)

Si ya cumple estos requisitos previos, puede utilizar la consola de Amazon SNS para enviar un mensajede notificación de inserción al punto de enlace móvil o puede utilizar la API de Amazon SNS. Para obtenermás información sobre cómo usar la consola de Amazon SNS, consulte Uso de la inserción en móvilde Amazon SNS (p. 80). Para obtener más información acerca del uso de la API de Amazon SNSconsulte Paso 4: Enviar un mensaje de notificación de inserción a un punto de enlace móvil medianteGCM (p. 72).

Paso 1: Crear un proyecto de API de Google yhabilitar el servicio GCMPara enviar un mensaje de notificación de inserción a una aplicación Android, debe tener un proyecto deAPI de Google y habilitar el servicio GCM.

Para crear un proyecto de API de Google y habilitar el servicio GCM

1. En el sitio web de la consola de API de Google, verifique que tenga un proyecto de API de Google.2. Haga clic en Services y compruebe que Google Cloud Messaging for Android esté activado.

Paso 2: Obtener la clave API de servidorPara comunicarse con GCM en su nombre, Amazon SNS utiliza su clave API de servidor. Esta clave seutilizará posteriormente en otro paso para enviar una notificación de inserción a un punto de enlace móvil.

Para obtener la clave API de servidor

1. En el sitio web de la consola de API de Google, haga clic en API Access y apunte la clave API deservidor que tenga la etiqueta Key for server apps (with IP locking).

2. Si todavía no ha creado una clave API de servidor, haga clic en Create new Server key. Esta clave seutilizará posteriormente en esta sección para enviar una notificación de inserción a un punto de enlacemóvil.

Paso 3: Obtener un ID de registro de GCMCuando registra la aplicación en GCM para recibir mensajes de notificación de inserción, se genera un IDde registro. Amazon SNS utiliza este valor para determinar a qué aplicación y a qué dispositivo asociadoenviará notificaciones de inserción en móvil.

En los siguientes pasos se muestra cómo utilizar la aplicación Android de muestra proporcionada porAWS para obtener un ID de registro de GCM. Puede utilizar esta aplicación Android de muestra comoayuda para comenzar a utilizar las notificaciones de inserción de Amazon SNS. Esta aplicación de muestrarequiere los SDK de Android y de Google Play Services y el paquete Android Support Library. Para obtenermás información sobre los SDK, consulte el SDK de Android y Setup Google Play Services SDK. Paraobtener más información acerca del paquete Android Support Library, consulte Support Library Setup.

Versión de API 2010-03-3170

Page 78: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3: Obtener un ID de registro de GCM

Note

La aplicación Android de muestra proporcionada es compatible con dispositivos físicos queejecuten Android versión 2.3 o una versión posterior y con dispositivos virtuales que ejecutenGoogle API 17 o versiones posteriores.

Para obtener un ID de registro de GCM para su aplicación

1. Descargue y descomprima el archivo snsmobilepush.zip.2. Importe la carpeta AndroidMobilePushApp a su IDE. En Eclipse, haga clic en File, Import, amplíe

la carpeta Android, haga clic en Existing Android Code Into Workspace y en Next, vaya a la carpetaAndroidMobilePushApp, haga clic en OK y, por último, en Finish.

Después de importar la aplicación de muestra Android a su IDE, deberá añadir el número de proyectode la API de Google al archivo strings.xml, que está incluido en la aplicación Android de muestra.

3. Añada el número de proyecto de su proyecto API de Google al archivo strings.xml. En el IDEencontrará el archivo incluido en la carpeta values, que es una subcarpeta de res. La cadena tendráun aspecto similar al siguiente:

<string name="project_number">012345678912</string>

4. Añada google-play-services.jar, android-support-v4.jar y android.jar a la ruta decompilación Java. Seleccione google-play-services.jar y android-support-v4.jar para laexportación, pero no seleccione android.jar para exportarlo.

5. Ejecute la aplicación para ver el ID de registro como salida del sistema de registro de Android.Si utiliza Eclipse con el complemento Android ADT, puede ver el ID de registro en la ventana devisualización LogCat. Por ejemplo, la salida que contiene el ID de registro tendrá un aspecto similar alsiguiente:

06-05 11:50:43.587: V/Registration(14146): Registered, registrationId: = Examplei7fFachkJ1xjlqT64RaBkcGHochmf1VQAr9k-IBJtKjp7fedYPzEwT_Pq3Tu0lroqro1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw, error = null, unregistered = null

La aplicación instalada aparecerá en su dispositivo Android:

Versión de API 2010-03-3171

Page 79: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Enviar un mensaje a un

punto de enlace móvil mediante GCM

Ahora debe tener un ID de registro, una clave API de servidor y la aplicación Android registrada en GCM.Ya puede enviar una notificación a la aplicación Android de su dispositivo usando la consola de AmazonSNS o la API de Amazon SNS. Para utilizar la consola de Amazon SNS, consulte Uso de la inserción enmóvil de Amazon SNS (p. 80). Para usar la API de Amazon SNS, consulte Paso 4: Enviar un mensajede notificación de inserción a un punto de enlace móvil mediante GCM (p. 72).

Paso 4: Enviar un mensaje de notificación de insercióna un punto de enlace móvil mediante GCMEn esta sección se describe cómo enviar un mensaje de notificación de inserción a su punto deenlace móvil. La información de requisitos previos recopilada se añade al archivo de muestra de AWSSNSMobilePush.java, que se encuentra en el archivo snsmobilepush.zip.

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.Para obtener más información, consulte AWS SDK for Java. Para obtener más información acercade las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

Para añadir la muestra a Eclipse

1. En Eclipse, cree un proyecto de Java nuevo (File | New | Java Project).2. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

3. En la carpeta SNSSamples/src/com/amazonaws/sns/samples/mobilepush, abra el archivoAwsCredentials.properties y añada sus credenciales de seguridad de AWS.

Para añadir el AWS SDK for Java a la ruta de compilación

1. Haga clic con el botón secundario en la carpeta del proyecto de Java y luego haga clic en Build Path yen Configure Build Path...

2. Haga clic en la pestaña Libraries y luego en Add Library...3. Haga clic en AWS SDK for Java, Next y Finish.

Para añadir la información de requisitos previos a SNSMobilePush.java

1. En la carpeta SNSSamples/src/com/amazonaws/sns/samples/mobilepush, abra SNSMobilePush.java en Eclipse y quite el comentariosample.demoAndroidAppNotification();. Debería parecerse a lo que sigue:

Versión de API 2010-03-3172

Page 80: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Enviar un mensaje a un

punto de enlace móvil mediante GCM

SNSMobilePush sample = new SNSMobilePush(sns);// TODO: Uncomment the services you wish to use.sample.demoAndroidAppNotification();// sample.demoKindleAppNotification();// sample.demoAppleAppNotification();// sample.demoAppleSandboxAppNotification();// sample.demoBaiduAppNotification();// sample.demoWNSAppNotification();// sample.demoMPNSAppNotification();

2. Localice el método demoAndroidAppNotification y especifique el ID de registro que ha recibidode GCM para el valor de la cadena de ID de registro. Por ejemplo, han de tener un aspecto similar alsiguiente:

String registrationId = = "EXAMPLE-kLMchcX0v3xOxWVhG6TfdBp...KT2TGkvnKyTvLuSpzK_qsHgxVB_UpmcUa7Gl6g3EXAMPLE";

3. Escriba la clave API de su aplicación. Por ejemplo, han de tener un aspecto similar al siguiente:

String serverAPIKey = "EXAMPLExV2lcV2zEKTLNYs625zfk2jh4EXAMPLE";

4. Escriba un nombre para su aplicación. Los nombres de aplicaciones tienen que estar formadosúnicamente por letras ASCII mayúsculas y minúsculas, números, subrayados, guiones y puntos, ydeben tener entre 1 y 256 caracteres. Por ejemplo, han de tener un aspecto similar al siguiente:

String applicationName = "gcmpushapp";

5. Ejecute la aplicación. La salida que se vea en la ventana de salida del IDE debe ser similar a lasiguiente:

===========================================Getting Started with Amazon SNS===========================================

{PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/GCM/gcmpushapp}{EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/GCM/gcmpushapp/5e3e9847-3183-3f18-a7e8-671c3a57d4b3}{"default":"This is the default message","GCM":"{\"delay_while_idle\":true,\"collapse_key\":\"Welcome\",\"data\":{\"message\":\"Visit Amazon!\",\"url\":\"http://www.amazon.com/\"},\"time_to_live\":125,\"dry_run\":false}"}Published. MessageId=1ca8d7d1-c261-5bfc-8689-9db269c4e46c

En su dispositivo Android debería ver un mensaje de notificación de inserción dentro de la aplicaciónAndroid similar al siguiente:

Versión de API 2010-03-3173

Page 81: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorIntroducción a MPNS

Introducción a MPNSMicrosoft Push Notification Service for Windows Phone (MPNS) es un servicio que le permite enviarmensajes de notificación de inserción a aplicaciones de Windows 7+ y Windows Phone 8.0. En estasección se describe cómo obtener los requisitos previos de MPNS y enviar un mensaje de notificaciónde inserción mediante Amazon SNS y MPNS. Puede enviar mensajes de notificación de inserciónautenticados y sin autenticar con MPNS. Para mejorar la seguridad y evitar las limitaciones controladasimpuestas por MPNS, debe enviar mensajes de notificación de inserción autenticados.

Temas• Requisitos previos de MPNS (p. 74)• Paso 1: Configurar su aplicación Windows Phone para recibir mensajes de notificación de

inserción (p. 75)• Paso 2: Obtener un URI de notificación de inserción de MPNS (p. 75)• Paso 3: Crear una cuenta de desarrollador de Windows (p. 75)• Paso 4: Cargar el certificado TLS (p. 75)• Paso 5: Enviar un mensaje de notificación de inserción a una aplicación de Windows Phone mediante

MPNS y Amazon SNS (p. 75)

Requisitos previos de MPNSPara enviar un mensaje de notificación de inserción no autenticado a una aplicación de Windows Phonemediante Amazon SNS y MPNS, necesita lo siguiente:

• Aplicación de Windows Phone configurada para utilizar MPNS.• URI de notificación de inserción de MPNS.

Para enviar un mensaje de notificación de inserción autenticado a una aplicación de Windows Phonemediante Amazon SNS y MPNS, también necesita lo siguiente:

• URI de notificación de inserción HTTPS de MPNS.• Registro como desarrollador de aplicaciones de Windows• Certificado de Transport Layer Security (TLS)

Si ya cumple estos requisitos previos, puede enviar un mensaje de notificación de inserción a unaaplicación de Windows Phone utilizando la consola de Amazon SNS o la API de Amazon SNS. Paraobtener más información sobre cómo usar la consola de Amazon SNS, consulte Uso de la inserción en

Versión de API 2010-03-3174

Page 82: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1: Configurar su aplicación Windows Phonepara recibir mensajes de notificación de inserción

móvil de Amazon SNS (p. 80). Para obtener más información acerca del uso de la API de AmazonSNS consulte Paso 5: Enviar un mensaje de notificación de inserción a una aplicación de Windows Phonemediante MPNS y Amazon SNS (p. 75).

Paso 1: Configurar su aplicación Windows Phone pararecibir mensajes de notificación de inserciónPara enviar un mensaje de notificación de inserción a su aplicación Windows Phone, debe habilitar laaplicación para el servicio MPNS. Para obtener más información, consulte la sección Setting up your app toreceive push notifications for Windows Phone 8.

Paso 2: Obtener un URI de notificación de inserciónde MPNSPara crear un punto de enlace móvil con Amazon SNS, necesita un URI de notificación de inserción deMPNS. Puede obtener una URI de notificación de inserción HTTP o HTTPS desde MPNS. Para mejorar laseguridad y evitar las limitaciones controladas impuestas por MPNS, debe obtener un URI de notificaciónde inserción HTTPS para enviar mensajes autenticados. Para obtener más información acerca de cómoobtener un URI de notificación de inserción HTTPS, consulte Setting up an authenticated web service tosend push notifications for Windows Phone 8.

Paso 3: Crear una cuenta de desarrollador deWindowsPara enviar mensajes autenticados mediante MPNS debe crear una cuenta de desarrollador de Windows.Para obtener más información sobre cómo abrir una cuenta de desarrollador de Windows, consulteOpening a developer account.

Paso 4: Cargar el certificado TLSPara enviar mensajes autenticados mediante MPNS debe cargar un certificado TLS otorgado por una delas autoridades de certificación (CA) autorizadas para Windows Phone, en su cuenta de desarrollador deWindows. También debe enviar toda la cadena de certificados TLS y claves privadas asociadas a AmazonSNS. De este modo, se ayuda a establecer una conexión segura con MPNS mediante Amazon SNS ensu nombre. Amazon SNS necesita el certificado TLS y la clave privada en formato .pem. Puede utilizardiferentes utilidades, como openssl, para convertir y exportar certificados. Para obtener más información,consulte Setting up an authenticated web service to send push notifications for Windows Phone 8 y SSLroot certificates for Windows Phone OS 7.1. Para obtener más información acerca de openssl, consultehttp://www.openssl.org/.

Paso 5: Enviar un mensaje de notificación de insercióna una aplicación de Windows Phone mediante MPNSy Amazon SNSEn esta sección se describe cómo utilizar la información de requisitos previos con la API de Amazon SNSpara enviar un mensaje de notificación de inserción a su aplicación Windows Phone mediante AmazonSNS y MPNS. La información de requisitos previos recopilada se añade al archivo de muestra de AWSSNSMobilePush.java, que se encuentra en el archivo snsmobilepush.zip.

Versión de API 2010-03-3175

Page 83: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 5: Enviar un mensaje de notificaciónde inserción a una aplicación de Windows

Phone mediante MPNS y Amazon SNSTambién puede usar la consola de Amazon SNS. Sin embargo, para enviar notificaciones toast, debeutilizar la API de Amazon SNS. Para obtener más información sobre cómo usar la consola de AmazonSNS, consulte Uso de la inserción en móvil de Amazon SNS (p. 80).

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.Para obtener más información, consulte AWS SDK for Java. Para obtener más información acercade las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

Para añadir la muestra a Eclipse

1. En Eclipse, cree un proyecto de Java nuevo (File | New | Java Project).2. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

3. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoAwsCredentials.properties y añada sus credenciales de seguridad de AWS.

Para añadir el AWS SDK for Java a la ruta de compilación

1. Haga clic con el botón secundario en la carpeta del proyecto de Java y luego haga clic en Build Path yen Configure Build Path...

2. Haga clic en la pestaña Libraries y luego en Add Library...3. Haga clic en AWS SDK for Java, Next y Finish.

Para añadir la información de requisitos previos a SNSMobilePush.java

1. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abraSNSMobilePush.java en Eclipse y quite el comentario sample.demoMPNSAppNotification();.Debería parecerse a lo que sigue:

SNSMobilePush sample = new SNSMobilePush(sns);// TODO: Uncomment the services you wish to use.//sample.demoAndroidAppNotification();//sample.demoKindleAppNotification();//sample.demoAppleAppNotification();//sample.demoAppleSandboxAppNotification();//sample.demoBaiduAppNotification();//sample.demoWNSAppNotification();sample.demoMPNSAppNotification();

2. Localice el método demoMPNSAppNotification y escriba el URI de la notificación que ha recibidode MPNS para el valor de la cadena notificationChannelURI.

3. Escriba un nombre para su aplicación. Los nombres de aplicaciones tienen que estar formadosúnicamente por letras ASCII mayúsculas y minúsculas, números, subrayados, guiones y puntos, ydeben tener entre 1 y 256 caracteres. Por ejemplo, han de tener un aspecto similar al siguiente:

String applicationName = "mpnspushapp";

4. Escriba el certificado TLS de MPNS en formato de archivo .pem. Debe incluir toda la cadena decertificados, comenzando por el certificado CA raíz arriba y acabando con el certificado generado

Versión de API 2010-03-3176

Page 84: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorIntroducción a WNS

abajo. Al principio de cada línea nueva de su certificado, debe añadir \n. Por ejemplo, han de tener unaspecto similar al siguiente:

String certificateChain = "-----BEGIN CERTIFICATE-----\nMIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD\nVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE\nIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END CERTIFICATE-----";

5. Escriba la clave privada del certificado TLS de MPNS en formato de archivo .pem. Al principio decada línea nueva de su certificado, debe añadir \n. Por ejemplo, han de tener un aspecto similar alsiguiente:

String privateKey = "-----BEGIN RSA PR1VATE KEY-----\nMJICiTCHAfICCQD9m7oRw0uXOjANBgkqhkiG7w0BAQUFADCBiDELMAkGA1UEBhMC\nWVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGx2MQ8wDQYDVQQKEwZBbWF6\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\n4MXNchZOFFreg4Rr3Xzhb9RhvlIRgsr3wU4/FYai3z96EXAMPLE=\n-----END RSA PR1VATE KEY-----";

6. Ejecute la aplicación. La salida que se vea en la ventana de salida del IDE debe ser similar a lasiguiente:

===========================================Getting Started with Amazon SNS===========================================

{PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/MPNS/TestApp}{EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/MPNS/TestApp/557597f8-be4a-3035-8c6d-bb7fa8b20fef}{Message Body: {"MPNS":"<?xml version=\"1.0\" encoding=\"utf-8\"?><wp:Notification xmlns:wp=\"WPNotification\"><wp:Tile><wp:Count>23</wp:Count><wp:Title>This is a tile notification</wp:Title></wp:Tile></wp:Notification>"}}{Message Attributes: ("AWS.SNS.MOBILE.MPNS.Type": "token"),("AWS.SNS.MOBILE.MPNS.NotificationClass": "realtime")}Published! {MessageId=ce9855bf-395f-5a1a-a4b9-19ace305780d}

En su Windows Phone, debería ver un mensaje de notificación de inserción dentro de la aplicación.

Introducción a WNS(Windows Push Notification Services WNS) es un servicio que le permite enviar mensajes de notificaciónde inserción y actualizaciones a aplicaciones de Windows 8 (y versiones posteriores) y de Windows Phone8.1 (y versiones posteriores). En esta sección se describe cómo obtener los requisitos previos de WNS yenviar un mensaje de notificación de inserción mediante Amazon SNS y WNS.

Temas• Requisitos previos de WNS (p. 78)

Versión de API 2010-03-3177

Page 85: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRequisitos previos de WNS

• Paso 1: Configurar su aplicación para recibir mensajes de notificación de inserción (p. 78)• Paso 2: Obtener un URI de notificación de inserción de WNS (p. 78)• Paso 3: Obtener un identificador de seguridad del paquete de WNS (p. 78)• Paso 4: Obtener una clave secreta de WNS (p. 78)• Paso 5: Enviar un mensaje de notificación de inserción a una aplicación mediante Amazon SNS y

WNS (p. 79)

Requisitos previos de WNSPara enviar mensajes de notificación de inserción a dispositivos de Windows mediante Amazon SNS yWNS, debe tener lo siguiente:

• La aplicación de Windows 8 (y versiones posteriores) o de Windows Phone 8.1 configurada para utilizarWNS

• URI de notificación de inserción de WNS• Identificador de seguridad del paquete• Clave secreta

Si ya cumple estos requisitos previos, puede enviar un mensaje de notificación de inserción a unaaplicación utilizando la consola de Amazon SNS o la API de Amazon SNS. Para obtener más informaciónsobre cómo usar la consola de Amazon SNS, consulte Uso de la inserción en móvil de AmazonSNS (p. 80). Para obtener más información acerca del uso de la API de Amazon SNS consulte Paso 5:Enviar un mensaje de notificación de inserción a una aplicación mediante Amazon SNS y WNS (p. 79).

Paso 1: Configurar su aplicación para recibir mensajesde notificación de inserciónPara enviar un mensaje de notificación de inserción a su aplicación, debe habilitar la aplicación para elservicio WNS. Para obtener más información, consulte Windows Push Notification Services.

Paso 2: Obtener un URI de notificación de inserciónde WNSPara crear un punto de enlace móvil con Amazon SNS, necesita un URI de notificación de inserción deWNS. Para obtener más información, consulte Windows Push Notification Services.

Paso 3: Obtener un identificador de seguridad delpaquete de WNSPara crear un punto de enlace móvil con Amazon SNS, necesita un identificador de seguridad del paquetede WNS. Para obtener más información, consulte Windows Push Notification Services.

Paso 4: Obtener una clave secreta de WNSPara crear un punto de enlace móvil con Amazon SNS, necesita una clave secreta de WNS. Para obtenermás información, consulte Windows Push Notification Services.

Versión de API 2010-03-3178

Page 86: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 5: Enviar un mensaje de notificación de inserción

a una aplicación mediante Amazon SNS y WNS

Paso 5: Enviar un mensaje de notificación de insercióna una aplicación mediante Amazon SNS y WNSEn esta sección se describe cómo utilizar la información de requisitos previos para enviar un mensajede notificación de inserción a su aplicación mediante Amazon SNS y WNS. La información de requisitosprevios recopilada se añade al archivo de muestra de AWS SNSMobilePush.java, que se encuentra enel archivo snsmobilepush.zip.

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.Para obtener más información, consulte AWS SDK for Java. Para obtener más información acercade las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

Para añadir la muestra a Eclipse

1. En Eclipse, cree un proyecto de Java nuevo (File | New | Java Project).2. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

3. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abra el archivoAwsCredentials.properties y añada sus credenciales de seguridad de AWS.

Para añadir el AWS SDK for Java a la ruta de compilación

1. Haga clic con el botón secundario en la carpeta del proyecto de Java y luego haga clic en Build Path yen Configure Build Path...

2. Haga clic en la pestaña Libraries y luego en Add Library...3. Haga clic en AWS SDK for Java, Next y Finish.

Para añadir la información de requisitos previos a SNSMobilePush.java

1. En la carpeta SNSSamples\src\com\amazonaws\sns\samples\mobilepush, abraSNSMobilePush.java en Eclipse y quite el comentario sample.demoWNSAppNotification();.Debería parecerse a lo que sigue:

SNSMobilePush sample = new SNSMobilePush(sns);// TODO: Uncomment the services you wish to use.//sample.demoAndroidAppNotification();//sample.demoKindleAppNotification();//sample.demoAppleAppNotification();//sample.demoAppleSandboxAppNotification();//sample.demoBaiduAppNotification();sample.demoWNSAppNotification();//sample.demoMPNSAppNotification();

2. Localice el método demoWNSAppNotification y escriba los valores de cadena del URI denotificación de inserción, el identificador de seguridad del paquete y la clave secreta.

3. Escriba un nombre para su aplicación. Los nombres de aplicaciones tienen que estar formadosúnicamente por letras ASCII mayúsculas y minúsculas, números, subrayados, guiones y puntos, ydeben tener entre 1 y 256 caracteres. Por ejemplo, han de tener un aspecto similar al siguiente:

Versión de API 2010-03-3179

Page 87: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso de la inserción en móvil de Amazon SNS

String applicationName = "wnspushapp";

4. Ejecute la aplicación. La salida que se vea en la ventana de salida del IDE debe ser similar a lasiguiente:

===========================================Getting Started with Amazon SNS===========================================

{PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/WNS/TestApp}{EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/WNS/TestApp/17cc2f2a-dfa8-3450-90c6-e1f88d820f3d}{Message Body: {"WNS":"<badge version=\"1\" value=\"23\"/>"}}{Message Attributes: ("AWS.SNS.MOBILE.WNS.Type": "wns/badge"),("AWS.SNS.MOBILE.WNS.CachePolicy": "cache")}Published! {MessageId=d4899281-927e-5f68-9fd0-de9248be6d47}

En su dispositivo Windows, debería ver un mensaje de notificación de inserción dentro de laaplicación.

Uso de la inserción en móvil de Amazon SNSEn esta sección se describe cómo utilizar la Consola de administración de AWS con la información quese describe en Requisitos previos (p. 39) para registrar su aplicación móvil en AWS, añadir tokens dedispositivo (también denominados ID de registro), enviar un mensaje directo a un dispositivo móvil y enviarun mensaje a dispositivos móviles suscritos a un tema de Amazon SNS.

Temas• Registro de su aplicación móvil en AWS (p. 80)• Añadir tokens de dispositivo o ID de registro (p. 82)• Creación de un punto de enlace de plataforma y administración de tokens de dispositivos (p. 85)• Envío de un mensaje directo a un dispositivo móvil (p. 90)• Envío de mensajes a dispositivos móviles suscritos a un tema (p. 90)• Envío de cargas específicas de plataforma personalizadas en mensajes a dispositivos

móviles (p. 91)

Registro de su aplicación móvil en AWSPara que Amazon SNS envíe mensajes de notificación a puntos de enlace móviles, ya sea directamenteo mediante suscripciones a un tema, primero debe registrar la aplicación en AWS. Para registrar suaplicación móvil en AWS, escriba un nombre que represente a la aplicación, seleccione la plataforma quese admitirá y proporcione sus credenciales para la plataforma de servicios de notificación. Después deregistrar la aplicación en AWS, el siguiente paso consiste en crear un punto de enlace para la aplicacióny el dispositivo móvil. Amazon SNS utilizará el punto de enlace para enviar mensajes de notificación a laaplicación y el dispositivo.

Para registrar su aplicación móvil en AWS

1. Vaya a https://console.aws.amazon.com/sns/v2/home y haga clic en Create platform application.

Versión de API 2010-03-3180

Page 88: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegistro de su aplicación móvil en AWS

2. En el cuadro Application name, escriba un nombre que represente a su aplicación.

Los nombres de aplicaciones tienen que estar formados únicamente por letras ASCII mayúsculas yminúsculas, números, subrayados, guiones y puntos, y deben tener entre 1 y 256 caracteres.

3. En el cuadro Push notification platform seleccione la plataforma en la que está registrada la aplicacióny, a continuación, escriba las credenciales adecuadas.

Note

Si está utilizando una de las plataformas de APNS, puede seleccionar Choose file para cargarel archivo .p12 (exportado de Keychain Access) en Amazon SNS.

Para obtener instrucciones detalladas sobre cómo obtener la siguiente información, consulteIntroducción a Amazon Device Messaging (p. 42), Introducción a Apple Push NotificationService (p. 46), Introducción a Baidu Cloud Push (p. 52), Introducción a Google CloudMessaging for Android (p. 69), Introducción a MPNS (p. 74) o bien Introducción aWNS (p. 77).

Plataforma Credenciales

ADM ID de cliente: vaya a la página Amazon MobileApp Distribution Portal, haga clic en Apps andServices, en el nombre de su aplicación deKindle Fire y en Security Profile.

  Clave secreta de cliente: vaya a la páginaAmazon Mobile App Distribution Portal, hagaclic en Apps and Services, en el nombre de suaplicación de Kindle Fire y en Security Profile.

APNS Certificado: seleccione el certificado cifradode contraseña y la clave privada tal como losexportó desde Keychain Access a su equipo Macen formato de archivo .p12.

  Contraseña del certificado: escriba lacontraseña.

APNS_SANDBOX Certificado: igual que en el caso anterior paraAPNS.

  Contraseña de certificado: igual que en el casoanterior para APNS.

APNS_VOIP Certificado: igual que en el caso anterior paraAPNS.

  Contraseña de certificado: igual que en el casoanterior para APNS.

APNS_VOIP_SANDBOX Certificado: igual que en el caso anterior paraAPNS.

  Contraseña de certificado: igual que en el casoanterior para APNS.

MACOS Certificado: igual que en el caso anterior paraAPNS.

Versión de API 2010-03-3181

Page 89: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAñadir tokens de dispositivo o ID de registro

Plataforma Credenciales

  Contraseña de certificado: igual que en el casoanterior para APNS.

MACOS_SANDBOX Certificado: igual que en el caso anterior paraAPNS.

  Contraseña de certificado: igual que en el casoanterior para APNS.

Baidu Clave de API: escriba la clave de API querecibió después de la creación de un proyectode inserción en la nube de Baidu, tal y comose describe en Paso 3: Crear un proyecto deinserción en la nube de Baidu (p. 58).

  Clave de cliente: escriba la clave secreta querecibió después de la creación de un proyectode inserción en la nube de Baidu, tal y comose describe en Paso 3: Crear un proyecto deinserción en la nube de Baidu (p. 58).

GCM Clave de API: vaya al sitio web de la consola deAPI de Google, haga clic en API Access y tomenota de la clave API de servidor que tenga laetiqueta Key for server apps (with IP locking). Sitodavía no ha creado una clave API de servidor,haga clic en Create new Server key...

MPNS Certificado: escriba el certificado TLS para sucuenta de desarrollador de Windows, tal y comose describe en Paso 4: Cargar el certificadoTLS (p. 75).

  Clave privada: escriba la clave privada delcertificado TLS, tal y como se describe en Paso4: Cargar el certificado TLS (p. 75).

WNS Clave secreta de cliente: escriba la clave secretade cliente, tal y como se describe en How toauthenticate with the Windows Push NotificationService (WNS).

  Identificador de seguridad del paquete (SID):escriba el SID, tal y como se describe en How toauthenticate with the Windows Push NotificationService (WNS).

4. Una vez que haya especificado esta información haga clic en Add New App.

Esto registrará la aplicación en Amazon SNS, lo que creará un objeto de aplicación de plataforma parala plataforma seleccionada y devolverá un PlatformApplicationArn correspondiente.

Añadir tokens de dispositivo o ID de registroLa primera vez que registre una aplicación y un dispositivo móvil en un servicio de notificación como ApplePush Notification Service (APNS) o Google Cloud Messaging for Android (GCM), el servicio de notificación

Versión de API 2010-03-3182

Page 90: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAñadir tokens de dispositivo o ID de registro

devuelve un token de dispositivo o ID de registro. Cuando añade los tokens de dispositivo o los ID deregistro a Amazon SNS, estos se utilizan con la API de PlatformApplicationArn para crear un puntode enlace para la aplicación y el dispositivo. Cuando Amazon SNS crea el punto de enlace, se devuelve unEndpointArn. El EndpointArn es cómo Amazon SNS sabe a qué aplicación y a qué dispositivo móvilenviar el mensaje de notificación.

Puede añadir tokens de dispositivo e ID de registro a Amazon SNS utilizando los métodos siguientes:

• Añadiendo manualmente un token único a AWS con la Consola de administración de AWS.

• Migrando los tokens existentes de un archivo CSV a AWS con la Consola de administración de AWS.

• Cargando varios tokens utilizando la API CreatePlatformEndpoint.

• Registrando tokens de dispositivos que instalarán sus aplicaciones en el futuro.

Para añadir manualmente un token de dispositivo o ID de registro

1. Vaya a https://console.aws.amazon.com/sns/v2/home, haga clic en Apps y luego en su aplicación y, acontinuación, haga clic en Add Endpoints.

2. En el cuadro Endpoint Token, escriba el ID de token o el ID de registro, según el servicio denotificación. Por ejemplo, con ADM y GCM debe escribir el ID de registro

3. (Opcional) En el cuadro User Data escriba información arbitraria para asociarla al punto de enlace.Amazon SNS no utiliza estos datos. Los datos deben estar en formato UTF-8 y tener menos de 2 KB.

4. Por último, haga clic en Add Endpoints.

Ahora, con el punto de enlace creado, puede enviar mensajes directamente a un dispositivo móvil oenviar mensajes a dispositivos móviles que estén suscritos a un tema.

Para migrar los tokens existentes de un archivo CSV a AWS

Puede migrar los tokens existentes contenidos en un archivo CSV. El archivo CSV no debe tener más de 2MB. Cuando migre varios tokens, se recomienda utilizar la API CreatePlatformEndpoint. Cada uno delos tokens del archivo CSV debe ir seguido de una nueva línea. Por ejemplo, el archivo CSV ha de tener unaspecto similar al siguiente:

amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz01,"User data with spaces requires quotes"amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz04,"Data,with,commas,requires,quotes"amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz02,"Quoted data requires ""escaped"" quotes"amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz03,"{""key"": ""json is allowed"", ""value"":""endpoint"", ""number"": 1}"amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz05,SimpleDataNoQuotesamzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz06,"The following line has no user data"amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz07APBTKzPGlCyT6E6oOfpdwLpcRNxQp5vCPFiFeru9oZylc22HvZSwQTDgmmw9WdNlXMerUPxmpX0w1,"Different token style"

Versión de API 2010-03-3183

Page 91: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAñadir tokens de dispositivo o ID de registro

1. Vaya a https://console.aws.amazon.com/sns/v2/home, haga clic en Apps y luego en su aplicación y, acontinuación, haga clic en Add Endpoints.

2. Haga clic sucesivamente en Migrate existing tokens over to AWS y Choose File, seleccione su archivoCSV y, por último, haga clic en Add Endpoints.

Para cargar varios tokens utilizando la API CreatePlatformEndpoint.

A continuación, los pasos siguientes muestran cómo utilizar la aplicación Java de muestra (paquetebulkupload) proporcionada por AWS para cargar varios tokens (tokens de dispositivo o ID de registro)para Amazon SNS. Puede utilizar esta aplicación de muestra como ayuda para comenzar a cargar sustokens.

Note

Los siguientes pasos utilizan el IDE de Eclipse Java. En los pasos se presupone que ha instaladoel AWS SDK for Java y dispone de credenciales de seguridad de AWS para su cuenta de AWS.Para obtener más información, consulte AWS SDK for Java. Para obtener más información acercade las credenciales, consulte ¿Cómo obtengo credenciales de seguridad? en la AWS GeneralReference.

1. Descargue y descomprima el archivo snsmobilepush.zip.2. Cree un proyecto de Java de nuevo en Eclipse.3. Importe la carpeta SNSSamples al directorio superior del proyecto de Java que acaba de crear. En

Eclipse, haga clic con el botón secundario del ratón en el nombre del proyecto de Java y luego hagaclic en Import, amplíe General, haga clic en File System y Next, vaya a la carpeta SNSSamples, hagaclic en OK y luego en Finish.

4. Descargue una copia de la biblioteca OpenCSV y añádala a la ruta de compilación del paquetebulkupload.

5. Abra el archivo BulkUpload.properties incluido en el paquete bulkupload.6. Añada lo siguiente a BulkUpload.properties:

• El ApplicationArn al que desea añadir puntos de enlace.• La ruta completa de la ubicación del archivo CSV que contiene los tokens.• Los nombres de archivos CSV (como goodTokens.csv o badTokens.csv) que deben crearse

para registrar los tokens que Amazon SNS analiza correctamente y los que no funcionan.• (Opcional) Los caracteres para especificar el delimitador y citar en el archivo CSV que contiene los

tokens.• (Opcional) El número de subprocesos que deben utilizarse para crear puntos de enlace de forma

simultánea. El valor predeterminado es 1 subproceso.

El BulkUpload.properties finalizado ha de tener un aspecto similar al siguiente:

applicationarn:arn:aws:sns:us-west-2:111122223333:app/GCM/gcmpushappcsvfilename:C:\\mytokendirectory\\mytokens.csvgoodfilename:C:\\mylogfiles\\goodtokens.csvbadfilename:C:\\mylogfiles\\badtokens.csvdelimiterchar:' quotechar:"numofthreads:5

7. Ejecute la aplicación BatchCreatePlatformEndpointSample.java para cargar los tokens en AmazonSNS.

Versión de API 2010-03-3184

Page 92: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCreación de un punto de enlace de plataforma

y administración de tokens de dispositivos

En este ejemplo los puntos de enlace que se han creado para los tokens que se han cargadocorrectamente en Amazon SNS se registran en goodTokens.csv, mientras que los tokensincorrectos se registran en badTokens.csv. Además, debe ver los logs STD OUT escritos en laconsola de Eclipse, que tiene contenido similar al siguiente:

<1>[SUCCESS] The endpoint was created with Arn arn:aws:sns:us-west-2:111122223333:app/GCM/gcmpushapp/165j2214-051z-3176-b586-138o3d420071<2>[ERROR: MALFORMED CSV FILE] Null token found in /mytokendirectory/mytokens.csv

Para registrar tokens de dispositivos que instalarán sus aplicaciones en el futuro

Puede utilizar una de las dos opciones siguientes:

• Utilice el servicio Amazon Cognito: su aplicación móvil necesitará credenciales para crear puntosde enlace asociados a su aplicación de plataforma de Amazon SNS. Le recomendamos que utilicecredenciales temporales que venzan al cabo de un periodo de tiempo. Para la mayoría de lassituaciones, le recomendamos que utilice Amazon Cognito para crear credenciales de seguridadtemporales. Para obtener más información, consulte la guía para desarrolladores de Amazon Cognito.Si desea recibir una notificación cada vez que se inscriba una aplicación en Amazon SNS, puederegistrarse para recibir un evento Amazon SNS que le proporcionará el ARN del nuevo punto de enlace.También puede utilizar la API ListEndpointByPlatformApplication para obtener la lista completade puntos de enlace registrados en Amazon SNS.

• Utilice un servidor proxy: si su infraestructura de aplicación ya está configurada para sus aplicacionesmóviles para llamar y registrar en cada instalación, puede seguir utilizando esta configuración. Suservidor se comportará como un proxy y transmitirá el token de dispositivo a las notificaciones deinserción en móvil de Amazon SNS, así como los datos de usuario que desee almacenar. Paraello, el servidor proxy se conecta a Amazon SNS utilizando sus credenciales de AWS y la APICreatePlatformEndpoint para llamar para cargar la información de token. Se devuelve el nombrede recurso de Amazon (ARN) del punto de enlace que acaba de crear, y su servidor puede almacenarlopara realizar llamadas públicas a Amazon SNS más tarde.

Creación de un punto de enlace de plataforma yadministración de tokens de dispositivosCuando una aplicación y un dispositivo móvil se registran en un servicio de notificación de inserción, dichoservicio devuelve un token de dispositivo. Amazon SNS utiliza el token de dispositivo para crear un puntode enlace móvil al que puede enviar mensajes de notificación de inserción directos. Para obtener másinformación, consulte Requisitos previos (p. 39) y Información de los pasos generales de la inserción enmóvil de Amazon SNS (p. 40).

En esta sección se describe el procedimiento recomendado para crear un punto de enlace de plataforma yadministrar tokens de dispositivo.

Temas• Creación de un punto de enlace de plataforma (p. 86)• Pseudocódigo (p. 86)• Ejemplo de Java (p. 87)• Solución de problemas (p. 89)

Versión de API 2010-03-3185

Page 93: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCreación de un punto de enlace de plataforma

y administración de tokens de dispositivos

Creación de un punto de enlace de plataformaPara insertar notificaciones en una aplicación con Amazon SNS, primero debe registrarse el token dedispositivo de la aplicación en Amazon SNS llamando a la acción de creación del punto de enlace deplataforma. Esta acción toma el nombre de recurso de Amazon (ARN) de la aplicación de plataforma y eltoken de dispositivo como parámetros y devuelve el ARN del punto de enlace de plataforma creado.

La acción de creación de punto de enlace de plataforma hace lo siguiente:

• Si el punto de enlace de plataforma ya existe, no lo vuelva a crear. Devuelva al intermediario el ARN delpunto de enlace de plataforma existente.

• Si ya existe el punto de enlace de plataforma con el mismo token de dispositivo pero diferentesopciones, no lo vuelva a crear. Envíe una excepción al intermediario.

• Si el punto de enlace de plataforma no existe, créelo. Devuelva al intermediario el ARN del punto deenlace de plataforma que acaba de crear.

No debe llamar a la acción de creación de un punto de enlace de plataforma inmediatamente cada vezque se inicie una aplicación; este enfoque no siempre proporciona un punto de enlace que funcione.Esto puede ocurrir, por ejemplo, cuando una aplicación se desinstala y se vuelve a instalar en el mismodispositivo, y su punto de enlace que ya existe, pero está deshabilitado. Un proceso de registro correctodebe realizar las operaciones siguientes:

1. Asegurarse de que exista un punto de enlace de plataforma para esta combinación de aplicación ydispositivo.

2. Asegurarse de que el token de dispositivo del punto de enlace de plataforma es el último token dedispositivo válido.

3. Asegurarse de que el punto de enlace de plataforma esté habilitado y listo para ser utilizado.

PseudocódigoEl siguiente pseudocódigo describe una práctica recomendada para crear un punto de enlace deplataforma que funcione, sea actual y esté habilitado en una amplia variedad de condiciones de partida.Este enfoque funciona tanto si se trata de la primera vez que la aplicación se registra o no, como si elpunto de enlace de plataforma de esta aplicación ya existe, o si el punto de enlace de plataforma estáhabilitado, tiene el token de dispositivo correcto, etc. Es seguro llamarlo varias veces seguidas, ya que nocreará puntos de enlace de plataforma duplicados ni cambiará un punto de enlace de plataforma si ya estáactualizado y activado.

retrieve the latest device token from the mobile operating systemif (the platform endpoint ARN is not stored) # this is a first-time registration call create platform endpoint store the returned platform endpoint ARNendif

call get endpoint attributes on the platform endpoint ARN

if (while getting the attributes a not-found exception is thrown) # the platform endpoint was deleted call create platform endpoint with the latest device token store the returned platform endpoint ARNelse if (the device token in the endpoint does not match the latest one) or (get endpoint attributes shows the endpoint as disabled) call set endpoint attributes to set the latest device token and then enable the platform endpoint

Versión de API 2010-03-3186

Page 94: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCreación de un punto de enlace de plataforma

y administración de tokens de dispositivos

endifendif

Este enfoque se puede utilizar siempre que la aplicación quiera registrarse o volver a registrarse. Tambiénse puede utilizar para notificar a Amazon SNS un cambio en el token del dispositivo. En este caso, solotiene que llamar a la acción con el valor de token del último dispositivo. Tenga en cuenta los elementossiguientes de este enfoque:

• Hay dos casos en los que puede llamar a la acción de crear un punto de enlace de plataforma. Puedellamarse justo al principio, cuando la aplicación no conoce su propio ARN de punto de enlace deplataforma, como es el caso durante un primer registro. También se puede llamar si la llamada inicial deacción de obtención de los atributos del punto de enlace genera un error con una excepción del tipo nose ha encontrado, como ocurriría si la aplicación conoce su ARN de punto de enlace, pero este se haeliminado.

• Se llama a la acción de obtención de los atributos del punto de enlace para verificar el estado del puntode enlace de plataforma, aunque dicho punto de enlace se acabe de crear. Esto ocurre cuando el puntode enlace de plataforma ya existe, pero está deshabilitado. En este caso, la acción de creación del puntode enlace de plataforma se realiza correctamente, pero no habilita el punto de enlace de plataforma,por lo que debe comprobar el estado del punto de enlace de plataforma antes de devolver el resultadocorrecto.

Ejemplo de JavaAquí tiene una implementación del pseudocódigo anterior en Java:

class RegistrationExample { AmazonSNSClient client = new AmazonSNSClient(); //provide credentials here private void registerWithSNS() { String endpointArn = retrieveEndpointArn(); String token = "Retrieved from the mobile operating system"; boolean updateNeeded = false; boolean createNeeded = (null == endpointArn); if (createNeeded) { // No platform endpoint ARN is stored; need to call createEndpoint. endpointArn = createEndpoint(); createNeeded = false; } System.out.println("Retrieving platform endpoint data..."); // Look up the platform endpoint and make sure the data in it is current, even if // it was just created. try { GetEndpointAttributesRequest geaReq = new GetEndpointAttributesRequest() .withEndpointArn(endpointArn); GetEndpointAttributesResult geaRes = client.getEndpointAttributes(geaReq); updateNeeded = !geaRes.getAttributes().get("Token").equals(token) || !geaRes.getAttributes().get("Enabled").equalsIgnoreCase("true"); } catch (NotFoundException nfe) { // We had a stored ARN, but the platform endpoint associated with it // disappeared. Recreate it. createNeeded = true;

Versión de API 2010-03-3187

Page 95: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCreación de un punto de enlace de plataforma

y administración de tokens de dispositivos

} if (createNeeded) { createEndpoint(); } System.out.println("updateNeeded = " + updateNeeded

if (updateNeeded) { // The platform endpoint is out of sync with the current data; // update the token and enable it. System.out.println("Updating platform endpoint " + endpointArn); Map attribs = new HashMap(); attribs.put("Token", token); attribs.put("Enabled", "true"); SetEndpointAttributesRequest saeReq = new SetEndpointAttributesRequest() .withEndpointArn(endpointArn) .withAttributes(attribs); client.setEndpointAttributes(saeReq); } } /** * @return never null * */ private String createEndpoint() { String endpointArn = null; try { System.out.println("Creating platform endpoint with token " + token); CreatePlatformEndpointRequest cpeReq = new CreatePlatformEndpointRequest() .withPlatformApplicationArn(applicationArn) .withToken(token); CreatePlatformEndpointResult cpeRes = client .createPlatformEndpoint(cpeReq); endpointArn = cpeRes.getEndpointArn(); } catch (InvalidParameterException ipe) { String message = ipe.getErrorMessage(); System.out.println("Exception message: " + message); Pattern p = Pattern .compile(".*Endpoint (arn:aws:sns[^ ]+) already exists " + "with the same token.*"); Matcher m = p.matcher(message); if (m.matches()) { // The platform endpoint already exists for this token, but with // additional custom data that // createEndpoint doesn't want to overwrite. Just use the // existing platform endpoint. endpointArn = m.group(1); } else { // Rethrow the exception, the input is actually bad. throw ipe; } } storeEndpointArn(endpointArn); return endpointArn; } /** * @return the ARN the app was registered under previously, or null if no * platform endpoint ARN is stored. */ private String retrieveEndpointArn() { // Retrieve the platform endpoint ARN from permanent storage,

Versión de API 2010-03-3188

Page 96: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCreación de un punto de enlace de plataforma

y administración de tokens de dispositivos

// or return null if null is stored. return arnStorage; } /** * Stores the platform endpoint ARN in permanent storage for lookup next time. * */ private void storeEndpointArn(String endpointArn) { // Write the platform endpoint ARN to permanent storage. arnStorage = endpointArn; }}

En esta implementación es interesante observar cómo se controla el códigoInvalidParameterException en el método createEndpoint. Amazon SNS rechaza las solicitudesde creación de puntos de enlace de plataforma cuando un punto de enlace de plataforma ya existentetenga el mismo token de dispositivo y un campo CustomUserData que no es nulo, ya que la alternativa essobrescribir (y, por lo tanto, perder) CustomUserData. El método createEndpoint del código anteriorcaptura el InvalidParameterException enviado por Amazon SNS, comprueba si se ha enviado poreste motivo en concreto y, en caso afirmativo, extrae el ARN del punto de enlace de plataforma existentede la excepción. Esto se realiza correctamente, dado que existe un punto de enlace de plataforma con eltoken de dispositivo correcto.

Para obtener más información, consulte Uso de API de inserción en móvil de Amazon SNS (p. 100).

Solución de problemasLlamada repetida de la creación de un punto de enlace de plataforma con untoken de dispositivo obsoleto

Especialmente para los puntos de enlace GCM, puede que piense que es mejor almacenar el primertoken de dispositivo generado por la aplicación y llamar a la creación de punto de enlace de plataformacon dicho token de dispositivo cada vez que se inicia la aplicación. Esto puede parecer correcto, dadoque la aplicación no tiene que administrar el estado del token de dispositivo y Amazon SNS actualizaráautomáticamente el token de dispositivo a su valor más reciente. Sin embargo, esta solución presenta unaserie de problemas graves:

• Amazon SNS depende de los comentarios de GCM para actualizar los tokens de dispositivo caducadosen tokens de dispositivo nuevos. GCM conserva información en tokens de dispositivo antiguos duranteun tiempo, aunque no de forma indefinida. Cuando GCM se olvide de la conexión entre el token dedispositivo antiguo y el nuevo, Amazon SNS ya no podrá actualizar el token de dispositivo almacenadoen el punto de enlace de plataforma en su valor correcto; en su lugar, deshabilitará el punto de enlace deplataforma.

• La aplicación de plataforma contendrá varios puntos de enlace de plataforma correspondientes al mismotoken de dispositivo.

• Amazon SNS impone un límite al número de puntos de enlace de plataforma que se pueden crearcomenzando por el mismo token de dispositivo. Al final, la creación de los nuevos puntos de enlacegenerará un error con la excepción de parámetro no válido y el siguiente mensaje de error: "Thisendpoint is already registered with a different token".

Reactivación de un punto de enlace de plataforma asociado a un token dedispositivo no válido

Cuando una plataforma móvil (como APNS o GCM) informa a Amazon SNS que el token de dispositivoutilizado en la solicitud de publicación no es válido, Amazon SNS deshabilita el punto de enlace deplataforma asociado a ese token de dispositivo. A continuación, Amazon SNS rechaza las publicaciones

Versión de API 2010-03-3189

Page 97: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje directo a un dispositivo móvil

posteriores que se efectúen en ese token de dispositivo. Aunque le parezca que es mejor volver aactivar el punto de enlace de plataforma y seguir publicando, en la mayoría de los casos esta solución nofunciona: los mensajes que se publican no se entregan y el punto de enlace de plataforma se vuelve adesactivar poco después.

Esto se debe a que el token de dispositivo asociado al punto de enlace de plataforma en realidad no esválido. Las entregas que se le hacen no pueden realizarse correctamente, puesto que el token ya nocorresponde a ninguna aplicación instalada. La siguiente vez que se publique en él, la plataforma móvilvolverá a informar a Amazon SNS de que el token de dispositivo no es válido y Amazon SNS volverá adeshabilitar el punto de enlace de plataforma.

Para volver a habilitar un punto de enlace de plataforma desactivado, debe asociarlo a un token dedispositivo válido (con una llamada de acción de definición de atributos de punto de enlace) y despuéshabilitarlo. Solo entonces las entregas a dicho punto de enlace de plataforma se realizarán correctamente.La única vez en que volver a habilitar un punto de enlace de plataforma sin actualizar su token dedispositivo funcione será cuando un token de dispositivo que no era válido y estaba asociado a dicho puntode enlace vuelva a ser válido. Esto puede ocurrir, por ejemplo, cuando se desinstala una aplicación y sevuelve a instalar en el mismo dispositivo móvil y recibe el mismo token de dispositivo. El enfoque queacabamos de presentar realiza esta operación asegurándose de volver a habilitar un punto de enlace deplataforma solo después de comprobar que el token de dispositivo que tiene asociado es el más actualdisponible.

Envío de un mensaje directo a un dispositivo móvilPuede enviar mensajes de notificación de inserción de Amazon SNS directamente a un punto de enlaceque represente una aplicación y un dispositivo móvil, completando los pasos siguientes.

Para enviar un mensaje directo

1. Vaya a https://console.aws.amazon.com/sns/v2/home.2. En el panel Navigation de la izquierda, haga clic en Apps y, a continuación, haga clic en la aplicación a

la que desea enviar un mensaje.3. En la pantalla Application Details, seleccione Endpoint Actions y, a continuación, haga clic en Publish.4. En el cuadro de diálogo Publish, escriba el mensaje que aparecerá en la aplicación, en el dispositivo

móvil y, a continuación, haga clic en Publish.

El mensaje de notificación se enviará desde Amazon SNS al servicio de notificación de plataforma, elcual lo enviará a la aplicación.

Envío de mensajes a dispositivos móviles suscritos aun temaTambién puede utilizar Amazon SNS para enviar mensajes a puntos de enlace móviles suscritos a untema. El concepto es el mismo que para la suscripción de otros tipos de puntos de enlace, como AmazonSQS, HTTP/S, correo electrónico y SMS, a un tema, tal y como se describe en ¿Qué es Amazon SimpleNotification Service? (p. 1). La diferencia radica en que Amazon SNS se comunica por medio de serviciosde notificación para que los puntos de enlace móviles suscritos reciban las notificaciones enviadas al tema.

Para realizar envíos a los puntos de enlace suscritos a un tema

1. Siga los pasos tal y como se describe en Suscripción a un tema (p. 6). Solo tiene que seleccionarApplication en el menú desplegable Protocol y escribir el nombre de recurso de Amazon (ARN) delpunto de enlace móvil en el cuadro Endpoint.

Versión de API 2010-03-3190

Page 98: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de cargas específicas de plataforma

personalizadas a dispositivos móviles

2. Siga los pasos para publicar mensajes en un tema, tal y como se describe en Publicación de untema (p. 7), todos los puntos de enlace móviles suscritos al tema recibirán un mensaje.

Envío de cargas específicas de plataformapersonalizadas en mensajes a dispositivos móvilesPuede utilizar las API o la consola de Amazon SNS para enviar cargas específicas de plataformapersonalizadas en mensajes a dispositivos móviles. En las secciones siguientes se describe cómo utilizarla consola de Amazon SNS para crear y enviar cargas específicas de plataforma personalizadas paracada uno de los servicios de notificaciones admitidos. Para obtener información sobre cómo usar las APIde Amazon SNS, consulte Uso de API de inserción en móvil de Amazon SNS (p. 100) y el archivo demuestra de AWS SNSMobilePush.java, que se encuentra en el archivo snsmobilepush.zip.

Datos de mensaje con formato JSONCuando envíe cargas específicas de plataforma en mensajes mediante la consola de Amazon SNS, losdatos deben ser cadenas de clave-valor y tener el formato JSON con comillas con caracteres de escape.En el siguiente ejemplo, que incluye formato y espacios para mejorar su lectura, se muestra un mensajepersonalizado de muestra para la plataforma GCM con el par clave-valor en el cuerpo del mensaje y elformato JSON.

{ "GCM":"{ "data":{ "message":"Check out these awesome deals!", "url":"www.amazon.com" } }"}

Cuando envíe mensajes utilizando la consola, debe poner a las comillas un carácter de escape (\"), tal ycomo muestra en el siguiente ejemplo.

{ "GCM":"{ \"data\":{ \"message\":\"Check out these awesome deals!\", \"url\":\"www.amazon.com\" } }"}

Cuando se especifique en la consola de Amazon SNS, el ejemplo debería tener un aspecto similar alsiguiente:

{"GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}"}

Versión de API 2010-03-3191

Page 99: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de cargas específicas de plataforma

personalizadas a dispositivos móviles

Pares de clave-valor específicos de plataformaAdemás de enviar datos personalizados como pares de clave-valor, también puede enviar pares de clave-valor específicos de plataforma en la carga de JSON. Por ejemplo, si quiere incluir los parámetros deGCM time_to_live y collapse_key después de los pares de clave-valor de los datos personalizadosincluidos en el parámetro de GCM data, la carga de JSON sin comillas que tengan caracteres de escapetendrá un aspecto similar al siguiente:

{ "GCM":"{ "data":{ "message":"Check out these awesome deals!", "url":"www.amazon.com" }, "time_to_live": 3600, "collapse_key": "deals" }"}

Cuando se especifique en la consola de Amazon SNS, el ejemplo debería tener un aspecto similar alsiguiente:

{ "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"},\"time_to_live\": 3600,\"collapse_key\":\"deals\"}"}

Para obtener una lista de los pares de clave-valor admitidos en cada uno de los servicios de notificación deinserción admitidos en Amazon SNS, consulte los enlaces siguientes:

• APNS: Apple Push Notification Service• GCM: HTTP Connection Server Reference• ADM: envío de un mensaje

Mensajes enviados a una aplicación en varias plataformasPara enviar un mensaje a una aplicación instalada en dispositivos de varias plataformas, como GCM yAPNS, primero debe suscribir los puntos de enlace móviles a un tema de Amazon SNS y, a continuación,publicar el mensaje en el tema. El siguiente ejemplo muestra un mensaje que debe enviarse a puntos deenlace móviles suscritos en APNS, GCM y ADM:

{ "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for one of the notification platforms.", "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }","GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}","ADM": "{ \"data\": { \"message\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\" }}" }

Versión de API 2010-03-3192

Page 100: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAtributos de aplicación para el

estado de entrega de los mensajes

Uso de los atributos de aplicación de Amazon SNSpara el estado de entrega de los mensajes

Amazon Simple Notification Service (Amazon SNS) permite registrar el estado de entrega de los mensajesde notificaciones push. Después de configurar los atributos de aplicación, se envían entradas de log aCloudWatch Logs para los mensajes enviados desde Amazon SNS a puntos de enlace móviles. El log delestado de entrega de los mensajes aporta información operativa de mejor calidad, como la siguiente:

• Saber si Amazon SNS ha entregado un mensaje de notificación push al servicio de notificaciones push• Identificar la respuesta enviada por el servicio de notificaciones push a Amazon SNS• Determinar el tiempo de permanencia del mensaje (el tiempo entre la marca temporal de publicación y

justo antes de entregarlo a un servicio de notificaciones push)

Para configurar los atributos de aplicación para el estado de entrega del mensaje, puede utilizar la Consolade administración de AWS, los kits de desarrollo de software (SDK) de AWS o la API de consulta.

Temas• Configuración de los atributos del estado de entrega del mensaje con la Consola de administración de

AWS (p. 93)• Ejemplos de logs de CloudWatch de estado de entrega de mensajes de Amazon SNS (p. 94)• Configuración de atributos de estado de entrega de mensajes con los SDK de AWS (p. 94)• Códigos de respuesta de la plataforma (p. 95)

Configuración de los atributos del estado de entregadel mensaje con la Consola de administración de AWSPuede configurar atributos de estado de entrega del mensaje con la Consola de administración de AWS.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel Navigation de la izquierda, haga clic en Apps y después en la aplicación que contiene lospuntos de enlace para los que desea recibir CloudWatch Logs.

3. Haga clic en Application Actions y después en Delivery Status.4. En el cuadro de diálogo Delivery Status, haga clic en Create IAM Roles.

Se le redirigirá a la consola de IAM.5. Haga clic en Allow para conceder a Amazon SNS acceso de escritura para utilizar CloudWatch Logs

en su nombre.6. Ahora, vuelva al cuadro de diálogo Delivery Status y escriba un número en el campo Percentage of

Success to Sample (0-100) para indicar el porcentaje de mensajes enviados correctamente para losque desea recibir CloudWatch Logs.

Note

Una vez que haya configurado los atributos de aplicación del estado de entrega del mensaje,todas las entregas de mensaje que hayan resultado erróneas generarán un CloudWatchLogs.

7. Por último, haga clic en Save Configuration. Ahora podrá ver y analizar los CloudWatch Logs quecontienen el estado de entrega del mensaje. Para obtener más información sobre el uso de losCloudWatch consulte la documentación de CloudWatch.

Versión de API 2010-03-3193

Page 101: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplos de logs de CloudWatch de estadode entrega de mensajes de Amazon SNS

Ejemplos de logs de CloudWatch de estado deentrega de mensajes de Amazon SNSUna vez que haya configurado los atributos de estado de entrega de mensajes para el punto de enlace deuna aplicación, se generarán CloudWatch Logs. A continuación, se muestran logs de ejemplo en formatoJSON:

SUCCESS

{ "status": "SUCCESS", "notification": { "timestamp": "2015-01-26 23:07:39.54", "messageId": "9655abe4-6ed6-5734-89f7-e6a6a42de02a" }, "delivery": { "statusCode": 200, "dwellTimeMs": 65, "token": "Examplei7fFachkJ1xjlqT64RaBkcGHochmf1VQAr9k-IBJtKjp7fedYPzEwT_Pq3Tu0lroqro1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw", "attempts": 1, "providerResponse": "{\"multicast_id\":5138139752481671853,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1422313659698010%d6ba8edff9fd7ecd\"}]}", "destination": "arn:aws:sns:us-east-1:111122223333:endpoint/GCM/GCMPushApp/c23e42de-3699-3639-84dd-65f84474629d" }}

FAILURE

{ "status": "FAILURE", "notification": { "timestamp": "2015-01-26 23:29:35.678", "messageId": "c3ad79b0-8996-550a-8bfa-24f05989898f" }, "delivery": { "statusCode": 8, "dwellTimeMs": 1451, "token": "examp1e29z6j5c4df46f809505189c4c83fjcgf7f6257e98542d2jt3395kj73", "attempts": 1, "providerResponse": "NotificationErrorResponse(command=8, status=InvalidToken, id=1, cause=null)", "destination": "arn:aws:sns:us-east-1:111122223333:endpoint/APNS_SANDBOX/APNSPushApp/986cb8a1-4f6b-34b1-9a1b-d9e9cb553944" } }

Para obtener una lista de códigos de respuesta del servicio de notificaciones push, consulte Códigos derespuesta de la plataforma (p. 95).

Configuración de atributos de estado de entrega demensajes con los SDK de AWSLos SDK de AWS proporcionan API en varios lenguajes para utilizar atributos de estado de entrega demensajes con Amazon SNS.

Versión de API 2010-03-3194

Page 102: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCódigos de respuesta de la plataforma

El ejemplo de Java siguiente muestra cómo utilizar la API SetPlatformApplicationAttributespara configurar atributos de aplicación para el estado de entrega de los mensajes denotificaciones push. Puede utilizar los atributos siguientes para el estado de entrega de mensajes:SuccessFeedbackRoleArn, FailureFeedbackRoleArn y SuccessFeedbackSampleRate.Los atributos SuccessFeedbackRoleArn y FailureFeedbackRoleArn se utilizan para dara Amazon SNS acceso de escritura para utilizar CloudWatch Logs en su nombre. El atributoSuccessFeedbackSampleRate permite especificar el porcentaje de la frecuencia de muestreo (0-100)de los mensajes entregados correctamente. Después configure el atributo FailureFeedbackRoleArn;todas las entregas de mensajes erróneas generarán CloudWatch Logs.

SetPlatformApplicationAttributesRequest setPlatformApplicationAttributesRequest = new SetPlatformApplicationAttributesRequest();Map<String, String> attributes = new HashMap<>();attributes.put("SuccessFeedbackRoleArn", "arn:aws:iam::111122223333:role/SNS_CWlogs");attributes.put("FailureFeedbackRoleArn", "arn:aws:iam::111122223333:role/SNS_CWlogs");attributes.put("SuccessFeedbackSampleRate", "5");setPlatformApplicationAttributesRequest.withAttributes(attributes);setPlatformApplicationAttributesRequest.setPlatformApplicationArn("arn:aws:sns:us-west-2:111122223333:app/GCM/GCMPushApp");sns.setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest);

Para obtener más información acerca de SDK para Java, consulte Introducción a AWS SDK for Java.

Códigos de respuesta de la plataformaA continuación se incluye una lista de enlaces de códigos de respuesta del servicio de notificaciones push:

Servicio de notificaciones automatizado Códigos de respuesta

Amazon Device Messaging (ADM) Consulte Response Format en Sending a Messagevia Amazon Device Messaging

Apple Push Notification Service (APNS) Consulte HTTP/2 Response from APNs enCommunicating with APNs.

Google Cloud Messaging for Android (GCM) Consulte Downstream message error responsecodes en la referencia del servidor de conexiónGCM

Microsoft Push Notification Service for WindowsPhone (MPNS)

Consulte Push Notification Service response codes

Windows Push Notification Services (WNS) Consulte "Códigos de respuesta" en Encabezadosde respuesta y solicitud del servicio denotificaciones de inserción

Notificaciones de evento de aplicaciónAmazon SNS proporciona compatibilidad con la activación de notificaciones cuando se producendeterminados eventos de aplicación. Después puede ejecutar algunas acciones por programación en dichoevento. Su aplicación debe ser compatible con un servicio de notificaciones de inserción como Apple PushNotification Service (APNS), Google Cloud Messaging for Android (GCM) y Windows Push NotificationServices (WNS). Defina las notificaciones de evento de aplicación usando la consola de Amazon SNS, lainterfaz de línea de comandos de AWS o los SDK de AWS.

Temas

Versión de API 2010-03-3195

Page 103: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEventos de aplicación disponibles

• Eventos de aplicación disponibles (p. 96)• Envío de notificaciones de eventos de aplicaciones (p. 96)

Eventos de aplicación disponiblesLas notificaciones de evento de aplicación hacen un seguimiento de cuándo se crean, eliminan oactualizan los puntos de enlace individuales de la plataforma, así como los errores de entrega. El nombrede atributo de cada evento de aplicación es el siguiente:

Nombre de atributo Descripción

EventEndpointCreated Se activa una notificación cuando se añade un nuevo punto de enlace de laplataforma a su aplicación.

EventEndpointDeleted Se activa una notificación cuando se elimina cualquiera de los puntos deenlace de la plataforma asociados a su aplicación.

EventEndpointUpdated Se activa una notificación cuando se cambia cualquiera de los atributos delos puntos de enlace de la plataforma asociados a su aplicación.

EventDeliveryFailure Se activa una notificación cuando una entrega a cualquiera de los puntosde enlace de la plataforma asociados a su aplicación encuentra en un errorpermanente.

Note

Para realizar un seguimiento de los errores de entrega en el ladode la aplicación de la plataforma, suscríbase a los eventos deestado de entrega de la aplicación. Para obtener más información,consulte Using Amazon SNS Application Attributes for MessageDelivery Status.

Cada uno de los atributos anteriores puede asociarse a una aplicación. La aplicación, a su vez, puederecibir estas notificaciones de eventos.

Envío de notificaciones de eventos de aplicacionesPara enviar notificaciones de eventos de la aplicación, debe especificar un tema para recibir lasnotificaciones de cada tipo de evento. Como Amazon SNS envía las notificaciones, el tema puededireccionarlas a los puntos de enlace que adoptarán medidas programáticas.

Important

Las aplicaciones de alto volumen crearán un gran número de notificaciones de eventos de laaplicación (por ejemplo, decenas de miles), que sobrepasarán los puntos de enlace destinadosa uso humano, como, por ejemplo, números de teléfono, direcciones de correo electrónico yaplicaciones móviles. Tenga en cuenta las siguientes directrices cuando envíe notificaciones deeventos de la aplicación a un tema:

• Cada tema que recibe notificaciones debe contener solo suscripciones de puntos de enlaceprogramáticos, como puntos de enlace HTTP o HTTPS, colas Amazon SQS o funciones deAWS Lambda.

• Para reducir la cantidad de procesamiento que las notificaciones activan, limite lassuscripciones de cada tema a un número reducido (por ejemplo, cinco o menos).

Versión de API 2010-03-3196

Page 104: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de notificaciones de eventos de aplicaciones

Puede enviar notificaciones de eventos de la aplicación a través de la consola de Amazon SNS, la AWSCommand Line Interface (AWS CLI) o el SDK de AWS.

Consola de administración de AWS1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://

console.aws.amazon.com/sns/v2/home.2. En el panel de navegación de servicio, elija Applications.3. Elija el nombre de la aplicación para la que desee enviar notificaciones de eventos.4. Elija Actions, Configure events.5. Para cada uno de los eventos para los que desee enviar notificaciones de eventos, escriba el ARN del

tema Amazon SNS que recibirá las notificaciones.6. Elija Save configuration. Las notificaciones de eventos están establecidas.

AWS CLIEjecute el comando set-platform-application-attributes.

En el siguiente ejemplo se establece el mismo tema de Amazon SNS para los cuatro eventos deaplicación:

aws sns set-platform-application-attributes--platform-application-arn arn:aws:sns:us-east-1:12345EXAMPLE:app/GCM/MyGCMPlatformApplication--attributes EventEndpointCreated="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents",EventEndpointDeleted="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents",EventEndpointUpdated="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents",EventDeliveryFailure="arn:aws:sns:us-east-1:12345EXAMPLE:MyGCMPlatformApplicationEvents"

&SDK de AWSLlame a una de las siguientes API, según su lenguaje de programación o plataforma de destino:

Lenguaje o plataforma deprogramación

Enlaces de referencia de API

Android setPlatformApplicationAttributes

iOS AWSSNSSetPlatformApplicationAttributesInput

Java setPlatformApplicationAttributes

JavaScript setPlatformApplicationAttributes

.NET SetPlatformApplicationAttributes

PHP SetPlatformApplicationAttributes

Python (boto) set_platform_application_attributes

Ruby set_platform_application_attributes

Unity SetPlatformApplicationAttributesAsync

Versión de API 2010-03-3197

Page 105: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorTTL de Amazon SNS

Lenguaje o plataforma deprogramación

Enlaces de referencia de API

Windows PowerShell Set-SNSPlatformApplicationAttributes

Utilización del atributo de mensaje de tiempo devida (TTL) de Amazon SNS para las notificacionesde inserción en móvil

Amazon Simple Notification Service (Amazon SNS) admite la configuración de un atributo de mensajede tiempo de vida (TTL) para los mensajes de notificaciones de inserción en móvil. Esto se suma a lacapacidad de configuración del TTL dentro del cuerpo del mensaje de Amazon SNS para los servicios denotificaciones de inserción en móvil compatibles con dicha capacidad, como Amazon Device Messaging(ADM) y Google Cloud Messaging for Android (GCM).

El atributo de mensaje TTL se utiliza para especificar metadatos de vencimiento de un mensaje. Esto lepermite especificar de cuánto tiempo dispone el servicio de notificaciones de inserción, como Apple PushNotification Service (APNS) o GCM, para entregar el mensaje al punto de enlace. Si, por algún motivo,(por ejemplo, el dispositivo móvil se ha apagado) no se puede entregar el mensaje en el TTL especificado,se abandonará dicho mensaje y no se realizará ningún otro intento de entrega. Para especificar el TTLen los atributos del mensaje, puede utilizar la Consola de administración de AWS, los kit de desarrollo desoftware de AWS (SDK) o la API de consulta.

Temas• Atributos del mensaje TTL para los servicios de notificación de inserción (p. 98)• Orden de prioridad al determinar el TTL (p. 99)• Especificación del TTL con la Consola de administración de AWS (p. 99)• Especificación del TTL con los SDK de AWS (p. 99)

Atributos del mensaje TTL para los servicios denotificación de inserciónA continuación se ofrece una lista de atributos de mensaje TTL para los servicios de notificaciones deinserción que puede utilizar para establecer cuándo utilizar los SDK de AWS o la API de consulta:

Servicio de notificaciones automatizado Atributo de mensaje TTL

Amazon Device Messaging (ADM) AWS.SNS.MOBILE.ADM.TTL

Apple Push Notification Service (APNS) AWS.SNS.MOBILE.APNS.TTL

Entorno de pruebas de Apple Push NotificationService (APNS_SANDBOX)

AWS.SNS.MOBILE.APNS_SANDBOX.TTL

Baidu Cloud Push (Baidu) AWS.SNS.MOBILE.BAIDU.TTL

Google Cloud Messaging for Android (GCM) AWS.SNS.MOBILE.GCM.TTL

Windows Push Notification Services (WNS) AWS.SNS.MOBILE.WNS.TTL

Versión de API 2010-03-3198

Page 106: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorOrden de prioridad al determinar el TTL

Cada servicio de notificaciones de inserción administra el TTL de forma distinta. Amazon SNS proporcionauna vista resumida de TTL de todos los servicios de notificaciones de inserción, lo que facilita laespecificación del TTL. Si utiliza la Consola de administración de AWS para especificar el TTL (ensegundos), solo tendrá que especificar el valor de TTL una vez y Amazon SNS lo calculará para cada unode los servicios de notificaciones de inserción seleccionados al publicar el mensaje.

El TTL depende de la hora de publicación. Antes de entregar un mensaje de notificación de inserción aun servicio de notificaciones de inserción concreto, Amazon SNS calcula el tiempo de permanencia (lamarca de tiempo entre la publicación y el momento previo a la entrega de un servicio de notificacionesde inserción) de la notificación de inserción y traslada el resto del TTL al servicio de notificaciones deinserción específico. Si TTL es inferior al tiempo de permanencia, Amazon SNS no intentará publicar.

Si especifica un TTL para un mensaje de notificación de inserción, el valor TTL debe ser un númeroentero positivo, a menos que el valor 0 tenga un significado específico para el servicio de notificacionesde inserción, como es el caso en APNS y GCM. Si el valor de TTL está establecido en 0 y el serviciode notificaciones de inserción no tiene un significado específico para este 0, Amazon SNS eliminará elmensaje. Para obtener más información sobre el parámetro TTL establecido en 0 cuando utiliza APNS,consulte Table A-3 Item identifiers for remote notifications en la documentación Binary Provider API. Paraobtener más información sobre el parámetro TTL establecido en 0 cuando utiliza GCM, consulte Lifetime ofa message.

Orden de prioridad al determinar el TTLLa prioridad que Amazon SNS utiliza para determinar el TTL de un mensaje de notificación de inserciónsigue el orden siguiente, donde el número más bajo tiene la máxima prioridad:

1. TTL del atributo de mensaje2. TTL del cuerpo del mensaje3. TTL predeterminado del servicio de notificaciones de inserción (varía según el servicio)4. TTL predeterminado de Amazon SNS (4 semanas)

Si configura diferentes valores de TTL (uno en los atributos del mensaje y otro en el cuerpo del mensaje)para el mismo mensaje, Amazon SNS modificará el TTL del cuerpo del mensaje para que coincida con elTTL especificado en el atributo del mensaje.

Especificación del TTL con la Consola deadministración de AWSPuede especificar el TTL con la Consola de administración de AWS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel Navigation de la izquierda, haga clic en Apps y después en la aplicación que tiene lospuntos de enlace cuyo TTL quiere establecer para la publicación de mensajes.

3. Seleccione los puntos de enlace donde se publicará el mensaje, haga clic en Endpoint Actions y, acontinuación, en Publish.

4. En el cuadro de diálogo Publish, escriba el número de segundos de Time to Live (TTL) y, acontinuación, haga clic en Publish Message.

Especificación del TTL con los SDK de AWSLos SDK de AWS proporcionan API en varios idiomas para utilizar el TTL con Amazon SNS.

Versión de API 2010-03-3199

Page 107: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAPI de inserción en móvil de Amazon SNS

Para obtener más información acerca de SDK para Java, consulte Getting Started with the AWS SDK forJava.

El siguiente ejemplo de Java muestra cómo configurar un atributo de mensaje TTL y cómo publicar elmensaje en un punto de enlace, que en este ejemplo se registra en Baidu Cloud Push:

Map<String, MessageAttributeValue> messageAttributes = new HashMap<String, MessageAttributeValue>();

// Insert your desired value (in seconds) of TTL here. For example, a TTL of 1 day would be 86,400 seconds. messageAttributes.put("AWS.SNS.MOBILE.BAIDU.TTL", new MessageAttributeValue().withDataType("String").withStringValue("86400"));

PublishRequest publishRequest = new PublishRequest();publishRequest.setMessageAttributes(messageAttributes);String message = "{\"title\":\"Test_Title\",\"description\":\"Test_Description\"}";publishRequest.setMessage(message);publishRequest.setMessageStructure("json");publishRequest.setTargetArn("arn:aws:sns:us-east-1:999999999999:endpoint/BAIDU/TestApp/318fc7b3-bc53-3d63-ac42-e359468ac730");PublishResult publishResult = snsClient.publish(publishRequest);

Para obtener más información sobre cómo usar los atributos del mensaje con Amazon SNS, consulte Usode los atributos de mensajes de Amazon SNS (p. 183).

Uso de API de inserción en móvil de Amazon SNSPara utilizar las API de inserciones móviles de Amazon SNS, primero debe cumplir los requisitos previosdel servicio de notificaciones de inserción, como Apple Push Notification Service (APNS) y Google CloudMessaging for Android (GCM). Para obtener más información acerca de los requisitos previos, consulteRequisitos previos (p. 39).

Para enviar un mensaje de notificación de inserción a un dispositivo y una aplicación móvil mediantelas API, primero debe ejecutar la acción CreatePlatformApplication, que devuelve un atributoPlatformApplicationArn. A continuación, CreatePlatformEndpoint utiliza el atributoPlatformApplicationArn y obtiene un atributo EndpointArn. Después puede utilizar el atributoEndpointArn con la acción Publish para enviar un mensaje de notificación a un dispositivo y unaaplicación móvil, o bien puede utilizar el atributo EndpointArn con la acción Subscribe para suscribirsea un tema. Para obtener más información, consulte Información de los pasos generales de la inserción enmóvil de Amazon SNS (p. 40).

A continuación, se muestra cómo son las API de inserción en móvil de Amazon SNS:

CreatePlatformApplication

Crea un objeto de aplicación de plataforma para uno de los servicios de notificación de inserciónadmitidos, como APNS o GCM, en el que se pueden registrar dispositivos y aplicaciones móviles.Devuelve un atributo PlatformApplicationArn, que la acción CreatePlatformEndpoint utiliza.

CreatePlatformEndpoint

Crea un punto de enlace para un dispositivo y una aplicación móvil en uno de los serviciosde notificación de inserción admitidos. CreatePlatformEndpoint utiliza el atributoPlatformApplicationArn que la acción CreatePlatformApplication devuelve. El atributoEndpointArn, que se devuelve cuando se usa CreatePlatformEndpoint, se utiliza con la acciónPublish para enviar un mensaje de notificación a una aplicación móvil y un dispositivo.

Versión de API 2010-03-31100

Page 108: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

CreateTopic

Crea un tema en el que se pueden publicar mensajes.DeleteEndpoint

Elimina el punto de enlace de un dispositivo y una aplicación móvil en uno de los servicios denotificación de inserción admitidos.

DeletePlatformApplication

Elimina un objeto de aplicación de plataforma.DeleteTopic

Elimina un tema y todas sus suscripciones.GetEndpointAttributes

Recupera los atributos del punto de enlace de un dispositivo y una aplicación móvil.GetPlatformApplicationAttributes

Recupera los atributos del objeto de aplicación de plataforma.ListEndpointsByPlatformApplication

Genera una lista de los puntos de enlace y los atributos de los puntos de enlace de los dispositivos yaplicaciones móviles de un servicio de notificaciones de inserción compatible.

ListPlatformApplications

Genera una lista de objetos de aplicación de plataforma para los servicios de notificación de insercióncompatibles.

Publish

Envía un mensaje de notificación a todos los puntos de enlace suscritos a un tema.SetEndpointAttributes

Establece los atributos de un punto de enlace de un dispositivo y una aplicación móvil.SetPlatformApplicationAttributes

Establece los atributos del objeto de aplicación de plataforma.Subscribe

Prepara la suscripción de un punto de enlace enviando a dicho punto de enlace un mensaje deconfirmación. Para crear en realidad una suscripción, el propietario del punto de enlace debe llamar ala acción ConfirmSubscription con el token del mensaje de confirmación.

Unsubscribe

Elimina una suscripción.

Errores de API para las inserciones móviles deAmazon SNS

En la siguiente tabla se muestran los errores que las API de Amazon SNS devuelven para insercionesmóviles. Para obtener más información acerca de las API de Amazon SNS para inserciones móviles,consulte Uso de API de inserción en móvil de Amazon SNS (p. 100).

Versión de API 2010-03-31101

Page 109: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

Application Name is nullstring

El nombre de aplicaciónsolicitado estáestablecido en null.

400 CreatePlatformApplication

Platform Name is nullstring

El nombre de plataformasolicitado estáestablecido en null.

400 CreatePlatformApplication

Platform Name is invalid Se ha proporcionado unvalor no válido o fuerade rango para el nombrede la plataforma.

400 CreatePlatformApplication

APNS — Principal is nota valid certificate

Se ha proporcionadoun certificado noválido para el principalde APNS, que esel certificado SSL.Para obtener másinformación, consulteCreatePlatformApplicationen la Amazon SimpleNotification Service APIReference.

400 CreatePlatformApplication

APNS — Principal isa valid cert but not ina .pem format

Se ha proporcionado uncertificado válido que noestá en formato .pempara el principal deAPNS, que es elcertificado SSL.

400 CreatePlatformApplication

APNS — Principal is anexpired certificate

Se ha proporcionadoun certificado caducadopara el principal deAPNS, que es elcertificado SSL.

400 CreatePlatformApplication

APNS — Principal isnot an Apple issuedcertificate

Se ha proporcionadoun certificado que no hagenerado Apple para elprincipal de APNS, quees el certificado SSL.

400 CreatePlatformApplication

APNS — Principal is notprovided

El principal de APNS,que es el certificadoSSL, no se haproporcionado.

400 CreatePlatformApplication

APNS — Credential isnot provided

La credencial de APNS,que es la clave privada,no se ha proporcionado.Para obtener másinformación, consulteCreatePlatformApplication

400 CreatePlatformApplication

Versión de API 2010-03-31102

Page 110: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

en la Amazon SimpleNotification Service APIReference.

APNS — Credentialare not in a valid .pemformat

La credencial de APNS,que es la clave privada,no está en formato .pemválido.

400 CreatePlatformApplication

GCM — serverAPIKeyis not provided

La credencial deGCM, que es la clavede la API, no seha proporcionado.Para obtener másinformación, consulteCreatePlatformApplicationen la Amazon SimpleNotification Service APIReference.

400 CreatePlatformApplication

GCM — serverAPIKeyis empty

La credencial de GCM,que es la clave de API,está vacía.

400 CreatePlatformApplication

GCM — serverAPIKeyis a null string

La credencial de GCM,que es la clave de API,es nula.

400 CreatePlatformApplication

GCM — serverAPIKeyis invalid

La credencial de GCM,que es la clave de API,no es válida.

400 CreatePlatformApplication

ADM — clientsecret isnot provided

La clave secreta decliente requerida no seha proporcionado.

400 CreatePlatformApplication

ADM — clientsecret is anull string

La cadena requeridapara la clave secreta decliente es nula.

400 CreatePlatformApplication

ADM — client_secret isempty string

La cadena requeridapara la clave secreta decliente está vacía.

400 CreatePlatformApplication

ADM — client_secret isnot valid

La cadena requeridapara la clave secreta decliente no es válida.

400 CreatePlatformApplication

ADM — client_id isempty string

La cadena requeridapara el ID de clienteestá vacía.

400 CreatePlatformApplication

ADM — clientId is notprovided

La cadena requeridapara el ID de cliente nose ha proporcionado.

400 CreatePlatformApplication

Versión de API 2010-03-31103

Page 111: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

ADM — clientid is a nullstring

La cadena requeridapara el ID de cliente esnula.

400 CreatePlatformApplication

ADM — client_id is notvalid

La cadena requeridapara el ID de cliente noes válida.

400 CreatePlatformApplication

EventEndpointCreatedhas invalid ARN format

EventEndpointCreatedtiene un formato deARN no válido.

400 CreatePlatformApplication

EventEndpointDeletedhas invalid ARN format

EventEndpointDeletedtiene un formato deARN no válido.

400 CreatePlatformApplication

EventEndpointUpdatedhas invalid ARN format

EventEndpointUpdatedtiene un formato deARN no válido.

400 CreatePlatformApplication

EventDeliveryAttemptFailurehas invalid ARN format

EventDeliveryAttemptFailuretiene un formato deARN no válido.

400 CreatePlatformApplication

EventDeliveryFailurehas invalid ARN format

EventDeliveryFailuretiene un formato deARN no válido.

400 CreatePlatformApplication

EventEndpointCreatedis not an existing Topic

EventEndpointCreatedno es un tema queexista.

400 CreatePlatformApplication

EventEndpointDeleted isnot an existing Topic

EventEndpointDeletedno es un tema queexista.

400 CreatePlatformApplication

EventEndpointUpdatedis not an existing Topic

EventEndpointUpdatedno es un tema queexista.

400 CreatePlatformApplication

EventDeliveryAttemptFailureis not an existing Topic

EventDeliveryAttemptFailureno es un tema queexista.

400 CreatePlatformApplication

EventDeliveryFailure isnot an existing Topic

EventDeliveryFailure noes un tema que exista.

400 CreatePlatformApplication

Platform ARN is invalid El ARN de la plataformano es válido.

400 SetPlatformAttributes

Platform ARN is validbut does not belong tothe user

El ARN de la plataformaes válido, pero nopertenece al usuario.

400 SetPlatformAttributes

Versión de API 2010-03-31104

Page 112: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

APNS — Principal is nota valid certificate

Se ha proporcionadoun certificado noválido para el principalde APNS, que esel certificado SSL.Para obtener másinformación, consulteCreatePlatformApplicationen la Amazon SimpleNotification Service APIReference.

400 SetPlatformAttributes

APNS — Principal isa valid cert but not ina .pem format

Se ha proporcionado uncertificado válido que noestá en formato .pempara el principal deAPNS, que es elcertificado SSL.

400 SetPlatformAttributes

APNS — Principal is anexpired certificate

Se ha proporcionadoun certificado caducadopara el principal deAPNS, que es elcertificado SSL.

400 SetPlatformAttributes

APNS — Principal isnot an Apple issuedcertificate

Se ha proporcionadoun certificado que no hagenerado Apple para elprincipal de APNS, quees el certificado SSL.

400 SetPlatformAttributes

APNS — Principal is notprovided

El principal de APNS,que es el certificadoSSL, no se haproporcionado.

400 SetPlatformAttributes

APNS — Credential isnot provided

La credencial de APNS,que es la clave privada,no se ha proporcionado.Para obtener másinformación, consulteCreatePlatformApplicationen la Amazon SimpleNotification Service APIReference.

400 SetPlatformAttributes

APNS — Credentialare not in a valid .pemformat

La credencial de APNS,que es la clave privada,no está en formato .pemválido.

400 SetPlatformAttributes

Versión de API 2010-03-31105

Page 113: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

GCM — serverAPIKeyis not provided

La credencial deGCM, que es la clavede la API, no seha proporcionado.Para obtener másinformación, consulteCreatePlatformApplicationen la Amazon SimpleNotification Service APIReference.

400 SetPlatformAttributes

GCM — serverAPIKeyis a null string

La credencial de GCM,que es la clave de API,es nula.

400 SetPlatformAttributes

ADM — clientId is notprovided

La cadena requeridapara el ID de cliente nose ha proporcionado.

400 SetPlatformAttributes

ADM — clientid is a nullstring

La cadena requeridapara el ID de cliente esnula.

400 SetPlatformAttributes

ADM — clientsecret isnot provided

La clave secreta decliente requerida no seha proporcionado.

400 SetPlatformAttributes

ADM — clientsecret is anull string

La cadena requeridapara la clave secreta decliente es nula.

400 SetPlatformAttributes

EventEndpointUpdatedhas invalid ARN format

EventEndpointUpdatedtiene un formato deARN no válido.

400 SetPlatformAttributes

EventEndpointDeletedhas invalid ARN format

EventEndpointDeletedtiene un formato deARN no válido.

400 SetPlatformAttributes

EventEndpointUpdatedhas invalid ARN format

EventEndpointUpdatedtiene un formato deARN no válido.

400 SetPlatformAttributes

EventDeliveryAttemptFailurehas invalid ARN format

EventDeliveryAttemptFailuretiene un formato deARN no válido.

400 SetPlatformAttributes

EventDeliveryFailurehas invalid ARN format

EventDeliveryFailuretiene un formato deARN no válido.

400 SetPlatformAttributes

EventEndpointCreatedis not an existing Topic

EventEndpointCreatedno es un tema queexista.

400 SetPlatformAttributes

Versión de API 2010-03-31106

Page 114: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

EventEndpointDeleted isnot an existing Topic

EventEndpointDeletedno es un tema queexista.

400 SetPlatformAttributes

EventEndpointUpdatedis not an existing Topic

EventEndpointUpdatedno es un tema queexista.

400 SetPlatformAttributes

EventDeliveryAttemptFailureis not an existing Topic

EventDeliveryAttemptFailureno es un tema queexista.

400 SetPlatformAttributes

EventDeliveryFailure isnot an existing Topic

EventDeliveryFailure noes un tema que exista.

400 SetPlatformAttributes

Platform ARN is invalid El ARN de la plataformano es válido.

400 GetPlatformApplicationAttributes

Platform ARN is validbut does not belong tothe user

El ARN de la plataformaes válido, pero nopertenece al usuario.

403 GetPlatformApplicationAttributes

Token specified isinvalid

El token especificado noes válido.

400 ListPlatformApplications

Platform ARN is invalid El ARN de la plataformano es válido.

400 ListEndpointsByPlatformApplication

Platform ARN is validbut does not belong tothe user

El ARN de la plataformaes válido, pero nopertenece al usuario.

404 ListEndpointsByPlatformApplication

Token specified isinvalid

El token especificado noes válido.

400 ListEndpointsByPlatformApplication

Platform ARN is invalid El ARN de la plataformano es válido.

400 DeletePlatformApplication

Platform ARN is validbut does not belong tothe user

El ARN de la plataformaes válido, pero nopertenece al usuario.

403 DeletePlatformApplication

Platform ARN is invalid El ARN de la plataformano es válido.

400 CreatePlatformEndpoint

Platform ARN is validbut does not belong tothe user

El ARN de la plataformaes válido, pero nopertenece al usuario.

404 CreatePlatformEndpoint

Token is not specified El token no se haespecificado.

400 CreatePlatformEndpoint

Token is not of correctlength

El token no tiene lalongitud correcta.

400 CreatePlatformEndpoint

Versión de API 2010-03-31107

Page 115: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorErrores de API

Error Descripción Código de estadoHTTPS

Acción que devuelveeste error

Customer User data istoo large

Los datos de usuario delcliente no pueden tenermás de 2048 bytes en lacodificación UTF-8.

400 CreatePlatformEndpoint

Endpoint ARN is invalid El ARN del punto deenlace no es válido.

400 DeleteEndpoint

Endpoint ARN is validbut does not belong tothe user

El ARN del punto deenlace es válido, perono pertenece al usuario.

403 DeleteEndpoint

Endpoint ARN is invalid El ARN del punto deenlace no es válido.

400 SetEndpointAttributes

Endpoint ARN is validbut does not belong tothe user

El ARN del punto deenlace es válido, perono pertenece al usuario.

403 SetEndpointAttributes

Token is not specified El token no se haespecificado.

400 SetEndpointAttributes

Token is not of correctlength

El token no tiene lalongitud correcta.

400 SetEndpointAttributes

Customer User data istoo large

Los datos de usuario delcliente no pueden tenermás de 2048 bytes en lacodificación UTF-8.

400 SetEndpointAttributes

Endpoint ARN is invalid El ARN del punto deenlace no es válido.

400 GetEndpointAttributes

Endpoint ARN is validbut does not belong tothe user

El ARN del punto deenlace es válido, perono pertenece al usuario.

403 GetEndpointAttributes

Target ARN is invalid El ARN de destino no esválido.

400 Publish

Target ARN is valid butdoes not belong to theuser

El ARN de destinoes válido, pero nopertenece al usuario.

403 Publish

Message format isinvalid

El formato del mensajeno es válido.

400 Publish

Message size is largerthan supported byprotocol/end-service

El tamaño del mensajees superior al tamañocompatible con elprotocolo/servicio final.

400 Publish

Versión de API 2010-03-31108

Page 116: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Envío de mensajes Amazon SNS acolas de Amazon SQS

Amazon SNS trabaja en estrecha colaboración con Amazon Simple Queue Service (Amazon SQS). Ambosservicios ofrecen a los desarrolladores diferentes beneficios. Amazon SNS permite a las aplicacionesenviar mensajes en los que el tiempo es esencial a varios suscriptores a través del mecanismo de"inserción", lo que elimina la necesidad de comprobar o “sondear” de forma periódica en busca deactualizaciones. Amazon SQS es un servicio de cola de mensajes que emplean las aplicacionesdistribuidas para intercambiar mensajes mediante un modelo de sondeo, y puede utilizarse paradesacoplar los componentes de envío y los de recepción, sin necesitar que cada componente estédisponible de forma simultánea. Al utilizar Amazon SNS y Amazon SQS de forma conjunta, los mensajespueden entregarse a aquellas aplicaciones que necesiten la notificación inmediata de un evento y tambiénpueden quedarse en una cola de Amazon SQS para que otras aplicaciones los procesen posteriormente.

Cuando suscribe una cola de Amazon SQS a un tema de Amazon SNS, puede publicar un mensaje en eltema y Amazon SNS envía un mensaje Amazon SQS a la cola suscrita. El mensaje Amazon SQS contieneel tema y el mensaje que se publicaron en el tema junto con los metadatos del mensaje en un documentoJSON. El mensaje Amazon SQS tendrá un aspecto similar al documento JSON siguiente.

{ "Type" : "Notification", "MessageId" : "63a3f6b6-d533-4a47-aef9-fcf5cf758c76", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "Testing publish to subscribed queues", "Message" : "Hello world!", "Timestamp" : "2012-03-29T05:12:16.901Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEnTrFPa37tnVO0FF9Iau3MGzjlJLRfySEoWz4uZHSj6ycK4ph71Zmdv0NtJ4dC/El9FOGp3VuvchpaTraNHWhhq/OsN1HVz20zxmF9b88R8GtqjfKB5woZZmz87HiM6CYDTo3l7LMwFT4VU7ELtyaBBafhPTg9O5CnKkg=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c7fe3a54-ab0e-4ec2-88e0-db410a0f2bee"}

Note

En lugar de seguir los pasos que se indican a continuación, ahora puede suscribir una cola deAmazon SQS a un tema de Amazon SNS utilizando la consola de Amazon SQS, que simplifica elproceso. Para obtener más información, consulte Subscribe Queue to Amazon SNS Topic

Para habilitar un tema de Amazon SNS para que envíe mensajes a una cola de Amazon SQS, siga estospasos:

1. Obtenga el nombre de recurso de Amazon (ARN) de la cola a la que desea enviar mensajes a y deltema al que desea suscribir la cola. (p. 110)

2. Conceda sqs:SendMessage permiso al tema de Amazon SNS para que pueda enviar mensajes a lacola. (p. 110)

3. Suscriba la cola al tema de Amazon SNS. (p. 111)

Versión de API 2010-03-31109

Page 117: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1. Obtener el ARN de la cola y el tema.

4. Conceda a los usuarios de IAM o a las cuentas de AWS los permisos adecuados para publicar en eltema de Amazon SNS y leer mensajes de la cola de Amazon SQS. (p. 112)

5. Pruebe el procedimiento publicando un mensaje en el tema y leyendo el mensaje de la cola. (p. 114)

Para saber cómo configurar un tema para enviar mensajes a una cola que está en otra cuenta de AWS,consulte Envío de mensajes de Amazon SNS a una cola de Amazon SQS de otra cuenta (p. 115).

Para ver una plantilla de AWS CloudFormation que cree un tema que envíe mensajes a dos colas, consulteUso de una plantilla de AWS CloudFormation para crear un tema que envíe mensajes a colas de AmazonSQS (p. 118).

Paso 1. Obtener el ARN de la cola y el tema.Cuando suscriba una cola a su tema, necesitará una copia del ARN de la cola. Del mismo modo, a la horade dar permiso para que el tema envíe mensajes a la cola, necesitará una copia del ARN del tema.

Para obtener el ARN de la cola, puede utilizar la consola de Amazon SQS o la acción de APIGetQueueAttributes.

Para obtener el ARN de la cola de la consola de Amazon SQS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SQS en https://console.aws.amazon.com/sqs/.

2. Seleccione la casilla de la cola cuyo ARN quiere obtener.3. En la pestaña Details, copie el valor del ARN para que pueda usarlo para suscribirse al tema de

Amazon SNS.

Para obtener el ARN del tema, puede utilizar la consola de Amazon SNS, el comando sns-get-topic-attributes o la acción de API GetQueueAttributes.

Para obtener el ARN del tema desde la consola de Amazon SNS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación, seleccione el tema cuyo ARN desea obtener.3. En la página Topic Details, copie el valor Topic ARN para que pueda usarlo para dar permiso al tema

de Amazon SNS para que envíe mensajes a la cola.

Paso 2. Dar permiso al tema de Amazon SNS paraenviar mensajes a la cola de Amazon SQS

Para que un tema de Amazon SNS pueda enviar mensajes a una cola, debe establecer una política en lacola que permita al tema de Amazon SNS ejecutar la acción sqs:SendMessage.

Antes de suscribir una cola a un tema, necesita un tema y una cola. Si todavía no ha creado un tema o unacola, créelo ahora. Para obtener más información, consulte Creación de un tema y Creación de una cola enla Guía para desarrolladores de Amazon Simple Queue Service.

Para establecer una política en una cola, puede utilizar la consola de Amazon SQS o la acción de APISetQueueAttributes. Antes de comenzar, asegúrese de que dispone del ARN del tema al que desea darpermiso para enviar mensajes a la cola.

Versión de API 2010-03-31110

Page 118: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 3. Suscribir la cola al tema de Amazon SNS

Para establecer una política SendMessage en una cola utilizando la consola de Amazon SQS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SQS en https://console.aws.amazon.com/sqs/.

2. Seleccione la casilla de la cola cuya política desea establecer, haga clic en la pestaña Permissions y,a continuación, haga clic en Add a Permission.

3. En el cuadro de diálogo Add a Permission, seleccione Allow en Effect, seleccione Everybody (*) enPrincipal y, a continuación, seleccione SendMessage en el menú desplegable Actions.

4. Añada una condición que permite la acción para el tema. Haga clic en Add Conditions (optional),seleccione ArnEquals en Condition, seleccione aws:SourceArn en Key y, por último, pegue el ARN deltema en Value. Haga clic en Add Condition. La nueva condición debe aparecer en la parte inferior dela casilla (es posible que tenga que desplazarse hacia abajo para verlo).

5. Haga clic en Add Permission.

Si quería crear por sí mismo el documento de política, debe crear una política como la siguiente. La políticapermite a MyTopic enviar mensajes a MyQueue.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"MySQSPolicy001", "Effect":"Allow", "Principal":"*", "Action":"sqs:SendMessage", "Resource":"arn:aws:sqs:us-east-1:123456789012:MyQueue", "Condition":{ "ArnEquals":{ "aws:SourceArn":"arn:aws:sns:us-east-1:123456789012:MyTopic" } } } ]}

Paso 3. Suscribir la cola al tema de Amazon SNSPara enviar mensajes a una cola a través de un tema, debe suscribir la cola al tema de Amazon SNS. Lacola se especifica con el ARN. Para suscribirse a un tema, puede utilizar la consola de Amazon SNS, elcomando sns-subscribe o la acción de API Subscribe. Antes de comenzar, asegúrese de que tiene el ARNde la cola a la que desea suscribirse.

Para suscribir una cola a un tema utilizando la consola de Amazon SNS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación, seleccione el tema.3. Haga clic en Create Subscription, seleccione Amazon SQS para Protocol, pegue el ARN de la cola a

la que desea que el tema envíe mensajes para Endpoint y haga clic en Subscribe.4. Para el mensaje Subscription request received!, haga clic en Close.

Cuando se confirme la suscripción, el campo Subscription ID de la nueva suscripción mostrará el ID desuscripción. Si el propietario de la cola crea la suscripción, esta se confirmará de forma automática yse activará casi de inmediato.

Versión de API 2010-03-31111

Page 119: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4. Dar a los usuarios permisos paralas acciones adecuadas del tema y la cola

Normalmente, suscribirá su propia cola a su propio tema en su propia cuenta. Sin embargo, tambiénpuede suscribir una cola de otra cuenta a su tema. Si el usuario que crea la suscripción no es elpropietario de la cola (por ejemplo, si un usuario de una cuenta A suscribe una cola de una cuenta Ba un tema de la cuenta A), la suscripción deberá confirmarse. Para obtener más información sobrecómo suscribir una cola desde otra cuenta y confirmar la suscripción, consulte Envío de mensajes deAmazon SNS a una cola de Amazon SQS de otra cuenta (p. 115).

Paso 4. Dar a los usuarios permisos para lasacciones adecuadas del tema y la cola

Debe utilizar AWS Identity and Access Management (IAM) para permitir que solo los usuarios adecuadospuedan publicar en el tema de Amazon SNS y leer o eliminar mensajes de la cola de Amazon SQS. Paraobtener más información sobre el control de las acciones en los temas y colas para los usuarios de IAM,consulte Control del acceso de usuarios a su cuenta de AWS y Control del acceso de usuarios a su cuentade AWS en la Guía para desarrolladores de Amazon Simple Queue Service.

Hay dos formas de controlar el acceso a un tema o una cola:

• Añadiendo una política a un usuario o un grupo de IAM (p. 112). La forma más sencilla de dar a losusuarios permisos para temas o colas consiste en crear un grupo, añadir la política adecuada al grupoy, a continuación, añadir usuarios a dicho grupo. Es mucho más fácil añadir y eliminar usuarios de ungrupo que mantener un seguimiento de las políticas que se han configurado para los distintos usuarios.

• Añadiendo una política a un tema o una cola (p. 113). Si desea conceder permisos sobre un temao cola a otra cuenta de AWS, el único modo de hacerlo es añadiendo una política que tenga comoprincipal la cuenta de AWS a la que desee conceder los permisos.

Debe utilizar el primer método para la mayoría de los casos (aplicar políticas a grupos y administrarlos permisos de los usuarios añadiendo o eliminando los usuarios a los grupos). Si necesita concederpermisos a un usuario de otra cuenta, debe utilizar el segundo método.

Añadir una política a un usuario o un grupo de IAMSi ha añadido la política siguiente a un usuario o un grupo de IAM debe conceder a dicho usuario o a losmiembros de dicho grupo permiso para ejecutar la acción sns:Publish en el tema MyTopic.

{ "Version":"2012-10-17", "Statement":[{ "Sid":"AllowPublishToMyTopic", "Effect":"Allow", "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic" } ]}

Si ha añadido la política siguiente a un usuario o un grupo de IAM debe conceder a dicho usuarioo a los miembros de dicho grupo permiso para ejecutar las acciones sqs:ReceiveMessage ysqs:DeleteMessage en las colas MyQueue1 y MyQueue2.

{ "Version":"2012-10-17",

Versión de API 2010-03-31112

Page 120: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAñadir una política a un tema o una cola

"Statement":[{ "Sid":"AllowReadDeleteMessageOnMyQueue", "Effect":"Allow", "Action":[ "sqs:ReceiveMessage", "sqs:DeleteMessage" ], "Resource":[ "arn:aws:sns:us-east-1:123456789012:MyQueue1", "arn:aws:sns:us-east-1:123456789012:MyQueue2" ], } ]}

Añadir una política a un tema o una colaLas siguientes políticas de ejemplo muestran cómo dar a otra cuenta permisos sobre a un tema y una cola.

Note

Cuando concede a otra cuenta de AWS acceso a un recurso de su cuenta, también concedea los usuarios de IAM que tienen permisos de acceso de nivel de administrador (acceso atodos los recursos) a ese recurso. Al resto de usuarios de IAM de la otra cuenta se les deniegaautomáticamente el acceso al recurso. Si desea conceder a usuarios de IAM específicos deesa cuenta de AWS acceso al recurso, la cuenta o un usuario de IAM con acceso de nivel deadministrador debe delegar los permisos del recurso a esos usuarios de IAM. Para obtener másinformación acerca de la delegación entre cuentas, consulte Habilitar el acceso entre cuentas enla Guía del usuario de IAM.

Si ha añadido la política siguiente a un tema MyTopic en la cuenta 123456789012, debe dar a la cuenta111122223333 permiso para ejecutar la acción sns:Publish en dicho tema.

{ "Version":"2012-10-17", "Id":"MyTopicPolicy", "Statement":[{ "Sid":"Allow-publish-to-topic", "Effect":"Allow", "Principal":{ "AWS":"111122223333" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic" } ]}

Si ha añadido la política siguiente a un tema MyQueue en la cuenta 123456789012, debe dar a la cuenta111122223333 permiso para ejecutar las acciones sqs:ReceiveMessage y sqs:DeleteMessage endicha cola.

{ "Version":"2012-10-17", "Id":"MyQueuePolicy", "Statement":[ { "Sid":"Allow-Processing-Of-Messages-for-Queue", "Effect":"Allow", "Principal":{ "AWS":"111122223333"

Versión de API 2010-03-31113

Page 121: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 5. Probar

}, "Action":[ "sqs:DeleteMessage", "sqs:ReceiveMessage" ], "Resource":[ "arn:aws:sns:us-east-1:123456789012:MyQueue", ] } ]}

Paso 5. ProbarPuede probar las suscripciones de un tema a una cola publicando en el tema y viendo el mensaje que eltema envía a la cola.

Para publicar en un tema mediante la consola de Amazon SNS

1. Utilizando las credenciales de la cuenta de AWS o del usuario de IAM con permiso para publicar enel tema, inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS enhttps://console.aws.amazon.com/sns/.

2. En el panel de navegación, seleccione el tema y haga clic en Publish to Topic.3. En la casilla Subject, escriba un tema (por ejemplo, Probar la publicación en cola) en la

casilla Message, escriba texto (por ejemplo, ¡Hola a todo el mundo!) y haga clic en PublishMessage. Aparecerá el siguiente mensaje: Your message has been successfully published.

Para ver el mensaje del tema utilizando la consola de Amazon SQS

1. Utilizando las credenciales de la cuenta de AWS o del usuario de IAM con permiso para ver mensajesen la cola, inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SQSen https://console.aws.amazon.com/sqs/.

2. Marque la casilla de la cola que está suscrita al tema.3. En el menú desplegable Queue Action, seleccione View/Delete Messages y haga clic en Start Polling

for Messages. Se visualizará un mensaje del tipo Notification.4. En la columna Body, haga clic en More Details. El cuadro Message Details tiene un documento JSON

que contiene el tema y el mensaje que ha publicado en el tema. El mensaje tiene un aspecto similar aldocumento JSON siguiente.

{ "Type" : "Notification", "MessageId" : "63a3f6b6-d533-4a47-aef9-fcf5cf758c76", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "Testing publish to subscribed queues", "Message" : "Hello world!", "Timestamp" : "2012-03-29T05:12:16.901Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEnTrFPa37tnVO0FF9Iau3MGzjlJLRfySEoWz4uZHSj6ycK4ph71Zmdv0NtJ4dC/El9FOGp3VuvchpaTraNHWhhq/OsN1HVz20zxmF9b88R8GtqjfKB5woZZmz87HiM6CYDTo3l7LMwFT4VU7ELtyaBBafhPTg9O5CnKkg=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c7fe3a54-ab0e-4ec2-88e0-db410a0f2bee"}

Versión de API 2010-03-31114

Page 122: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de mensajes a una cola de otra cuenta

5. Haga clic en Close. Ha publicado correctamente en un tema que envía mensajes de notificación a unacola.

Envío de mensajes de Amazon SNS a una cola deAmazon SQS de otra cuenta

Puede publicar una notificación en un tema de Amazon SNS con una o varias suscripciones a colas deAmazon SQS de otra cuenta. Configure el tema y las colas igual que lo haría si estuviesen en la mismacuenta (consulte Envío de mensajes Amazon SNS a colas de Amazon SQS (p. 109)). La única diferenciaradica en cómo controla la confirmación de suscripción y eso depende de cómo suscribe la cola al tema.

Temas• El propietario de la cola crea la suscripción (p. 115)• Un usuario que no es propietario de la cola crea una suscripción (p. 116)

El propietario de la cola crea la suscripciónCuando el propietario de la cola crea la suscripción, esta no necesita una confirmación. La cola comienzaa recibir notificaciones desde el tema tan pronto como la acción Subscribe se completa. Para habilitaral propietario de la cola para suscribirse al tema del propietario del tema, el propietario del tema debeconceder un permiso de cuenta al propietario de la cola para llamar a la acción Subscribe al tema. Lapolítica siguiente, cuando se añade al tema MyTopic de la cuenta 123456789012, concede a la cuenta111122223333 permiso para llamar a sns:Subscribe en MyTopic, en la cuenta 123456789012.

{ "Version":"2012-10-17", "Id":"MyTopicSubscribePolicy", "Statement":[{ "Sid":"Allow-other-account-to-subscribe-to-topic", "Effect":"Allow", "Principal":{ "AWS":"111122223333" }, "Action":"sns:Subscribe", "Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic" } ]}

Después de establecer esta política en MyTopic, un usuario puede iniciar sesión en la consola de AmazonSNS con las credenciales de la cuenta 111122223333 para suscribirse al tema.

Para añadir una suscripción de cola de Amazon SQS a un tema de otra cuenta mediante laconsola de Amazon SQS

1. Utilizando las credenciales de la cuenta de AWS que contiene la cola o un usuario de IAM de dichacuenta, inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS enhttps://console.aws.amazon.com/sns/.

2. Compruebe que tenga los ARN del tema y la cola. Los necesitará cuando cree la suscripción.3. Asegúrese de que haber establecido el permiso sqs:SendMessage en la cola para que pueda recibir

mensajes del tema. Para obtener más información, consulte Paso 2. Dar permiso al tema de AmazonSNS para enviar mensajes a la cola de Amazon SQS (p. 110).

Versión de API 2010-03-31115

Page 123: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUn usuario que no es propietariode la cola crea una suscripción

4. En el panel de navegación, seleccione SNS Dashboard.5. En el Dashboard, en la sección Additional Actions, haga clic en Create New Subscription.6. En la casilla Topic ARN, escriba el ARN del tema.7. En Protocol, seleccione Amazon SQS.8. En la casilla Endpoint, escriba el ARN de la cola.9. Haga clic en Subscribe.10. Para el mensaje Subscription request received!, verá un texto que le solicita que confirme la

suscripción. Dado que es usted el propietario de la cola, la suscripción no necesita confirmación.Haga clic en Close. Ha completado el proceso de suscripción y los mensajes de notificación que sepubliquen en el tema ya se pueden enviar a la cola.

El usuario también puede utilizar la clave de acceso y la clave secreta de la cuenta de AWS 111122223333para ejecutar el comando sns-subscribe o llamar a la acción de API Subscribe para suscribir una colade Amazon SQS a MyTopic en la cuenta 123456789012. El comando sns-subscribe suscribe la cola MyQde la cuenta 111122223333 al tema MyTopic de la cuenta 123456789012.

aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:MyTopic --protocol sqs --notification-endpoint arn:aws:sqs:us-east-1:111122223333:MyQ

Note

Para poder realizar envíos, la cola debe tener permisos para Amazon SNS.

Un usuario que no es propietario de la cola crea unasuscripciónCuando un usuario que no es propietario de la cola crea la suscripción (por ejemplo, cuando el propietariodel tema de una cuenta A añade una suscripción para una cola de la cuenta B), la suscripción tiene queconfirmarse.

Important

Antes de suscribirse al tema, compruebe que haya establecido el permiso sqs:SendMessageen la cola para que pueda recibir mensajes del tema. Consulte Paso 2. Dar permiso al tema deAmazon SNS para enviar mensajes a la cola de Amazon SQS (p. 110).

Cuando el usuario llama a la acción Subscribe, se envía un mensaje del tipoSubscriptionConfirmation a la cola y la suscripción se muestra en la consola de Amazon SNScon su ID de suscripción establecido en Pending Confirmation. Para confirmar la suscripción, un usuarioque pueda leer los mensajes de la cola debe visitar la URL especificada en el valor SubscribeURL delmensaje. Hasta que no se confirme la suscripción, no se enviarán a la cola las notificaciones publicadasen el tema. Para confirmar una suscripción, puede utilizar la consola de Amazon SQS o la acción de la APIReceiveMessage.

Para confirmar una suscripción utilizando la consola de Amazon SQS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SQS en https://console.aws.amazon.com/sqs/.

2. Seleccione la cola que tenga una suscripción pendiente con el tema.3. En el menú desplegable Queue Action, seleccione View/Delete Messages y haga clic en Start Polling

for Messages. Se visualizará un mensaje del tipo SubscriptionConfirmation.4. En la columna Body, haga clic en More Details.

Versión de API 2010-03-31116

Page 124: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUn usuario que no es propietariode la cola crea una suscripción

5. En el cuadro de texto, busque el valor SubscribeURL y copie la URL. Tendrá un aspecto similar a laURL siguiente.

https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805d352fe148e56f8cff30f023ff35db8bccbc62721725b074841be6524bb215b0c45ec571ba1e7faacc309940c0b4b9e511ab85eba671412a4c314ecd446127ff1a9cfe08642b8e3738e73c279dd3ae565bd98f842ed992a4742ebec0946ebd9a

6. En un navegador web, pegue la URL en la barra de direcciones para visitarla. Verá una respuestaparecida al documento XML siguiente.

<ConfirmSubscriptionResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/"> <ConfirmSubscriptionResult> <SubscriptionArn>arn:aws:sns:us-west-2:123456789012:MyTopic:c7fe3a54-ab0e-4ec2-88e0-db410a0f2bee</SubscriptionArn> </ConfirmSubscriptionResult> <ResponseMetadata> <RequestId>dd266ecc-7955-11e1-b925-5140d02da9af</RequestId> </ResponseMetadata></ConfirmSubscriptionResponse>

Si ve la suscripción del tema en la consola de Amazon SNS, ahora verá que el ARN de la suscripciónsustituye al mensaje Pending Confirmation en la columna Subscription ID. La cola suscrita está listapara recibir mensajes del tema.

Versión de API 2010-03-31117

Page 125: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso de una plantilla de AWS CloudFormation para crearun tema que envíe mensajes a colas de Amazon SQS

Uso de una plantilla de AWS CloudFormation paracrear un tema que envíe mensajes a colas deAmazon SQS

AWS CloudFormation le permite utilizar un archivo de plantilla para crear y configurar una colección derecursos de AWS juntos como una sola unidad. Esta sección tiene una plantilla de ejemplo que facilitala implementación de temas que publiquen en colas. Las plantillas se hacen cargo de los pasos deconfiguración en su lugar, creando dos colas y un tema con suscripciones a las colas, añadiendo unapolítica a las colas, de modo que el tema pueda enviar mensajes a las colas y creando usuarios y gruposde IAM para controlar el acceso a dichos recursos.

Para obtener más información sobre la implementación de recursos de AWS mediante una plantilla deAWS CloudFormation, consulte Comience en la guía del usuario de AWS CloudFormation.

Uso de una plantilla de AWS CloudFormation paraconfigurar temas y colas en una cuenta de AWSLa plantilla de ejemplo crea un tema de Amazon SNS que puede enviar mensajes a dos colas de AmazonSQS con los permisos adecuados para que los miembros de un grupo de IAM puedan publicar en el temay los de otro leer mensajes de la colas. La plantilla también crea usuarios de IAM que se añaden a cadagrupo.

Puede descargar esta plantilla (https://s3.amazonaws.com//cloudformation-templates-us-east-1/SNSToSQS.template) desde la páginas de plantillas de muestra de AWS CloudFormation.

MySNSTopic está configurado para publicar en dos puntos de enlace suscritos, que son dos colas deAmazon SQS (MyQueue1 y MyQueue2). MyPublishTopicGroup es un grupo de IAM cuyos miembrostienen permiso para publicar en MySNSTopic utilizando la acción de API Publish o el comando sns-publish.La plantilla crea los usuarios de IAM MyPublishUser y MyQueueUser y les da perfiles de inicio de sesióny claves de acceso. El usuario que crea una pila con esta plantilla especifica las contraseñas para losperfiles de inicio de sesión como parámetros de entrada. La plantilla crea claves de acceso para los dosusuarios de IAM con MyQueueUserKey y MyPublishUserKey. AddUserToMyPublishTopicGroup añadeMyPublishUser a MyPublishTopicGroup para que el usuario tenga los permisos asignadas al grupo.

MyRDMessageQueueGroup es un grupo de IAM cuyos miembros tienen permiso para leer y eliminarmensajes de las dos colas de Amazon SQS utilizando las acciones de API ReceiveMessage yDeleteMessage. AddUserToMyQueueGroup añade MyQueueUser a MyRDMessageQueueGroup paraque el usuario tenga los permisos asignados al grupo. MyQueuePolicy asigna el permiso para queMySNSTopic publique sus notificaciones en las dos colas.

{ "AWSTemplateFormatVersion":"2010-09-09",

"Description":"This Template creates an Amazon SNS topic that can send messages to two Amazon SQS queues with appropriate permissions for one IAM user to publish to the topic and another to read messages from the queues. MySNSTopic is set up to publish to two subscribed endpoints, which are two Amazon SQS queues (MyQueue1 and MyQueue2). MyPublishUser is an IAM user that can publish to MySNSTopic using the Publish API. MyTopicPolicy assigns that permission to MyPublishUser. MyQueueUser is an IAM user that can read messages from the two Amazon SQS queues. MyQueuePolicy assigns those permissions to MyQueueUser. It also assigns permission for MySNSTopic to publish its notifications to the two queues. The template creates access keys for the two IAM users with MyPublishUserKey and MyQueueUserKey. Note that you will be billed for the AWS resources used if you create a stack from this template.",

Versión de API 2010-03-31118

Page 126: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso de una plantilla de AWS CloudFormation paraconfigurar temas y colas en una cuenta de AWS

"Parameters":{ "MyPublishUserPassword":{ "NoEcho":"true", "Type":"String", "Description":"Password for the IAM user MyPublishUser", "MinLength":"1", "MaxLength":"41", "AllowedPattern":"[a-zA-Z0-9]*", "ConstraintDescription":"must contain only alphanumeric characters." }, "MyQueueUserPassword":{ "NoEcho":"true", "Type":"String", "Description":"Password for the IAM user MyQueueUser", "MinLength":"1", "MaxLength":"41", "AllowedPattern":"[a-zA-Z0-9]*", "ConstraintDescription":"must contain only alphanumeric characters." } },

"Resources":{ "MySNSTopic":{ "Type":"AWS::SNS::Topic", "Properties":{ "Subscription":[ { "Endpoint":{"Fn::GetAtt":["MyQueue1","Arn"]}, "Protocol":"sqs" }, { "Endpoint":{"Fn::GetAtt":["MyQueue2","Arn"]}, "Protocol":"sqs" } ] } }, "MyQueue1":{ "Type":"AWS::SQS::Queue" }, "MyQueue2":{ "Type":"AWS::SQS::Queue" }, "MyPublishUser":{ "Type":"AWS::IAM::User", "Properties":{ "LoginProfile":{ "Password":{"Ref":"MyPublishUserPassword"} } } }, "MyPublishUserKey":{ "Type":"AWS::IAM::AccessKey", "Properties":{ "UserName":{"Ref":"MyPublishUser"} } }, "MyPublishTopicGroup":{ "Type":"AWS::IAM::Group", "Properties":{ "Policies":[ { "PolicyName":"MyTopicGroupPolicy", "PolicyDocument":{

Versión de API 2010-03-31119

Page 127: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso de una plantilla de AWS CloudFormation paraconfigurar temas y colas en una cuenta de AWS

"Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "sns:Publish" ], "Resource":{"Ref":"MySNSTopic"} } ]} } ] } }, "AddUserToMyPublishTopicGroup":{ "Type":"AWS::IAM::UserToGroupAddition", "Properties":{ "GroupName":{"Ref":"MyPublishTopicGroup"}, "Users":[{"Ref":"MyPublishUser"}] } }, "MyQueueUser":{ "Type":"AWS::IAM::User", "Properties":{ "LoginProfile":{ "Password":{"Ref":"MyQueueUserPassword"} } } }, "MyQueueUserKey":{ "Type":"AWS::IAM::AccessKey", "Properties":{ "UserName":{"Ref":"MyQueueUser"} } }, "MyRDMessageQueueGroup":{ "Type":"AWS::IAM::Group", "Properties":{ "Policies":[ { "PolicyName":"MyQueueGroupPolicy", "PolicyDocument":{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "sqs:DeleteMessage", "sqs:ReceiveMessage" ], "Resource":[ {"Fn::GetAtt":["MyQueue1","Arn"]}, {"Fn::GetAtt":["MyQueue2","Arn"]} ] } ]} } ] } }, "AddUserToMyQueueGroup":{ "Type":"AWS::IAM::UserToGroupAddition", "Properties":{ "GroupName":{"Ref":"MyRDMessageQueueGroup"}, "Users":[{"Ref":"MyQueueUser"}] }

Versión de API 2010-03-31120

Page 128: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso de una plantilla de AWS CloudFormation paraconfigurar temas y colas en una cuenta de AWS

}, "MyQueuePolicy":{ "Type":"AWS::SQS::QueuePolicy", "Properties":{ "PolicyDocument":{ "Version":"2012-10-17", "Id":"MyQueuePolicy", "Statement":[ { "Sid":"Allow-SendMessage-To-Both-Queues-From-SNS-Topic", "Effect":"Allow", "Principal":"*", "Action":["sqs:SendMessage"], "Resource":"*", "Condition":{ "ArnEquals":{ "aws:SourceArn":{"Ref":"MySNSTopic"} } } } ] }, "Queues":[{"Ref":"MyQueue1"},{"Ref":"MyQueue2"}] } } }, "Outputs":{ "MySNSTopicTopicARN":{ "Value":{"Ref":"MySNSTopic"} }, "MyQueue1Info":{ "Value":{"Fn::Join":[ " ", [ "ARN:", {"Fn::GetAtt":["MyQueue1","Arn"]}, "URL:", {"Ref":"MyQueue1"} ] ]} }, "MyQueue2Info":{ "Value":{"Fn::Join":[ " ", [ "ARN:", {"Fn::GetAtt":["MyQueue2","Arn"]}, "URL:", {"Ref":"MyQueue2"} ] ]} }, "MyPublishUserInfo":{ "Value":{"Fn::Join":[ " ", [ "ARN:", {"Fn::GetAtt":["MyPublishUser","Arn"]}, "Access Key:", {"Ref":"MyPublishUserKey"}, "Secret Key:", {"Fn::GetAtt":["MyPublishUserKey","SecretAccessKey"]} ] ]} }, "MyQueueUserInfo":{

Versión de API 2010-03-31121

Page 129: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorUso de una plantilla de AWS CloudFormation paraconfigurar temas y colas en una cuenta de AWS

"Value":{"Fn::Join":[ " ", [ "ARN:", {"Fn::GetAtt":["MyQueueUser","Arn"]}, "Access Key:", {"Ref":"MyQueueUserKey"}, "Secret Key:", {"Fn::GetAtt":["MyQueueUserKey","SecretAccessKey"]} ] ]} } }}

Versión de API 2010-03-31122

Page 130: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de las preferencias

Envío de mensajes SMS con AmazonSNS

Puede utilizar Amazon SNS para enviar mensajes de texto o mensajes SMS a dispositivos habilitadospara recibir SMS. Dispone de la capacidad de enviar un mensaje directamente a un número deteléfono (p. 126) o de enviar un mensaje a varios números de teléfono (p. 129) a la vez suscribiendodichos números de teléfono a un tema y enviando su mensaje al tema.

Puede configurar las preferencias de SMS (p. 123) de su cuenta de AWS para adaptar las entregas deSMS a sus casos de uso y su presupuesto. Por ejemplo, puede elegir si los mensajes están optimizadosen materia de costos o entrega fiable. También puede especificar los límites de gasto de las entregas demensajes individuales y los límites de gasto mensuales de su cuenta de AWS.

Cuando así lo exijan la legislación y los reglamentos locales (como es el caso, por ejemplo, en los EE. UU.y Canadá), los destinatarios de SMS tienen la posibilidad de cancelar su suscripción (p. 138), lo quesignifica que eligen dejar de recibir mensajes SMS desde su cuenta de AWS. Cuando un destinatariocancela su suscripción, usted puede, dentro de unos límites, volver a confirmar el número de teléfono parareanudar el envío de mensajes.

Amazon SNS es compatible con la mensajería SMS en varias regiones, y usted puede enviarmensajes a más de 200 países y regiones. Para obtener más información, consulte Regiones y paísesadmitidos (p. 142).

Temas• Configuración de las preferencias de mensajería de SMS (p. 123)• Envío de un mensaje SMS (p. 126)• Envío de un mensaje SMS a varios números de teléfono (p. 129)• Monitorización de la actividad de SMS (p. 133)• Administración de números de teléfono y suscripciones a SMS (p. 138)• Reserva de un código corto dedicado para mensajes SMS (p. 141)• Regiones y países admitidos (p. 142)

Configuración de las preferencias de mensajería deSMS

Utilice Amazon SNS para especificar las preferencias de los mensajes SMS, como, por ejemplo, cómose optimizan las entregas (costos o entregas fiables), el límite de gasto mensual, cómo se registran lasentregas de mensajes 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 anularalgunas de ellas cuando envía un mensaje individual. Para obtener más información, consulte Envío de unmensaje SMS (p. 126).

Temas• Configuración de las preferencias (consola) (p. 124)

Versión de API 2010-03-31123

Page 131: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de las preferencias (consola)

• Configuración de las preferencias (SDK de AWS) (p. 125)

Configuración de las preferencias (consola)1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://

console.aws.amazon.com/sns/v2/home.2. En el menú de la consola, establezca el selector de regiones en una región que admita la mensajería

SMS (p. 142).3. En el panel de navegación, elija Text messaging (SMS).4. En la página Text messaging (SMS), elija Manage text messaging preferences.5. En la página Text messaging preferences, en Default message type, seleccione el tipo de mensaje

SMS que enviará generalmente:

• Promotional (valor predeterminado): mensajes que no son de importancia crítica, como mensajes demarketing. Amazon SNS optimiza la entrega de mensajes para conseguir el costo más bajo.

• Transactional: mensajes de importancia crítica que admiten transacciones del cliente, como clavesde acceso de un solo uso para la autenticación multifactor. Amazon SNS optimiza el envío demensajes para conseguir la máxima confianza.

Puede anular esta configuración cuando envía un mensaje.

Para obtener información sobre los precios de mensajes promocionales y transaccionales, consulteGlobal SMS Pricing.

6. En Account spend limit escriba el importe máximo indicado en USD que desea gastar en mensajesSMS cada mes natural. Cuando Amazon SNS determina que el envío de un mensaje SMS generaríaun costo que supera su límite de gasto de ese mes, Amazon SNS dejará de publicar mensajes SMSen cuestión de minutos.

Important

Como Amazon SNS es un sistema distribuido, deja de enviar mensajes SMS en cuestión deminutos después de que se haya excedido el límite de gasto. Durante dicho intervalo, si sigueenviando mensajes SMS, puede incurrir en costos que superen su límite.

De forma predeterminada, el límite de gasto está establecido en 1,00 USD. Si desea aumentarlo,envíe una solicitud de aumento de mensajes de texto de SNS con AWS Support. En New limit value,especifique el límite de gasto mensual que desee. En el campo Use Case Description, explique quesolicita un aumento del límite de gasto mensual de SMS. Normalmente, AWS Support procesa susolicitud en dos días laborables. En función del límite de gasto que solicite y de la complejidad desu solicitud, AWS Support podría necesitar tres o cinco días adicionales para asegurarse de que susolicitud pueda procesarse.

7. En IAM role for CloudWatch Logs access, cree un rol de IAM que permita a Amazon SNS escribir logspara entregas de SMS en CloudWatch Logs:

a. Elija Create IAM role.b. En la página SNS is requesting permission to use resources in your account, elija Allow.

8. En Default percentage of success to sample, indique el porcentaje de entregas de SMS correctas paralas que Amazon SNS escribirá logs en CloudWatch Logs. Por ejemplo, para escribir logs únicamentepara las entregas erróneas, establezca este valor en 0. Para escribir logs para el 10% de las entregasde correctas, establézcalo en 10. Si no especifica ningún porcentaje, Amazon SNS escribirá logs paratodas las entregas correctas.

9. En Default sender ID, escriba un ID personalizado que contenga un máximo de 11 caracteresalfanuméricos y que tenga al menos una letra y no tenga espacios. El ID de remitente se muestra

Versión de API 2010-03-31124

Page 132: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de las preferencias (SDK de AWS)

como el remitente del mensaje en el dispositivo receptor. Por ejemplo, puede utilizar la marca de sunegocio para facilitar el reconocimiento del origen del mensaje.

La compatibilidad con los ID de remitente varía según el país o la región. Por ejemplo, los mensajesque se entregan a números de teléfono de los EE. UU. no mostrarán el ID de remitente. En el caso delos países y regiones que admiten el ID de remitente, consulte Regiones y países admitidos (p. 142).

Si no especifica un ID de remitente, el mensaje mostrará un código largo como ID de remitente enlos países y regiones admitidos. En cuanto a los países y regiones que requieren un ID de remitentealfabético, el mensaje mostrará NOTICE como ID de remitente.

Puede anular esta configuración cuando envía un mensaje.10. En Reports storage escriba el nombre del bucket de Amazon S3 que recibirá los informes de uso

de SMS diarios de Amazon SNS. Amazon SNS no crea informes de uso a menos que especifiqueun bucket de Amazon S3 para recibirlos. Para obtener más información, consulte Visualización deinformes de uso de SMS diarios (p. 136).

11. Elija Update preferences.

Configuración de las preferencias (SDK de AWS)Para establecer sus preferencias de SMS con un SDK de AWS, utilice la acción de dicho SDK quecorresponda a la solicitud SetSMSAttributes de la API de Amazon SNS. Con esta solicitud,debe asignar valores a los diferentes atributos de SMS, como el límite de gasto mensual o el tipode SMS predeterminado (transaccional o promocional). Para todos los atributos de SMS, consulteSetSMSAttributes en la Amazon Simple Notification Service API Reference.

Configuración de las preferencias (AWS SDK for Java)En el siguiente ejemplo se utiliza el método setSMSAttributes de la clase AmazonSNSClient paraestablecer los valores de los diferentes nombres de atributo:

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); setDefaultSmsAttributes(snsClient);}

public static void setDefaultSmsAttributes(AmazonSNSClient snsClient) { SetSMSAttributesRequest setRequest = new SetSMSAttributesRequest() .addAttributesEntry("DefaultSenderID", "mySenderID") .addAttributesEntry("MonthlySpendLimit", "1") .addAttributesEntry("DeliveryStatusIAMRole", "arn:aws:iam::123456789012:role/mySnsRole") .addAttributesEntry("DeliveryStatusSuccessSamplingRate", "10") .addAttributesEntry("DefaultSMSType", "Transactional") .addAttributesEntry("UsageReportS3Bucket", "sns-sms-daily-usage"); snsClient.setSMSAttributes(setRequest); Map<String, String> myAttributes = snsClient.getSMSAttributes(new GetSMSAttributesRequest()) .getAttributes(); System.out.println("My SMS attributes:"); for (String key : myAttributes.keySet()) { System.out.println(key + " = " + myAttributes.get(key)); }}

En el siguiente ejemplo se establece el valor del atributo MonthlySpendLimit en 1,00 USD. De formapredeterminada, este es el importe máximo permitido por Amazon SNS. Si desea aumentarlo, envíe una

Versión de API 2010-03-31125

Page 133: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje

solicitud de aumento de mensajes de texto de SNS con AWS Support. En New limit value, especifique ellímite de gasto mensual que desee. En el campo Use Case Description, explique que solicita un aumentodel límite de gasto mensual de SMS. Normalmente, AWS Support procesa su solicitud en dos díaslaborables. En función del límite de gasto que solicite y de la complejidad de su solicitud, AWS Supportpodría necesitar tres o cinco días adicionales para asegurarse de que su solicitud pueda procesarse.

Para verificar que los atributos se hayan establecido correctamente, el ejemplo imprime el resultado delmétodo getSMSAttributes. Cuando ejecute este ejemplo, los atributos se visualizarán en la ventana desalida de la consola de su IDE:

My SMS attributes:DeliveryStatusSuccessSamplingRate = 10UsageReportS3Bucket = sns-sms-daily-usageDefaultSMSType = TransactionalDeliveryStatusIAMRole = arn:aws:iam::123456789012:role/mySnsRoleMonthlySpendLimit = 1DefaultSenderID = mySenderID

Envío de un mensaje SMSPuede utilizar Amazon SNS para enviar mensajes SMS a dispositivos habilitados para recibir SMS. Puedepublicar mensajes directamente en los números de teléfono de estos dispositivos y no es necesario quesuscriba los números de teléfono a un tema de Amazon SNS.

La suscripción de números de teléfono a un tema puede seguir siendo útil si desea publicar cada mensajeen varios números de teléfono a la vez. Para consultar los pasos sobre cómo publicar un mensaje SMS enun tema, consulte Envío de un mensaje SMS a varios números de teléfono (p. 129).

Cuando envía un mensaje, puede controlar si está optimizado en materia de costo o de confianza de laentrega y especificar un ID de remitente. Si envía el mensaje de forma programada mediante la API deAmazon SNS o los SDK de AWS, puede especificar un precio máximo para la entrega de mensajes.

Cada mensaje SMS puede contener hasta 140 bytes, y el límite de caracteres depende del esquema decodificación. Por ejemplo, un mensaje SMS puede contener:

• 160 caracteres GSM• 140 caracteres ASCII• 70 caracteres UCS-2

Si publica un mensaje que exceda el límite de tamaño, Amazon SNS lo envía como varios mensajes, cadauno de los cuales respetará el límite. Los mensajes no se dividen en mitad de una palabra, sino en elespacio entre palabras. El límite de tamaño total de una acción de publicación SMS es 1600 bytes.

Cuando envíe un mensaje SMS, especifique el número de teléfono usando la formato E.164. E.164 es unestándar de estructura de número de teléfono utilizado para las telecomunicaciones internacionales. Losnúmeros que aplican este formato pueden tener un máximo de 15 dígitos y van prefijados con el carácter(+) y el código de país. Por ejemplo, un número de teléfono de los EE. UU. en formato E.164 se mostraríacomo +1XXX5550100.

Temas• Envío de un mensaje (consola) (p. 127)• Envío de un mensaje (SDK de AWS) (p. 127)

Versión de API 2010-03-31126

Page 134: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje (consola)

Envío de un mensaje (consola)1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://

console.aws.amazon.com/sns/v2/home.2. En el menú de la consola, establezca el selector de regiones en una región que admita la mensajería

SMS (p. 142).3. En el panel de navegación, elija Text messaging (SMS).4. En la página Text messaging (SMS), elija Send a text message (SMS). Se abrirá la ventana Send text

message (SMS).5. En Message type, seleccione una de las siguientes opciones:

• Promotional: mensajes que no son de importancia crítica, como mensajes de marketing. AmazonSNS optimiza la entrega de mensajes para conseguir el costo más bajo.

• Transactional: mensajes de importancia crítica que admiten transacciones del cliente, como clavesde acceso de un solo uso para la autenticación multifactor. Amazon SNS optimiza el envío demensajes para conseguir la máxima confianza.

Esta opción de nivel de mensaje anula el tipo de mensaje predeterminado, que establece en la páginaText messaging preferences.

Para obtener información sobre los precios de mensajes promocionales y transaccionales, consulteGlobal SMS Pricing.

6. En Number, escriba el número de teléfono al que desee enviar el mensaje.7. En Message, escriba el mensaje que va a enviar.8. (Opcional) En Sender ID, escriba un ID personalizado que contenga hasta 11 caracteres

alfanuméricos y que tenga al menos una letra y no tenga espacios. El ID de remitente se muestracomo el remitente del mensaje en el dispositivo receptor. Por ejemplo, puede utilizar la marca de sunegocio para facilitar el reconocimiento del origen del mensaje.

La compatibilidad con los ID de remitente varía según el país o la región. Por ejemplo, los mensajesque se entregan a números de teléfono de los EE. UU. no mostrarán el ID de remitente. En el caso delos países y regiones que admiten el ID de remitente, consulte Regiones y países admitidos (p. 142).

Si no especifica un ID de remitente, el mensaje mostrará un código largo como ID de remitente enlos países o regiones admitidos. En cuanto a los países y regiones que requieren un ID de remitentealfabético, el mensaje mostrará NOTICE como ID de remitente.

Este ID de remitente de nivel de mensaje anula el ID de remitente predeterminado, que establece enla página Text messaging preferences.

9. Elija Send text message.

Envío de un mensaje (SDK de AWS)Para enviar un mensaje SMS mediante uno de los SDK de AWS, utilice la acción de dicho SDKque corresponda a la solicitud Publish de la API de Amazon SNS. Con esta solicitud, puedeenviar un mensaje SMS directamente a un número de teléfono. También puede utilizar el parámetroMessageAttributes para establecer valores para los siguientes nombres de atributo:

AWS.SNS.SMS.SenderID

ID personalizado que contiene hasta 11 caracteres alfanuméricos, entre ellos, como mínimo, unaletra, y que no tenga espacios. El ID de remitente se muestra como el remitente del mensaje en el

Versión de API 2010-03-31127

Page 135: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje (SDK de AWS)

dispositivo receptor. Por ejemplo, puede utilizar la marca de su negocio para facilitar el reconocimientodel origen del mensaje.

La compatibilidad con los ID de remitente varía según el país o la región. Por ejemplo, los mensajesque se entregan a números de teléfono de los EE. UU. no mostrarán el ID de remitente. En el caso delos países y regiones que admiten el ID de remitente, consulte Regiones y países admitidos (p. 142).

Si no especifica un ID de remitente, el mensaje mostrará un código largo como ID de remitente enlos países y regiones admitidos. En cuanto a los países o regiones que requieren un ID de remitentealfabético, el mensaje mostrará NOTICE como ID de remitente.

Este atributo de nivel de mensaje anula el atributo de nivel de cuenta DefaultSenderID, queestablece mediante la solicitud SetSMSAttributes.

AWS.SNS.SMS.MaxPrice

Cantidad máxima en USD que está dispuesto a gastar para enviar el mensaje SMS. Amazon SNS noenviará el mensaje si determina que al hacerlo el precio superaría el precio máximo.

Este atributo no se aplica si sus costos de SMS del mes hasta la fecha ya han superado ellímite establecido para el atributo MonthlySpendLimit, que se establece mediante la solicitudSetSMSAttributes.

Si está enviando el mensaje a un tema de Amazon SNS, el precio máximo se aplica a cada entrega demensaje a cada número de teléfono que esté suscrito al tema.

AWS.SNS.SMS.SMSType

El tipo de mensaje que envía:• Promotional (valor predeterminado): mensajes que no son de importancia crítica, como mensajes

de marketing. Amazon SNS optimiza la entrega de mensajes para conseguir el costo más bajo.• Transactional: mensajes de importancia crítica que admiten transacciones del cliente, como

claves de acceso de un solo uso para la autenticación multifactor. Amazon SNS optimiza el envío demensajes para conseguir la máxima confianza.

Este atributo de nivel de mensaje anula el atributo de nivel de cuenta DefaultSMSType, queestablece mediante la solicitud SetSMSAttributes.

(Opcional) Configuración de los atributos de un mensaje (AWSSDK for Java)Los valores de los atributos de un mensaje se establecen creando un mapa que asocie las claves deatributo a los objetos MessageAttributeValue. Cada objeto MessageAttributeValue se inicializacon un valor de atributo y cada objeto declara el tipo de datos del valor. En el siguiente ejemplo seestablece el ID de remitente en "mySenderID", el precio máximo en 0,50 USD y el tipo de SMS enpromocional:

Map<String, MessageAttributeValue> smsAttributes = new HashMap<String, MessageAttributeValue>();smsAttributes.put("AWS.SNS.SMS.SenderID", new MessageAttributeValue() .withStringValue("mySenderID") //The sender ID shown on the device. .withDataType("String"));smsAttributes.put("AWS.SNS.SMS.MaxPrice", new MessageAttributeValue() .withStringValue("0.50") //Sets the max price to 0.50 USD. .withDataType("Number"));smsAttributes.put("AWS.SNS.SMS.SMSType", new MessageAttributeValue() .withStringValue("Promotional") //Sets the type to promotional. .withDataType("String"));

Versión de API 2010-03-31128

Page 136: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a varios números de teléfono

Cuando envía un mensaje SMS, aplica sus atributos al objeto PublishRequest.

Envío de un mensaje (AWS SDK for Java)En el siguiente ejemplo se utiliza el método publish de la clase AmazonSNSClient para enviar unmensaje directamente a un número de teléfono:

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); String message = "My SMS message"; String phoneNumber = "+1XXX5550100"; Map<String, MessageAttributeValue> smsAttributes = new HashMap<String, MessageAttributeValue>(); //<set SMS attributes> sendSMSMessage(snsClient, message, phoneNumber, smsAttributes);}

public static void sendSMSMessage(AmazonSNSClient snsClient, String message, String phoneNumber, Map<String, MessageAttributeValue> smsAttributes) { PublishResult result = snsClient.publish(new PublishRequest() .withMessage(message) .withPhoneNumber(phoneNumber) .withMessageAttributes(smsAttributes)); System.out.println(result); // Prints the message ID.}

Cuando ejecuta este ejemplo, se muestra el ID de mensaje en la ventana de salida de la consola de suIDE:

{MessageId: 9b888f80-15f7-5c30-81a2-c4511a3f5229}

Envío de un mensaje SMS a varios números deteléfono

Puede publicar un único mensaje SMS en muchos números de teléfono a la vez suscribiendo dichosnúmeros de teléfono a un tema. Un tema es un canal de comunicación al que puede añadir suscriptoresy publicar mensajes para todos ellos. Un suscriptor recibirá todos los mensajes que se publiquen en eltema hasta que usted cancele la suscripción o el suscriptor cancele la recepción de mensajes SMS de sucuenta.

Temas• Envío de un mensaje a un tema (consola) (p. 129)• Envío de un mensaje a un tema (SDK de AWS) (p. 130)

Envío de un mensaje a un tema (consola)Para crear un tema

Ejecute los pasos siguientes si todavía no tiene un tema al que quiera enviar mensajes SMS.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el menú de la consola, establezca el selector de regiones en una región que admita la mensajeríaSMS (p. 142).

Versión de API 2010-03-31129

Page 137: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a un tema (SDK de AWS)

3. En el panel de navegación, elija Topics.4. En la página Topics, elija Create new topic. Se abrirá la ventana Create new topic.5. En Topic name escriba un nombre.6. (Opcional) En Display name escriba un prefijo personalizado para sus mensajes SMS. Cuando envía

un mensaje al tema, Amazon SNS anexa delante el nombre de visualización seguido de un corcheteangular de cierre (>) y un espacio. Los nombres de visualización no distinguen entre mayúsculas yminúsculas y Amazon SNS convierte los nombres de visualización en caracteres en mayúsculas.Por ejemplo, si el nombre de visualización de un tema MyTopic y el mensaje es Hello World!, elmensaje se verá como en la línea siguiente:

MYTOPIC> Hello World!

7. Elija Create new topic. El nombre del tema y el nombre de recurso de Amazon (ARN) se añaden a latabla en la página Topics.

Para añadir suscripciones a SMS

Las suscripciones le permiten enviar un mensaje SMS a varios destinatarios publicando una única vez elmensaje en su tema.

1. En la página Topics, elija el ARN del tema.2. En la página de detalles del tema, elija Create Subscription.3. En Protocol seleccione SMS.4. En Endpoint escriba el número de teléfono al que desee enviar mensajes.5. Elija Create Subscription. La información de suscripción se añade a la tabla Subscriptions.

Puede repetir estos pasos para añadir más números de teléfono y puede añadir otros tipos desuscripciones, como el correo electrónico.

Para enviar el mensaje

Cuando publica un mensaje en un tema, Amazon SNS intenta entregar dicho mensaje a todos los númerosde teléfono que están suscritos al tema.

1. En la página de detalles del tema, elija Publish to topic.2. En la página Publish a message, en Subject, deje el campo en blanco a menos que su tema contenga

suscripciones de correo electrónico y quiera publicar tanto en las suscripciones de correo electrónicocomo en las de SMS. El texto que escriba en Subject se utilizará como línea de asunto del correoelectrónico.

3. En Message escriba un mensaje.

Para obtener información sobre los límites de tamaño de los mensajes SMS, consulte Envío de unmensaje SMS (p. 126).

Si su tema tiene un nombre de visualización, Amazon SNS lo añade al mensaje, lo que aumenta lalongitud del mensaje. La longitud del nombre de visualización es el número de caracteres del nombremás dos caracteres para el corchete angular de cierre (>) y el espacio que Amazon SNS añade.

4. Elija Publish message. Amazon SNS envía el mensaje SMS y muestra un mensaje de confirmación.

Envío de un mensaje a un tema (SDK de AWS)Para enviar un mensaje SMS a un tema mediante uno de los SDK de AWS, utilice las acciones del SDKque correspondan a las siguientes solicitudes en la API de Amazon SNS.

Versión de API 2010-03-31130

Page 138: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a un tema (SDK de AWS)

CreateTopic

Crea un tema en el que puede suscribir números de teléfono y publica mensajes en todos estosnúmeros de teléfono a la vez publicando en el tema.

Subscribe

Suscribe un número de teléfono a un tema.Publish

Envía un mensaje a cada uno de los números de teléfono suscritos a un tema.

Puede utilizar el parámetro MessageAttributes para establecer varios atributos del mensaje (porejemplo, el precio máximo). Para obtener más información, consulte Envío de un mensaje (SDK deAWS) (p. 127).

Creación de un tema (AWS SDK for Java)El siguiente ejemplo utiliza el método createTopic de la clase AmazonSNSClient para crear un temaque tiene como nombre "mySNSTopic":

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); String topicArn = createSNSTopic(snsClient);}

public static String createSNSTopic(AmazonSNSClient snsClient) { CreateTopicRequest createTopic = new CreateTopicRequest("mySNSTopic"); CreateTopicResult result = snsClient.createTopic(createTopic); System.out.println("Create topic request: " + snsClient.getCachedResponseMetadata(createTopic)); System.out.println("Create topic result: " + result); return result.getTopicArn();}

El ejemplo utiliza el método getCachedResponseMetadata para obtener el ID de solicitud.

Cuando ejecuta este ejemplo, se muestra lo siguiente en la ventana de salida de la consola de su IDE:

{TopicArn: arn:aws:sns:us-east-1:123456789012:mySNSTopic}CreateTopicRequest - {AWS_REQUEST_ID=93f7fc90-f131-5ca3-ab18-b741fef918b5}

Añadir una suscripción de SMS a su tema (AWS SDK for Java)El siguiente ejemplo utiliza el método subscribe de la clase AmazonSNSClient para añadir unasuscripción a un tema:

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); String phoneNumber = "+1XXX5550100"; String topicArn = createSNSTopic(snsClient); subscribeToTopic(snsClient, topicArn, "sms", phoneNumber);}

//<create SNS topic>

public static void subscribeToTopic(AmazonSNSClient snsClient, String topicArn, String protocol, String endpoint) { SubscribeRequest subscribe = new SubscribeRequest(topicArn, protocol, endpoint); SubscribeResult subscribeResult = snsClient.subscribe(subscribe);

Versión de API 2010-03-31131

Page 139: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEnvío de un mensaje a un tema (SDK de AWS)

System.out.println("Subscribe request: " + snsClient.getCachedResponseMetadata(subscribe)); System.out.println("Subscribe result: " + subscribeResult);}

Este ejemplo crea el objeto subscribeRequest y le transmite los siguientes argumentos:

• topicArn: el nombre de recurso de Amazon (ARN) del tema al que añade una suscripción.• "sms": la opción de protocolo de una suscripción de SMS.• endpoint: el número de teléfono que suscribe al tema.

El ejemplo utiliza el método getCachedResponseMetadata para obtener el ID de la solicitud desuscripción.

Cuando ejecuta este ejemplo, se muestra el ID de la solicitud de suscripción en la ventana de la consola desu IDE:

SubscribeRequest - {AWS_REQUEST_ID=f38fe925-8093-5bd4-9c19-a7c7625de38c}

(Opcional) Configuración de los atributos de un mensaje (AWSSDK for Java)Los valores de los atributos de un mensaje se establecen creando un mapa que asocie las claves deatributo a los objetos MessageAttributeValue. Cada objeto MessageAttributeValue se inicializacon un valor de atributo y cada objeto declara el tipo de datos del valor. En el siguiente ejemplo seestablece el ID de remitente en "mySenderID", el precio máximo en 0,50 USD y el tipo de SMS enpromocional:

Map<String, MessageAttributeValue> smsAttributes = new HashMap<String, MessageAttributeValue>();smsAttributes.put("AWS.SNS.SMS.SenderID", new MessageAttributeValue() .withStringValue("mySenderID") //The sender ID shown on the device. .withDataType("String"));smsAttributes.put("AWS.SNS.SMS.MaxPrice", new MessageAttributeValue() .withStringValue("0.50") //Sets the max price to 0.50 USD. .withDataType("Number"));smsAttributes.put("AWS.SNS.SMS.SMSType", new MessageAttributeValue() .withStringValue("Promotional") //Sets the type to promotional. .withDataType("String"));

Para obtener más información acerca de los atributos de un mensaje, consulte Envío de un mensaje (SDKde AWS) (p. 127).

Cuando envía un mensaje SMS, aplica sus atributos al objeto PublishRequest.

Publicación de un mensaje en su tema (AWS SDK for Java)El siguiente ejemplo utiliza el método publish de la clase AmazonSNSClient para publicar un mensajeSMS en un tema:

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); String message = "My SMS message"; Map<String, MessageAttributeValue> smsAttributes = new HashMap<String, MessageAttributeValue>(); //<set SMS attributes> String topicArn = createSNSTopic(snsClient); //<subscribe to topic>

Versión de API 2010-03-31132

Page 140: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorMonitorización de la actividad de SMS

sendSMSMessageToTopic(snsClient, topicArn, message, smsAttributes);}

//<create topic method>

//<subscribe to topic method>

public static void sendSMSMessageToTopic(AmazonSNSClient snsClient, String topicArn, String message, Map<String, MessageAttributeValue> smsAttributes) { PublishResult result = snsClient.publish(new PublishRequest() .withTopicArn(topicArn) .withMessage(message) .withMessageAttributes(smsAttributes)); System.out.println(result);}

Amazon SNS intentará entregar dicho mensaje a todos los números de teléfono que estén suscritos altema.

Este ejemplo crea el objeto publishRequest mientras transmite el nombre de recurso de Amazon (ARN)de tema y el mensaje como argumentos. El objeto publishResult captura el ID de mensaje que AmazonSNS devuelve.

Cuando ejecuta este ejemplo, se muestra el ID de mensaje en la ventana de salida de la consola de suIDE:

{MessageId: 9b888f80-15f7-5c30-81a2-c4511a3f5229}

Monitorización de la actividad de SMSMediante la monitorización de la actividad de SMS, puede realizar un seguimiento de los números deteléfono de destino, las entregas realizadas correctamente o que han producido un error, los motivosdel error, los costos y otra información. Amazon SNS le permite consultar las estadísticas en la consola,enviando información a Amazon CloudWatch y enviando informes de uso de SMS diarios a un bucket deAmazon S3 que especifique.

Temas• Visualización de las estadísticas de entrega de SMS (p. 133)• Visualización de métricas y logs de Amazon CloudWatch para entregas de SMS (p. 134)• Visualización de informes de uso de SMS diarios (p. 136)

Visualización de las estadísticas de entrega de SMSPuede utilizar la consola de Amazon SNS para ver estadísticas de sus entregas de SMS recientes.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el menú de la consola, establezca el selector de regiones en una región que admita la mensajeríaSMS (p. 142).

3. En el panel de navegación, elija Text messaging (SMS).4. En la página Text messaging (SMS), en la sección Account stats, vea los gráficos de sus entregas de

mensajes SMS transaccionales y promocionales. Cada gráfico muestra los siguientes datos de losúltimos 15 días:

• Tasa de entrega (porcentaje de entregas correctas)

Versión de API 2010-03-31133

Page 141: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorVisualización de métricas y logs de CloudWatch

• Envíos (número de intentos de entrega)• Errores (número de entregas erróneas)

En esta página, también puede seleccionar el botón Usage para ir al bucket de Amazon S3 en el quealmacena sus informes de uso diarios. Para obtener más información, consulte Visualización de informesde uso de SMS diarios (p. 136).

Visualización de métricas y logs de AmazonCloudWatch para entregas de SMSPuede utilizar Amazon CloudWatch y Amazon CloudWatch Logs para monitorear sus entregas demensajes SMS.

Temas• Visualización de las métricas de Amazon CloudWatch (p. 134)• Ver CloudWatch Logs (p. 134)• Log de ejemplo para una entrega de SMS correcta (p. 135)• Log de ejemplo para una entrega de SMS errónea (p. 135)• Motivos de error de entrega de SMS (p. 135)

Visualización de las métricas de Amazon CloudWatchAmazon SNS recopila automáticamente las métricas de sus entregas de mensajes SMS y las inserta enAmazon CloudWatch. Puede utilizar CloudWatch para monitorear estas métricas y crear alarmas pararecibir una alerta cuando una métrica traspase un umbral. Por ejemplo, puede monitorear las métricas deCloudWatch para informarse de su tasa de entrega de SMS y sus cargos por SMS del mes hasta la fecha.

Para obtener más información sobre la monitorización de métricas de CloudWatch, la configuración dealarmas de CloudWatch y los tipos de métricas disponibles, consulte Monitorización de Amazon SNS conCloudWatch (p. 200).

Ver CloudWatch LogsPuede recopilar información sobre entregas de mensajes SMS correctas y erróneas habilitando a AmazonSNS para que escriba en Amazon CloudWatch Logs. Por cada mensaje SMS que envíe, Amazon SNSescribirá un log que contenga el precio del mensaje, su estado (correcto o error), el motivo del error (si elmensaje generó un error), el tiempo de permanencia del mensaje y otra información.

Para habilitar CloudWatch Logs para sus mensajes SMS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el menú de la consola, establezca el selector de regiones en una región que admita la mensajeríaSMS (p. 142).

3. En el panel de navegación, elija Text messaging (SMS).4. En la página Text messaging (SMS), elija Manage text messaging preferences.5. En la página Text messaging preferences, en IAM role for CloudWatch Logs access, cree un rol de

IAM que permita a Amazon SNS escribir logs para entregas de SMS en CloudWatch Logs:

a. Elija Create IAM role.b. En la página SNS is requesting permission to use resources in your account, elija Allow.

Versión de API 2010-03-31134

Page 142: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorVisualización de métricas y logs de CloudWatch

6. En Default percentage of success to sample, indique el porcentaje de entregas de SMS correctas paralas que Amazon SNS escribirá logs en CloudWatch Logs. Por ejemplo, para escribir logs únicamentepara las entregas erróneas, establezca este valor en 0. Para escribir logs para el 10% de las entregasde correctas, establézcalo en 10. Si no especifica ningún porcentaje, Amazon SNS escribirá logs paratodas las entregas correctas.

7. Elija Update preferences.

Para obtener información sobre las demás opciones de la página Text messaging preferences, consulteConfiguración de las preferencias (consola) (p. 124).

Log de ejemplo para una entrega de SMS correctaEl log de estado de una entrega de SMS correcta será similar al ejemplo siguiente:

{ "notification": { "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf", "timestamp": "2016-06-28 00:40:34.558" }, "delivery": { "phoneCarrier": "My Phone Carrier", "mnc": 270, "destination": "+1XXX5550100”, "priceInUSD": 0.00645, "smsType": "Transactional", "mcc": 310, "providerResponse": "Message has been accepted by phone carrier", "dwellTimeMs": 599, "dwellTimeMsUntilDeviceAck": 1344 }, "status": "SUCCESS"}

Log de ejemplo para una entrega de SMS erróneaEl log de estado de una entrega de SMS errónea será similar al ejemplo siguiente:

{ "notification": { "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625", "timestamp": "2016-06-28 00:40:34.559" }, "delivery": { "mnc": 0, "destination": "+1XXX5550100”, "priceInUSD": 0.00645, "smsType": "Transactional", "mcc": 0, "providerResponse": "Unknown error attempting to reach phone", "dwellTimeMs": 1420, "dwellTimeMsUntilDeviceAck": 1692 }, "status": "FAILURE"}

Motivos de error de entrega de SMSEl motivo de un error se proporciona con el atributo providerResponse. Es posible que los mensajesSMS no se puedan entregar por los motivos siguientes:

Versión de API 2010-03-31135

Page 143: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorVisualización de informes de uso

• El operador de telefonía lo bloquea por considerarlo spam.• El destino está en una lista negra.• Número de teléfono no válido.• Cuerpo de mensaje no válido.• El operador de telefonía ha bloqueado este mensaje.• El operador de telefonía no está disponible o no es posible ponerse en contacto con él.• El teléfono ha bloqueado los SMS.• El teléfono está en la lista negra.• El teléfono no está disponible o no es posible ponerse en contacto con él.• Se ha cancelado la suscripción del número de teléfono.• Esta entrega superaría el precio máximo.• Error desconocido al intentar ponerse en contacto con el teléfono

Visualización de informes de uso de SMS diariosPuede monitorear sus entregas de SMS suscribiéndose a los informes de uso diarios desde Amazon SNS.Cada día que envíe al menos un mensaje SMS, Amazon SNS entregará un informe de uso en formato dearchivo CSV al bucket de Amazon S3 que especifique.

Temas• Información del informe de uso diario (p. 136)• Suscripción a informes de uso diario (p. 136)

Información del informe de uso diarioEl informe de uso contiene la siguiente información de cada mensaje SMS que su cuenta haya entregadocorrectamente:

• Hora de publicación del mensaje (en UTC).• ID de mensaje• Número de teléfono de destino.• Tipo de mensaje.• Estado de entrega.• Precio del mensaje (en USD).• Número de parte (un mensaje se divide en varias partes si es demasiado largo para un único mensaje).• Número total de partes.

Suscripción a informes de uso diarioPara suscribirse a informes de uso diario, debe crear un bucket de Amazon S3 con los permisospertinentes.

Para crear un bucket de Amazon S3 para sus informes de uso diario

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

2. Seleccione la opción Create Bucket.3. En Bucket Name, escriba un nombre, como sns-sms-daily-usage. Para obtener más información

sobre las convenciones y las restricciones que se aplican a los nombres de los buckets, consulte la

Versión de API 2010-03-31136

Page 144: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorVisualización de informes de uso

sección Reglas para la nomenclatura de buckets en la Guía para desarrolladores de Amazon SimpleStorage Service.

4. Seleccione Create.5. En la tabla All Buckets, seleccione el bucket y elija Properties.6. En la sección Permissions, elija Add bucket policy.7. En la ventana Bucket Policy Editor, indique una política que permita al principal del servicio

de Amazon SNS escribir en su bucket. Para ver un ejemplo, consulte Ejemplo de política debucket (p. 137).

Si utiliza la política de ejemplo, acuérdese de reemplazar my-s3-bucket por el nombre de su bucket.8. Seleccione Save.

Para suscribirse a los informes de uso diario

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación, elija Text messaging (SMS).3. En la página Text messaging (SMS), elija Manage text messaging preferences.4. En la página Text messaging preferences, en Reports storage, escriba el nombre del bucket de

Amazon S3 que recibirá los informes de uso de SMS diarios.5. Elija Update preferences.

Para obtener información sobre las demás opciones de la página Text messaging preferences, consulteConfiguración de las preferencias (consola) (p. 124).

Después de suscribirse a informes de uso diario, puede ver los informes en la consola de Amazon S3.También puede visitar la página Text messaging (SMS) de la consola de Amazon SNS y elegir el botónUsage.

Ejemplo de política de bucketLa siguiente política permite al principal del servicio de Amazon SNS ejecutar las acciones s3:PutObjecty s3:GetBucketLocation. Puede utilizar este ejemplo cuando cree un bucket de Amazon S3 pararecibir informes de uso diario de SMS desde Amazon SNS.

{ "Version": "2012-10-17", "Id": "sns-sms-daily-usage-policy", "Statement": [ { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-s3-bucket/*" }, { "Sid": "AllowGetBucketLocation", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::my-s3-bucket" }

Versión de API 2010-03-31137

Page 145: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAdministración de suscripciones

]}

Ejemplo de informe de uso diario

Después de suscribirse a informes de uso diario, cada día Amazon SNS pone un archivo CSV con datosde uso en la siguiente ubicación:

<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz

Cada archivo puede contener hasta 50 000 registros. Si los registros de un día superan este límite,Amazon SNS añadirá varios archivos.

A continuación se muestra un informe de ejemplo:

PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,1,12016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,1,12016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,1,1. . .

Administración de números de teléfono ysuscripciones a SMS

Amazon SNS ofrece varias opciones para administrar quién recibe mensajes SMS desde su cuenta. Conuna frecuencia limitada, puede reactivar números de teléfono en los que se ha desactivado la recepción demensajes SMS desde su cuenta. Para dejar de enviar mensajes a suscripciones a SMS, puede eliminar lassuscripciones o los temas que se publican en ellos.

Temas• Desactivación de la recepción de mensajes SMS (p. 138)• Administración de números de teléfono y suscripciones (consola) (p. 139)• Administración de números de teléfono y suscripciones (SDK de AWS) (p. 140)

Desactivación de la recepción de mensajes SMSCuando la legislación y la normativa locales vigentes así lo exijan (como, por ejemplo, en los EE. UU.y Canadá), los destinatarios de SMS podrán utilizar sus dispositivos para desactivar su suscripciónrespondiendo al mensaje con cualquiera de las palabras siguientes:

• ARRET (francés)• CANCEL• END• OPT-OUT• OPTOUT

Versión de API 2010-03-31138

Page 146: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAdministración de números de

teléfono y suscripciones (consola)

• QUIT• REMOVE• STOP• TD• UNSUBSCRIBE

Para desactivar la suscripción, el destinatario debe responder al mismo código largo o corto que AmazonSNS ha utilizado para enviar el mensaje. Una vez desactivada la suscripción, el destinatario ya no recibirámensajes SMS desde su cuenta de AWS, a menos que reactive el número de teléfono.

Si el número de teléfono está suscrito a un tema de Amazon SNS, la desactivación de la suscripción no laeliminará, pero los mensajes SMS no se entregarán a dicha suscripción a menos que reactive el númerode teléfono.

Administración de números de teléfono ysuscripciones (consola)Puede utilizar la consola de Amazon SNS para controlar qué números de teléfono recibirán mensajes SMSdesde su cuenta.

Reactivación de un número de teléfono que se ha desactivadoPuede visualizar qué números de teléfono han desactivado la recepción de mensajes SMS desde sucuenta y puede reactivarlos para reanudar el envío de mensajes.

Puede reactivar un número de teléfono solo una vez cada 30 días.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el menú de la consola, establezca el selector de regiones en una región que admita la mensajeríaSMS (p. 142).

3. En el panel de navegación, elija Text messaging (SMS).4. En la página Text messaging (SMS), elija View opted out phone numbers. La página Opted out phone

numbers mostrará los números de teléfono desactivados.5. Seleccione la casilla de verificación del número de teléfono que desee reactivar y elija Opt in. El

número de teléfono ya no estará desactivado y recibirá los mensajes SMS que le envíe.

Eliminación de una suscripción a SMSElimine una suscripción a SMS para detener el envío de mensajes SMS a ese número de teléfono cuandopublique en sus temas.

1. En el panel de navegación, seleccione Subscriptions.2. Seleccione las casillas de verificación correspondientes a las suscripciones que desee eliminar. A

continuación, elija Actions y después Delete Subscriptions.3. En la ventana Delete , elija Delete. Amazon SNS elimina la suscripción y muestra un mensaje de

confirmación.

Eliminación de un temaElimine un tema cuando ya no quiera publicar mensajes en sus puntos de enlace suscritos.

Versión de API 2010-03-31139

Page 147: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAdministración de números de teléfono

y suscripciones (SDK de AWS)

1. En el panel de navegación, elija Topics.2. Seleccione las casillas de verificación correspondientes a los temas que desee eliminar. A

continuación, elija Actions y después Delete Topics.3. En la ventana Delete , elija Delete. Amazon SNS elimina el tema y muestra un mensaje de

confirmación.

Administración de números de teléfono ysuscripciones (SDK de AWS)Puede utilizar los SDK de AWS para realizar solicitudes por programa a Amazon SNS y determinar quénúmeros de teléfono pueden recibir mensajes SMS desde su cuenta.

Visualización de todos los números de teléfono desactivadosPara ver todos los números de teléfono desactivados, envíe una solicitud ListPhoneNumbersOptedOuta través de la API de Amazon SNS. Por ejemplo, con el AWS SDK for Java puede utilizar el métodolistPhoneNumbersOptedOut de la clase AmazonSNSClient:

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); listOptOut(snsClient);}

public static void listOptOut(AmazonSNSClient snsClient) { String nextToken = null; do { ListPhoneNumbersOptedOutResult result = snsClient .listPhoneNumbersOptedOut(new ListPhoneNumbersOptedOutRequest() .withNextToken(nextToken)); nextToken = result.getNextToken(); for (String phoneNum : result.getPhoneNumbers()) { System.out.println(phoneNum); } } while (nextToken != null);}

Amazon SNS devuelve una respuesta paginada; por lo que este ejemplo repite la solicitud cada vez queAmazon SNS devuelve un token siguiente. Cuando ejecuta este ejemplo, se muestra una lista de todos losnúmeros que se han desactivado en la ventana de resultados de la consola de su IDE.

Comprobación de la desactivación de un número de teléfonoPara comprobar si un número de teléfono está desactivado, envíe una solicitudCheckIfPhoneNumberIsOptedOut con la API de Amazon SNS. Por ejemplo, con el AWS SDK for Javapuede utilizar el método checkIfPhoneNumberIsOptedOut de la clase AmazonSNSClient:

CheckIfPhoneNumberIsOptedOutRequest request = new CheckIfPhoneNumberIsOptedOutRequest().withPhoneNumber(phoneNumber);System.out.println(snsClient.checkIfPhoneNumberIsOptedOut(request));

Cuando ejecuta este ejemplo, se muestra un resultado verdadero o falso en la ventana de salida de laconsola de su IDE:

{IsOptedOut: false}

Versión de API 2010-03-31140

Page 148: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorReserva de un código corto

Reactivación de un número de teléfono que se ha desactivadoPara reactivar un número de teléfono, envíe una solicitud OptInPhoneNumber con la API de AmazonSNS. Por ejemplo, con el AWS SDK for Java puede utilizar el método optInPhoneNumber de la claseAmazonSNSClient:

snsClient.optInPhoneNumber(new OptInPhoneNumberRequest().withPhoneNumber(phoneNumber));

Puede reactivar un número de teléfono solo una vez cada 30 días.

Eliminación de una suscripción a SMSPara eliminar una suscripción a SMS desde un tema de Amazon SNS, obtenga el ARN de la suscripciónpresentando una solicitud ListSubscriptions con la API de Amazon SNS y luego pase el ARN a unasolicitud Unsubscribe.

Por ejemplo, si usa el AWS SDK for Java, podrá obtener los ARN de la suscripción utilizando el métodolistSubscriptions de la clase AmazonSNSClient:

ListSubscriptionsResult result = snsClient.listSubscriptions();for (Subscription sub : result.getSubscriptions()) { System.out.println(sub);}

Puede eliminar una suscripción trasladando su ARN como argumento de cadena al métodounsubscribe:

snsClient.unsubscribe(subscriptionArn);

Eliminación de un temaPara eliminar un tema y todas sus suscripciones, obtenga el ARN de un tema enviando una solicitudListTopics con la API de Amazon SNS y luego pase el ARN a la solicitud DeleteTopic.

Por ejemplo, si usa el AWS SDK for Java, podrá obtener los ARN de su tema utilizando el métodolistTopics de la clase AmazonSNSClient:

ListTopicsResult result = snsClient.listTopics();for (Topic t : result.getTopics()) { System.out.println(t);}

Puede eliminar un tema trasladando su ARN como argumento de cadena al método deleteTopic:

snsClient.deleteTopic(topicArn);

Reserva de un código corto dedicado paramensajes SMS

Para enviar mensajes SMS mediante un código corto persistente, reserve un código corto dedicado que seasigne a su cuenta y que esté a su disposición exclusivamente.

Versión de API 2010-03-31141

Page 149: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

Un código corto es un número de 5 o 6 dígitos que puede utilizar para enviar mensajes SMS adeterminados destinos. A menudo se utiliza para mensajería de aplicación a persona (A2P), autenticaciónde dos factores (2FA) y marketing. A menos que reserve un código corto, Amazon SNS asignará por símismo un código corto a sus mensajes. Este código corto se comparte con otros usuarios de Amazon SNSy varía en función del destino y del tipo de mensaje (transaccional o promocional). Si reserva un códigocorto, será más fácil para los destinatarios saber que su organización es el remitente de los mensajes.

Su código corto dedicado estará única y exclusivamente a su disposición, por lo que ningún otro usuariopodrá apoderarse de él para enviar mensajes a su público. Por lo tanto, el código corto está en cierto modoprotegido contra actividad maliciosa que pueda arruinar la reputación de su marca o inducir a proveedoresde telefonía inalámbrica a bloquear sus mensajes.

Amazon SNS puede utilizar su código corto para enviar mensajes a números de teléfono de los EstadosUnidos. En cuanto a los demás destinos, Amazon SNS asigna un código largo o alfanumérico según seanecesario.

Un código corto dedicado admite una mayor tasa de entrega, lo que a su vez permite enviar hasta 100mensajes SMS por segundo. Después de reservar un código corto, puede solicitar aumentar este límiteenviando una solicitud de aumento de límite de SNS.

Para obtener información de precios, consulte Worldwide SMS Pricing.

Para reservar un código corto dedicado

1. Vaya al AWS Support Center.2. Elija Create case.3. En Regarding, seleccione Service Limit Increase.4. En Limit Type, seleccione SNS.5. En Resource Type, seleccione Dedicated SMS Short Codes for US destinations.6. En Limit, seleccione la opción que más se parezca a su caso de uso.7. En New limit value, especifique la cantidad de códigos cortos que quiere reservar (por lo general, este

valor es 1).8. En Use Case Description, resuma su caso de uso y cómo los destinatarios se suscribirán a los

mensajes que se envíen con su código corto.9. Seleccione su idioma y método de contacto preferidos y elija Submit.

Un miembro del servicio de atención al cliente se pondrá en contacto con usted para obtener informaciónadicional acerca de su caso de uso, como, por ejemplo, los mensajes personalizados que los integrantesde su público verán cuando respondan a su código corto con AYUDA o DETENER. AWS colaborará conoperadores de telefonía inalámbrica en su nombre para aprovisionar su código corto. Normalmente, losoperadores tardan entre 6 y 12 semanas en aprobar su caso de uso y aprovisionar el código corto paraque pueda enviar mensajes a los suscriptores de sus redes. AWS le enviará una notificación cuando sehaya completado el aprovisionamiento del código corto.

Para cancelar su reserva de código corto, envíe una solicitud a AWS Support.

Regiones y países admitidosActualmente, Amazon SNS admite la mensajería SMS en las regiones siguientes de AWS:

Nombre de la región Región punto de enlace Protocolo

US East (N. Virginia) us-east-1 sns.us-east-1.amazonaws.com

HTTP y HTTPS

Versión de API 2010-03-31142

Page 150: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

Nombre de la región Región punto de enlace Protocolo

EE.UU. Oeste (Oregón) us-west-2 sns.us-west-2.amazonaws.com

HTTP y HTTPS

UE (Irlanda) eu-west-1 sns.eu-west-1.amazonaws.com

HTTP y HTTPS

Asia Pacífico (Tokio) ap-northeast-1 sns.ap-northeast-1.amazonaws.com

HTTP y HTTPS

Asia Pacífico (Singapur) ap-southeast-1 sns.ap-southeast-1.amazonaws.com

HTTP y HTTPS

Asia Pacífico (Sídney) ap-southeast-2 sns.ap-southeast-2.amazonaws.com

HTTP y HTTPS

Puede utilizar Amazon SNS para enviar mensajes SMS a los países y regiones siguientes:

País o región Código de ISO Admite los ID de remitente

Afganistán AF  

Albania AL Sí

Argelia DZ  

Andorra AD Sí

Angola AO Sí

Anguila AI Sí

Antigua y Barbuda AG Sí

Argentina AR  

Armenia AM Sí

Aruba AW Sí

Australia AU Sí

Austria AT Sí

Azerbaiyán AZ  

Bahamas BS Sí

Bahréin BH Sí

Bangladesh BD  

Barbados BB Sí

Belarús BY Sí

Bélgica BE  

Belice BZ Sí

Versión de API 2010-03-31143

Page 151: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

Benín BJ Sí

Bermudas BM Sí

Bután BT Sí

Bolivia BO Sí

Bosnia y Herzegovina BA Sí

Botsuana BW Sí

Brasil BR  

Brunéi BN Sí

Bulgaria BG Sí

Burkina Faso BF Sí

Burundi BI Sí

Camboya KH Sí

Camerún CM Sí

Canadá CA  

Cabo Verde CV Sí

Islas Caimán KY Sí

República Centroafricana CF Sí

Chad TD Sí

Chile CL  

China CN  

Colombia CO  

Comoras KM Sí

Islas Cook CK Sí

Costa Rica CR  

Croacia HR  

Chipre CY Sí

República Checa CZ Sí

República Democrática delCongo

CD  

Dinamarca DK Sí

Yibuti DJ Sí

Versión de API 2010-03-31144

Page 152: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

Dominica DM Sí

República Dominicana DO  

Timor Oriental TL  

Ecuador EC  

Egipto EG  

El Salvador SV  

Guinea Ecuatorial GQ Sí

Estonia EE Sí

Etiopía ET  

Islas Faroe FO Sí

Fiyi FJ Sí

Finlandia FI Sí

Francia FR Sí

Guayana Francesa GF  

Gabón GA Sí

Gambia GM Sí

Georgia GE Sí

Alemania DE Sí

Ghana GH  

Gibraltar GI Sí

Grecia GR Sí

Groenlandia GL Sí

Granada GD Sí

Guadalupe GP Sí

Guam GU  

Guatemala GT  

Guinea GN Sí

Guinea-Bissau GW Sí

Guyana GY Sí

Haití HT Sí

Honduras HN  

Versión de API 2010-03-31145

Page 153: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

Hong Kong HK Sí

Hungría HU  

Islandia IS Sí

India IN  

Indonesia ID  

Irak IQ  

Irlanda IE Sí

Israel IL Sí

Italia IT Sí

Costa de Marfil CI  

Jamaica JM Sí

Japón JP  

Jordania JO Sí

Kazajistán KZ  

Kenia KE  

Kiribati KI  

Kuwait KW  

Kirguistán KG  

Laos LA  

Letonia LV Sí

Líbano LB Sí

Lesoto LS Sí

Liberia LR Sí

Libia LY Sí

Liechtenstein LI Sí

Lituania LT Sí

Luxemburgo LU Sí

Macao MO Sí

Macedonia MK Sí

Madagascar MG Sí

Malawi MW Sí

Versión de API 2010-03-31146

Page 154: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

Malasia MY  

Maldivas MV Sí

Malí ML  

Malta MT Sí

Martinica MQ Sí

Mauritania MR Sí

Mauricio MU Sí

México MX  

Moldavia MD Sí

Mónaco MC  

Mongolia MO Sí

Montenegro ME Sí

Montserrat MS Sí

Marruecos MA  

Mozambique MZ  

Myanmar MM  

Namibia NA  

Nepal NP  

Países Bajos NL Sí

Antillas holandesas AN Sí

Nueva Caledonia NC Sí

Nueva Zelanda NZ  

Nicaragua NI  

Níger NE Sí

Nigeria NG Sí

Noruega NO Sí

Omán OM  

Pakistán PK  

Palaos PW  

Territorio palestino PS Sí

Panamá PA  

Versión de API 2010-03-31147

Page 155: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

Papúa Nueva Guinea PG Sí

Paraguay PY Sí

Perú PE Sí

Filipinas PH  

Polonia PL Sí

Portugal PT Sí

Puerto Rico PR  

Qatar QA  

República del Congo CG  

Isla de Reunión RE Sí

Rumanía RO  

Rusia RU Sí

Ruanda RW Sí

San Cristóbal y Nieves KN  

Santa Lucía LC  

San Vicente y las Granadinas VC  

Samoa WS Sí

Santo Tomé y Príncipe ST Sí

Arabia Saudí SA  

Senegal SN Sí

Serbia RS  

Seychelles SC Sí

Sierra Leona SL Sí

Singapur SG Sí

Eslovaquia SK Sí

Eslovenia SI Sí

Islas Salomón SB Sí

Somalia SO Sí

Sudáfrica ZA  

Corea del Sur KR  

Sudán del Sur SS Sí

Versión de API 2010-03-31148

Page 156: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

España ES Sí

Sri Lanka LK  

Surinam SR Sí

Suazilandia SZ Sí

Suecia SE Sí

Suiza CH Sí

Taiwán TW  

Tayikistán TJ Sí

Tanzania TZ Sí

Tailandia TH  

Togo TG Sí

Tonga TO Sí

Trinidad y Tobago TT Sí

Túnez TN  

Turquía TR  

Turkmenistán TM Sí

Islas Turcas y Caicos TC Sí

Uganda UG Sí

Ucrania UA Sí

Emiratos Árabes Unidos AE  

Reino Unido GB Sí

Estados Unidos US  

Uruguay UY  

Uzbekistán UZ Sí

Vanuatu VU Sí

Venezuela VE  

Vietnam VN  

Islas Vírgenes Británicas VG Sí

Islas Vírgenes (EE. UU.) VI  

Yemen YE Sí

Zambia ZM Sí

Versión de API 2010-03-31149

Page 157: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRegiones y países admitidos

País o región Código de ISO Admite los ID de remitente

Zimbabue ZW Sí

Versión de API 2010-03-31150

Page 158: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Envío de mensajes de Amazon SNSa puntos de enlace HTTP/HTTPS

Puede utilizar Amazon SNS para enviar mensajes de notificación a uno o varios puntos de enlace HTTPo HTTPS. Cuando suscribe un punto de enlace a un tema, puede publicar una notificación en el tema;Amazon SNS enviará una solicitud HTTP POST al entregar el contenido de la notificación al punto deenlace suscrito. Cuando suscribe el punto de enlace, indica si Amazon SNS utiliza HTTP o HTTPS paraenviar la solicitud POST al punto de enlace. Si utiliza HTTPS, puede aprovechar la compatibilidad conAmazon SNS para lo siguiente:

• Indicación de nombre de servidor (SNI): permite que Amazon SNS admita puntos de enlace HTTPS querequieren SNI, como un servidor que solicita varios certificados para alojar varios dominios. Para obtenermás información sobre SNI, consulte http://es.wikipedia.org/wiki/Server_Name_Indication.

• Autenticación de acceso básica o abreviada: le permite especificar un nombre de usuario y contraseñaen la URL HTTPS para la solicitud HTTP POST, como https://usuario:contraseñ[email protected] ohttps://[email protected]. El nombre de usuario y la contraseña se cifran a través de la conexiónSSL establecida al utilizar HTTPS. Solo el nombre de dominio se envía en texto sin formato. Paraobtener más información sobre la autenticación de acceso básica y abreviada, consulte http://www.rfc-editor.org/info/rfc2617

La solicitud contiene el asunto y el mensaje que se publicaron en el tema junto con los metadatos de lanotificación en un documento JSON. La solicitud tendrá un aspecto similar a la siguiente solicitud HTTPPOST. Para obtener más información sobre el encabezado HTTP y el formato JSON del cuerpo de lasolicitud, consulte Encabezados de HTTP/HTTPS (p. 211) y Formato JSON de notificaciones HTTP/HTTPS (p. 214).

POST / HTTP/1.1x-amz-sns-message-type: Notificationx-amz-sns-message-id: da41e39f-ea4d-435a-b922-c6aae3915ebex-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicx-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55Content-Length: 761Content-Type: text/plain; charset=UTF-8Host: ec2-50-17-44-49.compute-1.amazonaws.comConnection: Keep-AliveUser-Agent: Amazon Simple Notification Service Agent

{ "Type" : "Notification", "MessageId" : "da41e39f-ea4d-435a-b922-c6aae3915ebe", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "test", "Message" : "test message", "Timestamp" : "2012-04-25T21:49:25.719Z", "SignatureVersion" : "1", "Signature" : "EXAMPLElDMXvB8r9R83tGoNn0ecwd5UjllzsvSvbItzfaMpN2nk5HVSw7XnOn/49IkxDKz8YrlH2qJXj2iZB0Zo2O71c4qQk1fMUDi3LGpij7RCW7AW9vYYsSqIKRnFS94ilu7NFhUzLiieYr4BKHpdTmdD6c0esKEYBpabxDSc=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55"

Versión de API 2010-03-31151

Page 159: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1: Asegúrese de que el punto de enlace está

listo para procesar mensajes de Amazon SNS

}

Para habilitar un tema de Amazon SNS para que envíe mensajes a un punto de enlace HTTP o HTTPS,siga estos pasos:

Paso 1: Asegúrese de que el punto de enlace está listo para procesar mensajes de AmazonSNS (p. 152)

Paso 2: Suscriba el punto de enlace HTTP/HTTPS al tema de Amazon SNS (p. 155)

Pase 3: Confirme la suscripción (p. 155)

Paso 4: Defina la política de reintentos de entrega para la suscripción (opcional) (p. 156)

Paso 5: Conceda a los usuarios permisos para publicar en el tema (opcional) (p. 156)

Paso 6: Envíe mensajes al punto de enlace HTTP/HTTPS (p. 157)

Paso 1: Asegúrese de que el punto de enlace estálisto para procesar mensajes de Amazon SNS

Antes de suscribir su punto de enlace HTTP o HTTPS a un tema, debe asegurarse de que el punto deenlace HTTP o HTTPS tiene la capacidad de administrar las solicitudes HTTP POST que Amazon SNSutiliza para enviar la confirmación de suscripción y los mensajes de notificación. Normalmente, esto implicacrear e implementar una aplicación web (por ejemplo, un servlet Java si el host del punto de enlace ejecutaLinux con Apache y Tomcat) que procese las solicitudes HTTP de Amazon SNS. Cuando suscribe unpunto de enlace HTTP, Amazon SNS envía una solicitud de confirmación de la suscripción. El punto deenlace debe estar preparado para recibir y procesar esta solicitud cuando cree la suscripción, porqueAmazon SNS envía esta solicitud en ese momento. Amazon SNS no enviará notificaciones al punto deenlace hasta que se confirme la suscripción. Una vez confirmada la suscripción, Amazon SNS enviaránotificaciones al punto de enlace cuando se ejecute una acción de publicación en el tema suscrito.

Para configurar el punto de enlace para que procese los mensajes de confirmación de lasuscripción y de notificación

1. El código debe leer los encabezados HTTP de las solicitudes HTTP POST que Amazon SNS envíaa su punto de enlace. El código debe examinar el campo de encabezado x-amz-sns-message-type, que le indica el tipo de mensaje que Amazon SNS le ha enviado. En este encabezado,puede determinar el tipo de mensaje sin tener que analizar el cuerpo de la solicitud HTTP. Haydos tipos que debe administrar: SubscriptionConfirmation y Notification. El mensajeUnsubscribeConfirmation se utiliza únicamente cuando la suscripción se elimina del tema.

Para obtener información detallada sobre el encabezado HTTP, consulte Encabezados de HTTP/HTTPS (p. 211). La siguiente solicitud HTTP POST es un ejemplo de un mensaje de confirmación dela suscripción.

POST / HTTP/1.1x-amz-sns-message-type: SubscriptionConfirmationx-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1bx-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicContent-Length: 1336Content-Type: text/plain; charset=UTF-8Host: example.comConnection: Keep-AliveUser-Agent: Amazon Simple Notification Service Agent

Versión de API 2010-03-31152

Page 160: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1: Asegúrese de que el punto de enlace está

listo para procesar mensajes de Amazon SNS

{ "Type" : "SubscriptionConfirmation", "MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b", "Token" : "2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Message" : "You have chosen to subscribe to the topic arn:aws:sns:us-west-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.", "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736", "Timestamp" : "2012-04-26T20:45:04.751Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem" }

2. El código debe analizar el documento JSON en el cuerpo de la solicitud HTTP POST para leerlos pares de nombre-valor que conforman el mensaje de Amazon SNS. Utilice un analizadorJSON que se encargue de convertir la representación en forma de secuencias de escape de loscaracteres de control en sus valores de caracteres ASCII (por ejemplo, convertir \n en un carácterde nueva línea). Puede utilizar un analizador JSON existente como Jackson Processor JSON (http://wiki.fasterxml.com/JacksonHome) o crear el suyo propio. Para poder enviar el texto del asunto y loscampos de los mensajes en formato JSON válido, Amazon SNS debe convertir algunos caracteresde control en secuencias de escape que se puedan incluir en el documento JSON. Cuando recibael documento JSON en el cuerpo de la solicitud POST enviada a su punto de enlace, debe convertirlos caracteres incluidos en secuencias de escape en sus valores de caracteres originales si deseauna representación exacta del asunto original y de los mensajes publicados en el tema. Esto esfundamental si desea verificar la firma de una notificación, porque la firma utiliza el mensaje y elasunto en sus formatos originales como parte de la cadena para firmar.

3. El código debe verificar la autenticidad de una notificación, la confirmación de la suscripción o lacancelación del mensaje de confirmación enviado por Amazon SNS. Mediante la información incluidaen el mensaje de Amazon SNS, el punto de enlace puede volver a crear la firma para que puedaverificar el contenido del mensaje cotejando su firma con la firma que Amazon SNS envía con elmensaje. Para obtener más información acerca de la verificación de la firma de un mensaje, consulteVerificación de la firmas de mensajes de Amazon SNS (p. 172).

4. Según el tipo especificado por el campo de encabezado x-amz-sns-message-type, el código debeleer el documento JSON incluido en el cuerpo de la solicitud HTTP y procesar el mensaje. Estas sonlas directrices para administrar los dos tipos principales de mensajes:

SubscriptionConfirmation

Lea el valor de SubscribeURL y visite esa URL. Para confirmar la suscripción y empezar arecibir notificaciones en el punto de enlace, debe visitar la URL SubscribeURL (por ejemplo,enviando una solicitud HTTP GET a la URL). Consulte el ejemplo de la solicitud HTTP del pasoanterior para ver cómo es esa URL SubscribeURL. Para obtener más información sobre elformato del mensaje SubscriptionConfirmation, consulte Formato JSON de confirmaciónde suscripción HTTP/HTTPS (p. 212). Cuando visite la dirección URL, recibirá una respuestasimilar al siguiente documento XML. El documento devuelve el ARN de suscripción del punto deenlace en el elemento ConfirmSubscriptionResult.

<ConfirmSubscriptionResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/"> <ConfirmSubscriptionResult> <SubscriptionArn>arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55</SubscriptionArn> </ConfirmSubscriptionResult>

Versión de API 2010-03-31153

Page 161: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 1: Asegúrese de que el punto de enlace está

listo para procesar mensajes de Amazon SNS

<ResponseMetadata> <RequestId>075ecce8-8dac-11e1-bf80-f781d96e9307</RequestId> </ResponseMetadata> </ConfirmSubscriptionResponse>

En lugar de visitar la URL SubscribeURL, puede confirmar la suscripción mediante la acciónConfirmSubscription con Token establecido en su valor correspondiente en el mensajeSubscriptionConfirmation. Si desea permitir únicamente al propietario del tema y alpropietario de la suscripción que cancelen la suscripción del punto de enlace, puede llamar a laacción ConfirmSubscription con una firma de AWS.

Notificación

Lea los valores de Subject y Message para obtener la información de la notificación que sepublicó en el tema.

Para obtener más información sobre el formato del mensaje Notification, consulteEncabezados de HTTP/HTTPS (p. 211). La siguiente solicitud HTTP POST es un ejemplo de unmensaje de notificación enviado al punto de enlace example.com.

POST / HTTP/1.1x-amz-sns-message-type: Notificationx-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicx-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96Content-Length: 773Content-Type: text/plain; charset=UTF-8Host: example.comConnection: Keep-AliveUser-Agent: Amazon Simple Notification Service Agent

{ "Type" : "Notification", "MessageId" : "22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "My First Message", "Message" : "Hello world!", "Timestamp" : "2012-05-02T00:54:06.655Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEw6JRNwm1LFQL4ICB0bnXrdB8ClRMTQFGBqwLpGbM78tJ4etTwC5zU7O3tS6tGpey3ejedNdOJ+1fkIp9F2/LmNVKb5aFlYq+9rk9ZiPph5YlLmWsDcyC5T+Sy9/umic5S0UQc2PEtgdpVBahwNOdMW4JPwk0kAJJztnc=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96" }

5. Asegúrese de que su punto de enlace responde al mensaje HTTP POST de Amazon SNS con elcódigo de estado adecuado. El tiempo de espera de la conexión se agotará en 15 segundos. Si elpunto de enlace no responde antes de que se agote el tiempo de espera de la conexión, o si devuelveun código de estado fuera del intervalo 200-4xx, Amazon SNS considerará la entrega del mensajecomo un intento fallido.

6. Asegúrese de que el código puede administrar los reintentos de entrega de mensajes de AmazonSNS. Si Amazon SNS no recibe una respuesta correcta del punto de enlace, intenta entregar denuevo el mensaje. Esto se aplica a todos los mensajes, incluido el mensaje de confirmación dela suscripción. De forma predeterminada, si la entrega inicial del mensaje da un error, AmazonSNS realiza tres reintentos con un intervalo entre los intentos fallidos establecido en 20 segundos.Tenga en cuenta que el tiempo de espera de la solicitud del mensaje se agota en 15 segundos. Esto

Versión de API 2010-03-31154

Page 162: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 2: Suscriba el punto de enlace

HTTP/HTTPS al tema de Amazon SNS

significa que si no se pudo entregar el mensaje porque se agotó el tiempo de espera, Amazon SNSlo reintentará aproximadamente 35 segundos después del intento de entrega anterior. Si no le gustala política de entrega predeterminada, puede definir una política de entrega diferente en el punto deenlace.

Para que quede claro: Amazon SNS intenta entregar de nuevo un mensaje únicamente cuandoel intento de entrega ha producido un error. Puede identificar un mensaje mediante el campo deencabezado x-amz-sns-message-id. Comparando los ID de los mensajes que ha procesado conlos mensajes entrantes, puede determinar si se trata de un reintento de entrega del mensaje.

7. Si suscribe un punto de enlace HTTPS, asegúrese de que el punto de enlace tiene un certificado deservidor de una entidad de certificación (CA) de confianza. Amazon SNS solo enviará mensajes apuntos de enlace HTTPS que tengan un certificado de servidor de una CA en la que confíe AmazonSNS. Para obtener una lista de las entidades de certificación de confianza, consulte Entidades decertificación (CA) reconocidas por Amazon SNS para los puntos de enlace HTTPS (p. 164).

8. Implemente el código que ha creado para recibir mensajes de Amazon SNS. Cuando suscriba elpunto de enlace, este debe estar preparado para recibir al menos el mensaje de confirmación de lasuscripción.

Paso 2: Suscriba el punto de enlace HTTP/HTTPSal tema de Amazon SNS

Para enviar mensajes a un punto de enlace HTTP o HTTPS a través de un tema, debe suscribir elpunto de enlace al tema de Amazon SNS. El punto de enlace se especifica por medio de su URL. Parasuscribirse a un tema, puede utilizar la consola de Amazon SNS, el comando sns-subscribe o la acciónde API Subscribe. Antes de empezar, asegúrese de que tiene la dirección URL del punto de enlace quedesea suscribir y de que el punto de enlace está preparado para recibir los mensajes de configuración ynotificación, tal como se describe en el paso 1.

Para suscribir un punto de enlace HTTP o HTTPS a un tema mediante la consola de Amazon SNS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación de la izquierda, haga clic en Topics y después seleccione el tema.3. Haga clic en la lista desplegable Other actions y seleccione Subscribe to topic.4. En la lista desplegable Protocol, seleccione HTTP o HTTPS.5. En el cuadro Endpoint, pegue la dirección URL del punto de enlace al que desea que el tema envíe los

mensajes y, después, haga clic en Create subscription.6. En el mensaje Subscription request received!, haga clic en Close.

El ID de suscripción (Subscription ID) de la nueva suscripción muestra PendingConfirmation. Cuandoconfirme la suscripción, Subscription ID mostrará el ID de suscripción.

Pase 3: Confirme la suscripciónTras la suscripción al punto de enlace, Amazon SNS enviará un mensaje de confirmación de la suscripciónal punto de enlace. Ya debe tener el código que ejecuta las acciones descritas en el paso 1 (p. 152)implementado en su punto de enlace. En concreto, el código del punto de enlace debe recuperar el valorde SubscribeURL del mensaje de confirmación de la suscripción y visitar la ubicación especificada porel valor de SubscribeURL o ponerla a disposición del usuario para que pueda visitar manualmente ladirección SubscribeURL (por ejemplo, mediante un navegador web). Amazon SNS no enviará mensajesal punto de enlace hasta que se confirme la suscripción. Cuando visite la dirección SubscribeURL, la

Versión de API 2010-03-31155

Page 163: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 4: Defina la política de reintentos

de entrega para la suscripción (opcional)

respuesta contendrá un documento XML que incluye un elemento SubscriptionArn que especificael ARN de la suscripción. También puede utilizar la consola de Amazon SNS para comprobar que lasuscripción se ha confirmado: Subscription ID mostrará el ARN de la suscripción en lugar del valorPendingConfirmation que se mostró cuando añadió la suscripción.

Paso 4: Defina la política de reintentos de entregapara la suscripción (opcional)

De forma predeterminada, si la entrega inicial del mensaje da un error, Amazon SNS realiza tres reintentoscon un intervalo entre los intentos fallidos establecido en 20 segundos. Como se ha explicado en el paso1 (p. 152), el punto de enlace debe tener código que pueda administrar los reintentos de entrega demensajes. Mediante la configuración de la política de entrega en un tema o suscripción, puede controlar lafrecuencia y el intervalo con los que Amazon SNS intenta entregar de nuevo los mensajes fallidos. Puedeconfigurar una política de entrega en un tema o en una determinada suscripción.

Paso 5: Conceda a los usuarios permisos parapublicar en el tema (opcional)

De forma predeterminada, el propietario del tema tiene permisos para publicar en el tema. Parapermitir que otros usuarios o aplicaciones publiquen en el tema, debe utilizar AWS Identity and AccessManagement (IAM) para conceder permiso de publicación al tema. Para obtener más información sobrecómo conceder permisos para acciones de Amazon SNS a los usuarios de IAM, consulte Controlling UserAccess to Your AWS Account.

Hay dos formas de controlar el acceso a un tema:

• Añadiendo una política a un usuario o un grupo de IAM. La forma más sencilla de conceder a losusuarios permisos para temas consiste en crear un grupo, añadir la política adecuada al grupo y, acontinuación, añadir usuarios a dicho grupo. Es mucho más fácil añadir y eliminar usuarios de un grupoque mantener un seguimiento de las políticas que se han configurado para los distintos usuarios.

• Añadiendo una política al tema. Si desea conceder permisos para un tema a otra cuenta de AWS, elúnico modo de hacerlo es añadiendo una política que tenga como entidad principal la cuenta de AWS ala que desee conceder los permisos.

Debe utilizar el primer método para la mayoría de los casos (aplicar políticas a grupos y administrarlos permisos de los usuarios añadiendo o eliminando los usuarios a los grupos). Si necesita concederpermisos a un usuario de otra cuenta, utilice el segundo método.

Si ha añadido la política siguiente a un usuario o un grupo de IAM, debe conceder a dicho usuario o a losmiembros de dicho grupo permiso para ejecutar la acción sns:Publish en el tema MyTopic.

{ "Version":"2012-10-17", "Statement":[{ "Sid":"AllowPublishToMyTopic", "Effect":"Allow", "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic" } ]}

Versión de API 2010-03-31156

Page 164: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPaso 6: Envíe mensajes al punto de enlace HTTP/HTTPS

La siguiente política de ejemplo muestra cómo conceder a otra cuenta permisos sobre un tema.Note

Cuando concede a otra cuenta de AWS acceso a un recurso de su cuenta, también concedea los usuarios de IAM que tienen permisos de acceso de nivel de administrador (acceso atodos los recursos) a ese recurso. Al resto de usuarios de IAM de la otra cuenta se les deniegaautomáticamente el acceso al recurso. Si desea conceder a usuarios de IAM específicos deesa cuenta de AWS acceso al recurso, la cuenta o un usuario de IAM con acceso de nivel deadministrador debe delegar los permisos del recurso a esos usuarios de IAM. Para obtener másinformación acerca de la delegación entre cuentas, consulte Habilitar el acceso entre cuentas enla Guía del usuario de IAM.

Si ha añadido la política siguiente a un tema MyTopic en la cuenta 123456789012, debe conceder a lacuenta 111122223333 permiso para ejecutar la acción sns:Publish en dicho tema.

{ "Version":"2012-10-17", "Id":"MyTopicPolicy", "Statement":[{ "Sid":"Allow-publish-to-topic", "Effect":"Allow", "Principal":{ "AWS":"111122223333" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic" } ]}

Paso 6: Envíe mensajes al punto de enlace HTTP/HTTPS

Puede enviar un mensaje a las suscripciones de un tema mediante su publicación en el tema. Parapublicar en un tema, puede utilizar la consola de Amazon SNS, el comando sns-publish o la acción de APIPublish.

Si ha seguido el paso 1 (p. 152), el código que ha implementado en su punto de enlace debería procesarla notificación.

Para publicar en un tema mediante la consola de Amazon SNS

1. Utilizando las credenciales de la cuenta de AWS o del usuario de IAM con permiso para publicar enel tema, inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS enhttps://console.aws.amazon.com/sns/.

2. En el panel de navegación de la izquierda haga clic en Topics y después seleccione un tema.3. Haga clic en el botón Publish to topic.4. En el cuadro Subject, introduzca un asunto (por ejemplo, Probar la publicación en el punto

de enlace).5. En el cuadro Message, introduzca algún texto (por ejemplo, Hello world!) y haga clic en Publish

message.

Aparecerá el siguiente mensaje: Your message has been successfully published.

Versión de API 2010-03-31157

Page 165: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de las políticas de reintento de

Amazon SNS para puntos de enlace HTTP/HTTPS

Configuración de las políticas de reintento deAmazon SNS para puntos de enlace HTTP/HTTPS

Temas• Aplicación de políticas de entrega a temas y suscripciones (p. 160)• Configuración de la tasa de recepción máxima (p. 161)• Fase de reintento inmediato (p. 162)• Fase previa a la interrupción (p. 162)• Fase de interrupción (p. 163)• Fase posterior a la interrupción (p. 164)

A veces, para que las entregas de Amazon SNS a un punto de enlace HTTP/HTTPS se realicencorrectamente, es preciso efectuar más de un intento. Este caso puede producirse, por ejemplo, si elservidor web que aloja el punto de enlace suscrito está desactivado por motivos de mantenimiento o tieneuna gran cantidad de tráfico. Si un intento de entrega inicial no da un resultado satisfactorio del suscriptor,Amazon SNS intenta volver a entregar el mensaje. Dicho intento se denomina reintento. En otras palabras,un reintento es un intento de entrega que se produce después del intento de entrega inicial.

Amazon SNS solo intenta realizar un reintento después de un intento de entrega erróneo. Amazon SNSconsidera que las siguientes situaciones son intentos de entrega erróneos.

• El estado de HTTP se encuentra en el intervalo 500-599.• El estado de HTTP no entra dentro del intervalo 200-599.• Un tiempo de espera agotado (15 segundos). Tenga en cuenta que si el tiempo de espera se agota,

el siguiente reintento se efectuará en el intervalo especificado tras el tiempo de espera agotado. Porejemplo, si el intervalo de reintento es de 20 segundos y el tiempo de espera se agota, el comienzo dela solicitud siguiente se producirá 35 segundos después del comienzo de la solicitud que agotó el tiempode espera.

• Cualquier error de conexión, como un agotamiento del tiempo de espera, un punto de enlaceinaccesible, un certificado SSL erróneo, etc.

Puede utilizar las políticas de entrega para controlar no solo el número total de reintentos, sino también eltiempo entre cada reintento. Puede especificar hasta 100 reintentos en total distribuidos entre cuatro fasesdiscretas. El ciclo de vida máximo de un mensaje en el sistema es de una hora. Este límite de una hora nopuede ampliarse mediante una política de entrega.

1. Fase de reintento inmediato (p. 162): también llamada fase sin retraso; esta fase tiene lugarinmediatamente después del intento inicial de entrega. El valor que establezca para Retries with no

Versión de API 2010-03-31158

Page 166: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de las políticas de reintento de

Amazon SNS para puntos de enlace HTTP/HTTPS

delay determina el número de reintentos que se producirán inmediatamente después del intento deentrega inicial. No hay un plazo de tiempo entre los reintentos de esta fase.

2. Fase previa a la interrupción (p. 162): la fase previa a la interrupción sigue a la fase de reintentoinmediato. Utilice esta fase para crear un conjunto de reintentos que se producen antes de queuna función de interrupción se aplique a los reintentos. Utilice la opción Minimum delay retries paraespecificar el número de reintentos de la fase previa a la interrupción. Puede controlar el tiempo entrereintentos de esta fase mediante la opción Minimum delay.

3. Fase de interrupción (p. 163): esta fase se denomina de interrupción porque puede controlar el plazode tiempo entre los reintentos de esta fase mediante la función de interrupción de reintento. Especifiqueel valor de Minimum delay y el de Maximum delay y después seleccione un valor para Retry backofffunction para definir la rapidez con que el plazo de tiempo aumenta desde el retraso mínimo al retrasomáximo.

4. Fase posterior a la interrupción (p. 164): la fase posterior a la interrupción sigue a la fase deinterrupción. Utilice la opción Maximum delay retries para especificar el número de reintentos de la faseposterior a la interrupción. Puede controlar el tiempo entre reintentos de esta fase mediante la opciónMaximum delay.

La fase de interrupción es la fase utilizada con más frecuencia. Si no se establece ninguna política deentrega, el valor predeterminado será reintentar tres veces en la fase de interrupción, con un plazo detiempo de 20 segundos entre cada reintento. El valor predeterminado para las opciones Minimum delayy Maximum delay es 20. El número predeterminado de reintentos es 3, por lo que la política de reintentopredeterminada realiza un total de 3 reintentos con un plazo de 20 segundos entre cada reintento. En elsiguiente diagrama se muestra el plazo de tiempo asociado a cada reintento.

Para ver cómo la función de interrupción de reintento afecta al plazo de tiempo entre los reintentos,puede establecer el plazo máximo de tiempo en 40 segundos y dejar el resto de opciones en sus valorespredeterminados. Con este cambio, la política de entrega ahora especifica 3 reintentos durante la fase deinterrupción, un plazo de tiempo mínimo de 20 segundos y un plazo de tiempo máximo de 40 segundos.Dado que la función de interrupción predeterminada es lineal, el plazo de tiempo entre los mensajesaumenta a una velocidad constante en el transcurso de la fase de interrupción. Amazon SNS intentael primer reintento después de 20 segundos, el segundo reintento después de 30 segundos y el últimoreintento después de 40 segundos. En el siguiente diagrama se muestra el plazo de tiempo asociado acada reintento.

Versión de API 2010-03-31159

Page 167: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de políticas de entrega a temas y suscripciones

El ciclo de vida máximo de un mensaje en el sistema es de una hora. Este límite de una hora no puedeampliarse mediante una política de entrega.

Note

Solo los tipos de suscripción HTTP y HTTPS son compatibles con las políticas de entrega. Lacompatibilidad con otros tipos de suscripción Amazon SNS (por ejemplo, correo electrónico, SMSo Amazon SQS) no está disponible actualmente.

Aplicación de políticas de entrega a temas ysuscripcionesPuede aplicar políticas de entrega a los temas de Amazon SNS. Si configura una política de entrega en untema, la política se aplica a todas las suscripciones del tema. El siguiente diagrama ilustra un tema con unapolítica de entrega que se aplica a las tres suscripciones asociadas a ese tema.

También puede aplicar políticas de entrega a suscripciones individuales. Si asigna una política de entregaa una suscripción, la política de nivel de suscripción prevalece sobre la política de entrega de nivel detema. En el siguiente diagrama, una suscripción tiene una política de entrega de nivel de suscripción,mientras que las otras dos suscripciones no.

Versión de API 2010-03-31160

Page 168: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de la tasa de recepción máxima

En algunos casos, es posible que desee no tener en cuenta todas las políticas de entrega de suscripciónpara que la política de entrega del tema se aplique a todas las suscripciones, incluso aunque unasuscripción tenga su propia política de entrega. Para configurar Amazon SNS para que aplique su políticade entrega de temas a todas las suscripciones, haga clic en Ignore subscription override en el cuadro dediálogo View/Edit Topic Delivery Policies. En el siguiente diagrama se muestra una política de entrega denivel de tema que se aplica a todas las suscripciones, incluso a la suscripción que tiene su propia políticade entrega de suscripción, debido a que no se han tenido en cuenta concretamente las políticas de nivelde suscripción.

Configuración de la tasa de recepción máximaPuede establecer el número máximo de mensajes por segundo que Amazon SNS envía a un punto deenlace suscrito ajustando la opción Maximum receive rate. Amazon SNS almacena los mensajes queestán a la espera de su entrega durante un máximo de una hora. Los mensajes que superen este límite sedescartan.

• Para establecer una tasa de recepción máxima que se aplique a todas las suscripciones de untema, aplique la configuración en el nivel de tema mediante el cuadro de diálogo Edit Topic DeliveryPolicy. Para obtener más información, consulte Para establecer la tasa de recepción máxima de untema (p. 162).

• Para establecer una tasa de recepción máxima que se aplique a una suscripción específica, apliquela configuración en el nivel de configuración mediante el cuadro de diálogo Edit Subscription DeliveryPolicy. Para obtener más información, consulte Para establecer la tasa de recepción máxima de unasuscripción (p. 162).

Versión de API 2010-03-31161

Page 169: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFase de reintento inmediato

Para establecer la tasa de recepción máxima de un tema

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación de la izquierda, haga clic en Topics y después seleccione el tema.

3. Haga clic en la lista desplegable Other actions y seleccione Edit topic delivery policy.4. En el cuadro Maximum receive rate, escriba un valor entero (por ejemplo, 2).5. Haga clic en Update policy para guardar los cambios.

Para establecer la tasa de recepción máxima de una suscripción

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación de la izquierda haga clic en Topics y después seleccione el ARN de untema.

3. En el panel Topic Details seleccione una suscripción y haga clic en Edit topic delivery policy.4. En el cuadro Maximum receive rate, escriba un valor entero (por ejemplo, 2).5. Haga clic en Update policy para guardar los cambios.

Fase de reintento inmediatoLa fase de reintento inmediato se produce directamente después del intento de entrega inicial. Esta fasetambién se conoce como la fase sin plazo de tiempo, ya que se produce sin que pase tiempo entre losreintentos. El número predeterminado de reintentos de esta fase es 0.

Para establecer el número de reintentos en la fase de reintento inmediato

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación de la izquierda haga clic en Topics y después seleccione el ARN de untema.

3. En el panel Topic Details seleccione Edit topic delivery policy en la lista desplegable Other topicactions.

4. En el cuadro Retries with no delay escriba un valor entero.5. Haga clic en Update policy para guardar los cambios.

Fase previa a la interrupciónLa fase previa a la interrupción sigue a la fase de reintento inmediato. Utilice esta fase si quiere crear unconjunto de uno o varios reintentos que se producen antes de que la función de interrupción afecte al plazode tiempo entre reintentos. En esta fase el tiempo entre reintentos es constante y es igual al valor quese elige para Minimum delay. El valor de Minimum delay afecta a los reintentos de dos fases; se aplica atodos los reintentos de la fase previa a la interrupción y sirve de plazo de tiempo inicial para los reintentosde la fase de interrupción. El número predeterminado de reintentos de esta fase es 0.

Para establecer el número de reintentos de la fase previa a la interrupción

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

Versión de API 2010-03-31162

Page 170: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFase de interrupción

2. En el panel de navegación de la izquierda haga clic en Topics y después seleccione el ARN de untema.

3. En el panel Topic Details seleccione Edit topic delivery policy en la lista desplegable Other topicactions.

4. En el cuadro Minimum delay retries escriba un valor entero.5. En el cuadro Minimum delay escriba un valor entero para establecer el plazo de tiempo entre los

mensajes de esta fase.

El valor que establezca debe ser menor o igual que el valor que establezca para Maximum delay.6. Haga clic en Update policy para guardar los cambios.

Fase de interrupciónLa fase de interrupción es la única fase que se aplica de forma predeterminada. Puede controlar el númerode reintentos de la fase de interrupción utilizando Number of retries.

Important

El valor que elija para Number of retries representa el número total de reintentos, incluidos losreintentos que ha establecido para Retries with no delay, Minimum delay retries y Maximum delayretries.

Puede controlar la frecuencia de los reintentos de la fase de interrupción con tres parámetros.

• Minimum delay: el plazo de tiempo mínimo define el plazo de tiempo asociado al primer intento dereintento de la fase de interrupción.

• Maximum delay: el plazo de tiempo máximo define el plazo de tiempo asociado al intento final dereintento de la fase de interrupción.

• Retry backoff function: el algoritmo de interrupción de reintento define el algoritmo que Amazon SNSutiliza para calcular el plazo de tiempo asociado a todos los intentos de reintento entre el primer y elúltimo reintento de la fase de interrupción.

Puede elegir entre cuatro funciones de interrupción de reintento.

• Linear• Aritmética• Geométrica• Exponencial

En la siguiente captura de pantalla se muestra cómo cada función de interrupción afecta al plazo de tiempoasociado a los mensajes durante el periodo de reintento. El eje vertical representa el plazo de tiempo ensegundos asociado a cada uno de los 10 reintentos. El eje horizontal representa el número de reintentos.El plazo de tiempo mínimo es de 5 segundos; el máximo es de 260 segundos.

Versión de API 2010-03-31163

Page 171: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFase posterior a la interrupción

Fase posterior a la interrupciónEl fase posterior a la interrupción es la fase final. Utilice esta fase si quiere crear un conjunto de uno ovarios reintentos que se producen después de que la función de interrupción afecte al plazo de tiempoentre reintentos. En esta fase el tiempo entre reintentos es constante y es igual al valor que se elige paraMaximum delay. El valor de Maximum delay afecta a los reintentos de dos fases; se aplica a todos losreintentos de la fase posterior a la interrupción y sirve de plazo de tiempo final para los reintentos de lafase de interrupción. El número predeterminado de reintentos de esta fase es 0.

Para establecer el número de reintentos de la fase posterior a la interrupción

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación de la izquierda haga clic en Topics y después seleccione el ARN de untema.

3. En el panel Topic Details seleccione Edit topic delivery policy en la lista desplegable Other topicactions.

4. En el cuadro Maximum delay retries escriba un valor entero.5. En el cuadro Maximum delay escriba un valor entero para establecer el plazo de tiempo entre los

mensajes de esta fase.

El valor que establezca debe ser superior o igual que el valor que establezca para Minimum delay.6. Haga clic en Update policy para guardar los cambios.

Entidades de certificación (CA) reconocidas porAmazon SNS para los puntos de enlace HTTPS

Si suscribe un punto de enlace HTTPS a un tema, ese punto de enlace debe tener un certificado deservidor firmado por una entidad de certificación (CA) de confianza. Amazon SNS solo entregará mensajesa puntos de enlace HTTPS que tengan un certificado firmado de una entidad de certificación de confianzareconocida por Amazon SNS. Amazon SNS reconoce las siguientes entidades de certificación.

mozillacert81.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E

Versión de API 2010-03-31164

Page 172: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

mozillacert99.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F1:7F:6F:B6:31:DC:99:E3:A3:C8:7F:FE:1C:F1:81:10:88:D9:60:33swisssignplatinumg2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66mozillacert145.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 10:1D:FA:3F:D5:0B:CB:BB:9B:B5:60:0C:19:55:A4:1A:F4:73:3A:04mozillacert37.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97mozillacert4.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E3:92:51:2F:0A:CF:F5:05:DF:F6:DE:06:7F:75:37:E1:65:EA:57:4Bamzninternalitseccag2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): FA:07:FA:A6:35:D0:BC:98:72:3D:B3:08:8A:CD:CD:CD:3E:23:F9:EDmozillacert70.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3Cmozillacert88.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4Dmozillacert134.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 70:17:9B:86:8C:00:A4:FA:60:91:52:22:3F:9F:3E:32:BD:E0:05:62mozillacert26.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11verisignclass2g2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9Dmozillacert77.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6mozillacert123.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 2A:B6:28:48:5E:78:FB:F3:AD:9E:79:10:DD:6B:DF:99:72:2C:96:E5utndatacorpsgcca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4mozillacert15.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BBdigicertglobalrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36mozillacert66.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DD:E1:D2:A9:01:80:2E:1D:87:5E:84:B3:80:7E:4B:B1:FD:99:41:34mozillacert112.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37utnuserfirstclientauthemailca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B1:72:B1:A5:6D:95:F9:1F:E5:02:87:E1:4D:37:EA:6A:44:63:76:8Averisignc2g1.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 67:82:AA:E0:ED:EE:E2:1A:58:39:D3:C0:CD:14:68:0A:4F:60:14:2Amozillacert55.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12mozillacert101.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 99:A6:9B:E6:1A:FE:88:6B:4D:2B:82:00:7C:B8:54:FC:31:7E:15:39mozillacert119.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FEverisignc3g1.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6Bmozillacert44.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6mozillacert108.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9Cmozillacert95.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57keynectisrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 9C:61:5C:4D:4D:85:10:3A:53:26:C2:4D:BA:EA:E4:A2:D2:D5:CC:97mozillacert141.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 31:7A:2A:D0:7F:2B:33:5E:F5:A1:C3:4E:4B:57:E8:B7:D8:F1:FC:A6equifaxsecureglobalebusinessca1, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 7E:78:4A:10:1C:82:65:CC:2D:E1:F1:6D:47:B4:40:CA:D9:0A:19:45baltimorecodesigningca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 30:46:D8:C8:88:FF:69:30:C3:4A:FC:CD:49:27:08:7C:60:56:7B:0Dmozillacert33.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7Dmozillacert0.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74

Versión de API 2010-03-31165

Page 173: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

mozillacert84.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D3:C0:63:F2:19:ED:07:3E:34:AD:5D:75:0B:32:76:29:FF:D5:9A:F2mozillacert130.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E5:DF:74:3C:B6:01:C4:9B:98:43:DC:AB:8C:E8:6A:81:10:9F:E4:8Emozillacert148.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7mozillacert22.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96verisignc1g1.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 90:AE:A2:69:85:FF:14:80:4C:43:49:52:EC:E9:60:84:77:AF:55:6Fmozillacert7.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8Amozillacert73.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0Emozillacert137.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4A:65:D5:F4:1D:EF:39:B8:B8:90:4A:4A:D3:64:81:33:CF:C7:A1:D1swisssignsilverg2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CBmozillacert11.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43mozillacert29.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CEmozillacert62.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6Bmozillacert126.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 25:01:90:19:CF:FB:D9:99:1C:B7:68:25:74:8D:94:5F:30:93:95:42soneraclass1ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 07:47:22:01:99:CE:74:B9:7C:B0:3D:79:B2:64:A2:C8:55:E9:33:FFmozillacert18.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 79:98:A3:08:E1:4D:65:85:E6:C2:1E:15:3A:71:9F:BA:5A:D3:4A:D9mozillacert51.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9Bmozillacert69.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19mozillacert115.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9verisignclass3g5ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5utnuserfirsthardwareca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7addtrustqualifiedca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CFmozillacert40.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5mozillacert58.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0verisignclass3g3ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6mozillacert104.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4F:99:AA:93:FB:2B:D1:37:26:A1:99:4A:CE:7F:F0:05:F2:93:5D:1Emozillacert91.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04thawtepersonalfreemailca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E6:18:83:AE:84:CA:C1:C1:CD:52:AD:E8:E9:25:2B:45:A6:4F:B7:E2certplusclass3pprimaryca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 21:6B:2A:29:E6:2A:00:CE:82:01:46:D8:24:41:41:B9:25:11:B2:79verisignc3g4.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3Aswisssigngoldg2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61mozillacert47.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 1B:4B:39:61:26:27:6B:64:91:A2:68:6D:D7:02:43:21:2D:1F:1D:96mozillacert80.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BBmozillacert98.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): C9:A8:B9:E7:55:80:5E:58:E3:53:77:A7:25:EB:AF:C3:7B:27:CC:D7

Versión de API 2010-03-31166

Page 174: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

mozillacert144.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27starfieldclass2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8Amozillacert36.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 23:88:C9:D3:71:CC:9E:96:3D:FF:7D:3C:A7:CE:FC:D6:25:EC:19:0Dmozillacert3.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 87:9F:4B:EE:05:DF:98:58:3B:E3:60:D6:33:E7:0D:3F:FE:98:71:AFglobalsignr2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FEmozillacert87.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74mozillacert133.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:B5:FF:67:9B:0C:79:96:1F:C8:6E:44:22:00:46:13:DB:17:92:84mozillacert25.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5verisignclass1g2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 27:3E:E1:24:57:FD:C4:F9:0C:55:E8:2B:56:16:7F:62:F5:32:E5:47mozillacert76.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7mozillacert122.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68godaddysecurecertificationauthority, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 7C:46:56:C3:06:1F:7F:4C:0D:67:B3:19:A8:55:F6:0E:BC:11:FC:44mozillacert14.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25equifaxsecureca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3Amozillacert65.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 69:BD:8C:F4:9C:D3:00:FB:59:2E:17:93:CA:55:6A:F3:EC:AA:35:FBmozillacert111.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65certumtrustednetworkca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9Emozillacert129.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79mozillacert54.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FDmozillacert100.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0mozillacert118.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 7E:78:4A:10:1C:82:65:CC:2D:E1:F1:6D:47:B4:40:CA:D9:0A:19:45mozillacert151.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AC:ED:5F:65:53:FD:25:CE:01:5F:1F:7A:48:3B:6A:74:9F:61:78:C6thawteprimaryrootcag3, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2quovadisrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9thawteprimaryrootcag2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12deprecateditsecca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 12:12:0B:03:0E:15:14:54:F4:DD:B3:F5:DE:13:6E:83:5A:29:72:9Dentrustrootcag2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4mozillacert43.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F9:CD:0E:2C:DA:76:24:C1:8F:BD:F0:F0:AB:B6:45:B8:F7:FE:D5:7Amozillacert107.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 8E:1C:74:F8:A6:20:B9:E5:8A:F4:61:FA:EC:2B:47:56:51:1A:52:C6trustcenterclass4caii, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A6:9A:91:FD:05:7F:13:6A:42:63:0B:B1:76:0D:2D:51:12:0C:16:50mozillacert94.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99mozillacert140.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7ttelesecglobalrootclass3ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1

Versión de API 2010-03-31167

Page 175: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

amzninternalcorpca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 43:E3:E6:37:C5:88:05:67:91:37:E3:72:4D:01:7F:F4:1B:CE:3A:97mozillacert32.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 60:D6:89:74:B5:C2:65:9E:8A:0F:C1:88:7C:88:D2:46:69:1B:18:2Cmozillacert83.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A0:73:E5:C5:BD:43:61:0D:86:4C:21:13:0A:85:58:57:CC:9C:EA:46verisignroot.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54mozillacert147.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4camerfirmachambersca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3Cmozillacert21.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CBmozillacert39.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6Emozillacert6.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4verisignuniversalrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54mozillacert72.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8Bgeotrustuniversalca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79mozillacert136.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49mozillacert10.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 5F:3A:FC:0A:8B:64:F6:86:67:34:74:DF:7E:A9:A2:FE:F9:FA:7A:51mozillacert28.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 66:31:BF:9E:F7:4F:9E:B6:C9:D5:A6:0C:BA:6A:BE:D1:F7:BD:EF:7Bmozillacert61.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E0:B4:32:2E:B2:F6:A5:68:B6:54:53:84:48:18:4A:50:36:87:43:84mozillacert79.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27mozillacert125.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9mozillacert17.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1Dmozillacert50.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 8C:96:BA:EB:DD:2B:07:07:48:EE:30:32:66:A0:F3:98:6E:7C:AE:58mozillacert68.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FAmozillacert114.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39mozillacert57.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58verisignc2g3.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 61:EF:43:D7:7F:CA:D4:61:51:BC:98:E0:C3:59:12:AF:9F:EB:63:11verisignclass2g3ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 61:EF:43:D7:7F:CA:D4:61:51:BC:98:E0:C3:59:12:AF:9F:EB:63:11mozillacert103.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 70:C1:8D:74:B4:28:81:0A:E4:FD:A5:75:D7:01:9F:99:B0:3D:50:74mozillacert90.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:ACverisignc3g3.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6mozillacert46.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 40:9D:4B:D9:17:B5:5C:27:B6:9B:64:CB:98:22:44:0D:CD:09:B8:89godaddyclass2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4verisignc4g3.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9Dmozillacert97.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0Fmozillacert143.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7

Versión de API 2010-03-31168

Page 176: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

mozillacert35.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 2A:C8:D5:8B:57:CE:BF:2F:49:AF:F2:FC:76:8F:51:14:62:90:7A:41mozillacert2.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3Autnuserfirstobjectca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E1:2D:FB:4B:41:D7:D9:C3:2B:30:51:4B:AC:1D:81:D8:38:5E:2D:46mozillacert86.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 74:2C:31:92:E6:07:E4:24:EB:45:49:54:2B:E1:BB:C5:3E:61:74:E2mozillacert132.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 39:21:C1:15:C1:5D:0E:CA:5C:CB:5B:C4:F0:7D:21:D8:05:0B:56:6Aaddtrustclass1ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9Dmozillacert24.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16verisignc1g3.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5mozillacert9.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9amzninternalrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A7:B7:F6:15:8A:FF:1E:C8:85:13:38:BC:93:EB:A2:AB:A4:09:EF:06mozillacert75.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3Aentrustevca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9secomscrootca2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74camerfirmachambersignca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0Csecomscrootca1, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7mozillacert121.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9Dmozillacert139.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9mozillacert13.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91mozillacert64.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 62:7F:8D:78:27:65:63:99:D2:7D:7F:90:44:C9:FE:B3:F3:3E:FA:9Amozillacert110.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17mozillacert128.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A9:E9:78:08:14:37:58:88:F2:05:19:B0:6D:2B:0D:2B:60:16:90:7Dentrust2048ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31mozillacert53.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 7F:8A:B0:CF:D0:51:87:6A:66:F3:36:0F:47:C8:8D:8C:D3:35:FC:74mozillacert117.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74mozillacert150.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 33:9B:6B:14:50:24:9B:55:7A:01:87:72:84:D9:E0:2F:C3:D2:D8:E9thawteserverca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 9F:AD:91:A6:CE:6A:C6:C5:00:47:C4:4E:C9:D4:A5:0D:92:D8:49:79secomvalicertclass1ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E5:DF:74:3C:B6:01:C4:9B:98:43:DC:AB:8C:E8:6A:81:10:9F:E4:8Emozillacert42.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BFgtecybertrustglobalca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74mozillacert106.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E7:A1:90:29:D3:D5:52:DC:0D:0F:C6:92:D3:EA:88:0D:15:2E:1A:6Bequifaxsecureebusinessca1, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DA:40:18:8B:91:89:A3:ED:EE:AE:DA:97:FE:2F:9D:F5:B7:D1:8A:41mozillacert93.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 31:F1:FD:68:22:63:20:EE:C6:3B:3F:9D:EA:4A:3E:53:7C:7C:39:17quovadisrootca3, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85

Versión de API 2010-03-31169

Page 177: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

quovadisrootca2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7soneraclass2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27mozillacert31.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11mozillacert49.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 61:57:3A:11:DF:0E:D8:7E:D5:92:65:22:EA:D0:56:D7:44:B3:23:71mozillacert82.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 2E:14:DA:EC:28:F0:FA:1E:8E:38:9A:4E:AB:EB:26:C0:0A:D3:83:C3mozillacert146.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 21:FC:BD:8E:7F:6C:AF:05:1B:D1:B3:43:EC:A8:E7:61:47:F2:0F:8Abaltimorecybertrustca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74mozillacert20.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61mozillacert38.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CB:A1:C5:F8:B0:E3:5E:B8:B9:45:12:D3:F9:34:A2:E9:06:10:D3:36mozillacert5.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6mozillacert71.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0Cverisignclass3g4ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3Amozillacert89.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9Dmozillacert135.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18camerfirmachamberscommerceca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1mozillacert27.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1Bverisignclass3g2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0Fmozillacert60.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3mozillacert78.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2Fcertumca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18deutschetelekomrootca2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BFmozillacert124.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CFmozillacert16.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13secomevrootca1, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7Dmozillacert67.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:ADglobalsignr3ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:ADmozillacert113.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31aolrootca2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:B5:FF:67:9B:0C:79:96:1F:C8:6E:44:22:00:46:13:DB:17:92:84trustcenteruniversalcai, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 6B:2F:34:AD:89:58:BE:62:FD:B0:6B:5C:CE:BB:9D:D9:4F:4E:39:F3aolrootca1, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 39:21:C1:15:C1:5D:0E:CA:5C:CB:5B:C4:F0:7D:21:D8:05:0B:56:6Amozillacert56.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2verisignc2g2.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9Dverisignclass1g3ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5

Versión de API 2010-03-31170

Page 178: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEntidades de certificación para puntos de enlace HTTPS

mozillacert102.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83addtrustexternalca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68verisignclass3ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6Bverisignc3g2.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0Fmozillacert45.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0verisignc4g2.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 0B:77:BE:BB:CB:7A:A2:47:05:DE:CC:0F:BD:6A:02:FC:7A:BD:9B:52digicertassuredidrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43verisignclass1ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CE:6A:64:A3:09:E4:2F:BB:D9:85:1C:45:3E:64:09:EA:E8:7D:60:F1mozillacert109.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71thawtepremiumserverca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E0:AB:05:94:20:72:54:93:05:60:62:02:36:70:F7:CD:2E:FC:66:66verisigntsaca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): BE:36:A4:56:2F:B2:EE:05:DB:B3:D3:23:23:AD:F4:45:08:4E:D6:56mozillacert96.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1mozillacert142.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85thawteprimaryrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81mozillacert34.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9mozillacert1.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 23:E5:94:94:51:95:F2:41:48:03:B4:D5:64:D2:A3:A3:F5:D8:8B:8Cmozillacert85.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48valicertclass2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 31:7A:2A:D0:7F:2B:33:5E:F5:A1:C3:4E:4B:57:E8:B7:D8:F1:FC:A6mozillacert131.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 37:9A:19:7B:41:85:45:35:0C:A6:03:69:F3:3C:2E:AF:47:4F:20:79mozillacert149.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1geotrustprimaryca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96mozillacert23.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81verisignc1g2.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 27:3E:E1:24:57:FD:C4:F9:0C:55:E8:2B:56:16:7F:62:F5:32:E5:47mozillacert8.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 3E:2B:F7:F2:03:1B:96:F3:8C:E6:C4:D8:A8:5D:3E:2D:58:47:6A:0Fmozillacert74.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3Fmozillacert120.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DA:40:18:8B:91:89:A3:ED:EE:AE:DA:97:FE:2F:9D:F5:B7:D1:8A:41geotrustglobalca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12mozillacert138.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E1:9F:E3:0E:8B:84:60:9E:80:9B:17:0D:72:A8:C5:BA:6E:14:09:BDmozillacert12.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36comodoaaaca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49mozillacert63.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8Ecertplusclass2primaryca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BBmozillacert127.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12

Versión de API 2010-03-31171

Page 179: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorVerificación de las firmas de mensajes

ttelesecglobalrootclass2ca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9mozillacert19.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B4:35:D4:E1:11:9D:1C:66:90:A7:49:EB:B3:94:BD:63:7B:A7:82:B7digicerthighassuranceevrootca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25mozillacert52.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 8B:AF:4C:9B:1D:F0:2A:92:F7:DA:12:8E:B9:1B:AC:F4:98:60:4B:6Fmozillacert116.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21globalsignca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9Cmozillacert41.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 6B:2F:34:AD:89:58:BE:62:FD:B0:6B:5C:CE:BB:9D:D9:4F:4E:39:F3mozillacert59.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54mozillacert105.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:ECtrustcenterclass2caii, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6Emozillacert92.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A3:F1:33:3F:E2:42:BF:CF:C5:D1:4E:8F:39:42:98:40:68:10:D1:A0geotrustprimarycag3, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FDentrustsslca, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 99:A6:9B:E6:1A:FE:88:6B:4D:2B:82:00:7C:B8:54:FC:31:7E:15:39verisignc3g5.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5geotrustprimarycag2, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0mozillacert30.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): E7:B4:F6:9D:61:EC:90:69:DB:7E:90:A7:40:1A:3C:F4:7D:4F:E8:EEmozillacert48.pem, Apr 22, 2014, trustedCertEntry, Certificate fingerprint (SHA1): A0:A1:AB:90:C9:FC:84:7B:3B:12:61:E8:97:7D:5F:D3:22:61:D3:CC

Verificación de la firmas de mensajes de AmazonSNS

Debe verificar la autenticidad de una notificación, la confirmación de la suscripción o la cancelación delmensaje de confirmación enviado por Amazon SNS. Mediante la información incluida en el mensaje deAmazon SNS, el punto de enlace puede volver a crear la cadena para firmar y la firma para que puedaverificar el contenido del mensaje cotejando la firma que ha vuelto a crear desde el contenido del mensajecon la firma que Amazon SNS envía con el mensaje.

Para ayudar a evitar que se produzcan ataques de suplantación, debe hacer lo siguiente cuando verifiquelos mensajes enviados por Amazon SNS:

• Utilice siempre HTTPS para obtener el certificado de Amazon SNS.• Valide la autenticidad del certificado.• Verifique que el certificado se ha recibido de Amazon SNS.• Cuando sea posible, utilice uno de los SDK de AWS admitidos para Amazon SNS para validar y

verificar los mensajes. Por ejemplo, con AWS SDK para PHP usaría el método isValid de la claseMessageValidator.

Para ver código de ejemplo de un servlet Java que administra mensajes de Amazon SNS , consulte Códigode ejemplo para un servlet Java de un punto de enlace de Amazon SNS (p. 174).

Versión de API 2010-03-31172

Page 180: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorVerificación de las firmas de mensajes

Para verificar la firma de un mensaje de Amazon SNS cuando se utilizan solicitudes basadas enconsultas HTTP

1. Extraiga los pares de nombre-valor del documento JSON en el cuerpo de la solicitud HTTP POSTque Amazon SNS envía a su punto de enlace. Usará los valores de algunos de los pares de nombre-valor para crear la cadena para firmar. Cuando verifique la firma de un mensaje de Amazon SNS,es fundamental que convierta los caracteres de control incluidos en secuencias de escape en susrepresentaciones originales en forma de caracteres en los valores Message y Subject. Estos valoresdeben estar en sus formatos originales cuando se utilizan como parte de la cadena para firmar. Paraobtener información sobre cómo analizar el documento JSON, consulte Paso 1: Asegúrese de que elpunto de enlace está listo para procesar mensajes de Amazon SNS (p. 152).

SignatureVersion indica la versión de la firma. A partir de la versión de la firma, puede determinarlos requisitos de generación de la firma. Para las notificaciones de Amazon SNS, Amazon SNS admiteactualmente Signature Version 1. En esta sección se indican los pasos para crear una firma medianteSignature Versión 1.

2. Obtenga el certificado X509 que Amazon SNS usó para firmar el mensaje. El valor SigningCertURLapunta a la ubicación en la que se encuentra el certificado X509 utilizado para crear la firma digitalpara el mensaje. Recupere el certificado de esta ubicación.

3. Extraiga la clave pública del certificado. La clave pública del certificado especificada porSigningCertURL se utiliza para verificar la autenticidad y la integridad del mensaje.

4. Determine el tipo de mensaje. El formato de la cadena para firmar depende del tipo de mensaje,especificado por el valor de Type.

5. Cree la cadena para firmar. La cadena para firmar es un carácter de nueva línea: una lista delimitadade pares de nombre-valor del mensaje. Cada par de nombre-valor se representa con el nombreseguido de un carácter de nueva línea, seguido de un valor y con un carácter de nueva línea al final.Los pares de nombre-valor se deben mostrar en el orden de clasificación de bytes.

En función del tipo de mensaje, la cadena para firmar debe tener los siguientes pares de nombre-valor.

Notificación

Los mensajes de notificación deben contener los siguientes pares de nombre-valor:

MessageMessageIdSubject (if included in the message)TimestampTopicArnType

El siguiente ejemplo es una cadena para firmar de una notificación (Notification).

MessageMy Test MessageMessageId4d4dc071-ddbf-465d-bba8-08f81c89da64SubjectMy subjectTimestamp2012-06-05T04:37:04.321ZTopicArnarn:aws:sns:us-east-1:123456789012:s4-MySNSTopic-1G1WEFCOXTC0PTypeNotification

Versión de API 2010-03-31173

Page 181: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCódigo de ejemplo para un servlet

Java de un punto de enlace

SubscriptionConfirmation y UnsubscribeConfirmation

Los mensajes SubscriptionConfirmation y UnsubscribeConfirmation deben contenerlos siguientes pares de nombre-valor:

MessageMessageIdSubscribeURLTimestampTokenTopicArnType

El siguiente ejemplo es una cadena para firmar de una confirmación de suscripción(SubscriptionConfirmation).

MessageMy Test MessageMessageId3d891288-136d-417f-bc05-901c108273eeSubscribeURLhttps://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:s4-MySNSTopic-1G1WEFCOXTC0P&Token=2336412f37fb687f5d51e6e241d09c8058323f60b964268bfe08ce35640228c208a66d3621bd9f7b012918cfdcfe65e153df551f76df58ed147f1245e330ce77ceff06dedab9f051f7028657e6c42750bf64bc9ef711d494e9f7637b86e690779eb5568f72466806b246bd244fa9392b1bc01eeb1c5e420847a745b7aa4b0085Timestamp2012-06-03T19:25:13.719ZToken2336412f37fb687f5d51e6e241d09c8058323f60b964268bfe08ce35640228c208a66d3621bd9f7b012918cfdcfe65e153df551f76df58ed147f1245e330ce77ceff06dedab9f051f7028657e6c42750bf64bc9ef711d494e9f7637b86e690779eb5568f72466806b246bd244fa9392b1bc01eeb1c5e420847a745b7aa4b0085TopicArnarn:aws:sns:us-west-2:123456789012:s4-MySNSTopic-1G1WEFCOXTC0PTypeSubscriptionConfirmation

6. Descodifique el valor de Signature del formato Base64. El mensaje entrega la firma en el valor deSignature, que está codificado en Base64. Antes de comparar el valor de la firma con la firma queha calculado, asegúrese de descodificar el valor de Signature de Base64 para comparar los valoresutilizando el mismo formato.

7. Genere el valor hash derivado del mensaje de Amazon SNS. Envíe el mensaje de Amazon SNS, enformato canónico, a la misma función hash que se utilizó para generar la firma.

8. Genere el valor hash certificado del mensaje de Amazon SNS. El valor hash certificado es el resultadode utilizar el valor de la clave pública (del paso 3) para descifrar la firma entregada con el mensaje deAmazon SNS.

9. Verifique la autenticidad y la integridad del mensaje de Amazon SNS. Compare el valor hash derivado(del paso 7) con el valor hash certificado (del paso 8). Si los valores son idénticos, el receptor puedeestar seguro de que el mensaje no se ha modificado mientras estaba en tránsito y de que se haoriginado desde Amazon SNS. Si los valores no son idénticos, el receptor no debe confiar en elmensaje.

Código de ejemplo para un servlet Java de unpunto de enlace de Amazon SNS

Important

Los siguientes fragmentos de código le ayudarán a entender cómo un servlet Java procesalas solicitudes HTTP POST de Amazon SNS. Debe asegurarse de que todas las partes deestos fragmentos son adecuadas para sus fines antes de implementarlas en un entorno de

Versión de API 2010-03-31174

Page 182: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCódigo de ejemplo para un servlet

Java de un punto de enlace

producción. Por ejemplo, para impedir que se produzcan ataques de suplantación en un entornode producción, debe verificar que la identidad de los mensajes de Amazon SNS recibidosprocede de Amazon SNS. Puede hacer esto comprobando que el valor del nombre DNS (DNSName=sns.us-west-2.amazonaws.com en us-west-2;; variará en función de la región) en el campoSubject Alternative Name, tal como aparece en el certificado de Amazon SNS, es el mismo paralos mensajes de Amazon SNS recibidos. Para obtener más información sobre la verificación dela identidad del servidor, consulte la sección 3.1. Server Identity en RFC 2818. Consulte tambiénVerificación de la firmas de mensajes de Amazon SNS (p. 172)

El siguiente método implementa un ejemplo de un controlador de solicitudes HTTP POST de Amazon SNSen un servlet Java.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SecurityException {

//Get the message type header. String messagetype = request.getHeader("x-amz-sns-message-type"); //If message doesn't have the message type header, don't process it. if (messagetype == null) { return; }

// Parse the JSON message in the message body // and hydrate a Message object with its contents // so that we have easy access to the name/value pairs // from the JSON message. Scanner scan = new Scanner(request.getInputStream()); StringBuilder builder = new StringBuilder(); while (scan.hasNextLine()) { builder.append(scan.nextLine()); } Message msg = readMessageFromJson(builder.toString());

// The signature is based on SignatureVersion 1. // If the sig version is something other than 1, // throw an exception. if (msg.getSignatureVersion().equals("1")) { // Check the signature and throw an exception if the signature verification fails. if (isMessageSignatureValid(msg)) { log.info(">>Signature verification succeeded"); } else { log.info(">>Signature verification failed"); } throw new SecurityException("Signature verification failed."); } else { log.info(">>Unexpected signature version. Unable to verify signature."); throw new SecurityException("Unexpected signature version. Unable to verify signature."); }

// Process the message based on type. if (messagetype.equals("Notification")) { //TODO: Do something with the Message and Subject. //Just log the subject (if it exists) and the message. String logMsgAndSubject = ">>Notification received from topic " + msg.getTopicArn(); if (msg.getSubject() != null) { logMsgAndSubject += " Subject: " + msg.getSubject(); } logMsgAndSubject += " Message: " + msg.getMessage(); log.info(logMsgAndSubject); } else if (messagetype.equals("SubscriptionConfirmation")) { //TODO: You should make sure that this subscription is from the topic you expect. Compare topicARN to your list of topics

Versión de API 2010-03-31175

Page 183: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCódigo de ejemplo para un servlet

Java de un punto de enlace

//that you want to enable to add this endpoint as a subscription.

//Confirm the subscription by going to the subscribeURL location //and capture the return value (XML message body as a string) Scanner sc = new Scanner(new URL(msg.getSubscribeURL()).openStream()); StringBuilder sb = new StringBuilder(); while (sc.hasNextLine()) { sb.append(sc.nextLine()); } log.info(">>Subscription confirmation (" + msg.getSubscribeURL() + ") Return value: " + sb.toString()); //TODO: Process the return value to ensure the endpoint is subscribed. } else if (messagetype.equals("UnsubscribeConfirmation")) { //TODO: Handle UnsubscribeConfirmation message. //For example, take action if unsubscribing should not have occurred. //You can read the SubscribeURL from this message and //re-subscribe the endpoint. log.info(">>Unsubscribe confirmation: " + msg.getMessage()); } else { //TODO: Handle unknown message type. log.info(">>Unknown message type."); } log.info(">>Done processing message: " + msg.getMessageId());}

El siguiente método Java de ejemplo crea una firma mediante la información de un objeto Message quecontiene los datos enviados en el cuerpo de la solicitud y verifica esa firma con la firma original codificadaen Base64, que también se lee del objeto Message.

private static boolean isMessageSignatureValid(Message msg) { try { URL url = new URL(msg.getSigningCertURL()); InputStream inStream = url.openStream(); CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream); inStream.close();

Signature sig = Signature.getInstance("SHA1withRSA"); sig.initVerify(cert.getPublicKey()); sig.update(getMessageBytesToSign(msg)); return sig.verify(Base64.decodeBase64(msg.getSignature())); } catch (Exception e) { throw new SecurityException("Verify method failed.", e); }}

Los siguientes métodos Java de ejemplo se ejecutan a la vez para crear la cadena para firmar deun mensaje de Amazon SNS. El método getMessageBytesToSign llama al método string-to-signcorrespondiente en función del tipo de mensaje y ejecuta la cadena para firmar como una matriz de bytes.Los métodos buildNotificationStringToSign y buildSubscriptionStringToSign crean lacadena para firmar en función de los formatos descritos Verificación de la firmas de mensajes de AmazonSNS (p. 172).

private static byte [] getMessageBytesToSign (Message msg) { byte [] bytesToSign = null; if (msg.getType().equals("Notification")) bytesToSign = buildNotificationStringToSign(msg).getBytes(); else if (msg.getType().equals("SubscriptionConfirmation") || msg.getType().equals("UnsubscribeConfirmation")) bytesToSign = buildSubscriptionStringToSign(msg).getBytes(); return bytesToSign;

Versión de API 2010-03-31176

Page 184: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCódigo de ejemplo para un servlet

Java de un punto de enlace

}

//Build the string to sign for Notification messages.public static String buildNotificationStringToSign(Message msg) { String stringToSign = null;

//Build the string to sign from the values in the message. //Name and values separated by newline characters //The name value pairs are sorted by name //in byte sort order. stringToSign = "Message\n"; stringToSign += msg.getMessage() + "\n"; stringToSign += "MessageId\n"; stringToSign += msg.getMessageId() + "\n"; if (msg.getSubject() != null) { stringToSign += "Subject\n"; stringToSign += msg.getSubject() + "\n"; } stringToSign += "Timestamp\n"; stringToSign += msg.getTimestamp() + "\n"; stringToSign += "TopicArn\n"; stringToSign += msg.getTopicArn() + "\n"; stringToSign += "Type\n"; stringToSign += msg.getType() + "\n"; return stringToSign;}

//Build the string to sign for SubscriptionConfirmation //and UnsubscribeConfirmation messages.public static String buildSubscriptionStringToSign(Message msg) { String stringToSign = null; //Build the string to sign from the values in the message. //Name and values separated by newline characters //The name value pairs are sorted by name //in byte sort order. stringToSign = "Message\n"; stringToSign += msg.getMessage() + "\n"; stringToSign += "MessageId\n"; stringToSign += msg.getMessageId() + "\n"; stringToSign += "SubscribeURL\n"; stringToSign += msg.getSubscribeURL() + "\n"; stringToSign += "Timestamp\n"; stringToSign += msg.getTimestamp() + "\n"; stringToSign += "Token\n"; stringToSign += msg.getToken() + "\n"; stringToSign += "TopicArn\n"; stringToSign += msg.getTopicArn() + "\n"; stringToSign += "Type\n"; stringToSign += msg.getType() + "\n"; return stringToSign;}

Versión de API 2010-03-31177

Page 185: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRequisitos previos

Invocación de funciones Lambdamediante notificaciones de AmazonSNS

Amazon SNS y AWS Lambda están integrados para que pueda invocar funciones Lambda connotificaciones de Amazon SNS. Cuando se publica un mensaje en un tema de SNS que tiene una funciónLambda suscrita, dicha función Lambda se invoca con la carga del mensaje publicado. La función Lambdarecibe la carga del mensaje como un parámetro de entrada y puede manipular la información del mensaje,publicar el mensaje en otros temas de SNS o enviar el mensaje a otros servicios de AWS.

Además, Amazon SNS también es compatible con los atributos de estado de entrega del mensaje para lasnotificaciones enviadas a los puntos de enlace de Lambda. Para obtener más información, consulte UsingAmazon SNS Topic Attributes for Message Delivery Status.

Requisitos previosPara invocar funciones Lambda mediante notificaciones de Amazon SNS, necesita lo siguiente:

• Función Lambda• Tema de Amazon SNS

Para obtener información acerca de cómo crear una función Lambda, consulte Getting Started with AWSLambda. Para obtener información acerca de cómo crear un tema de Amazon SNS consulte Creación deun tema.

Configuración de Amazon SNS con puntos deenlace Lambda con la Consola de administraciónde AWS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel Navigation de la izquierda, haga clic en Topics y después haga clic en el tema al quequiere suscribir un punto de enlace Lambda.

3. Haga clic en Actions y Subscribe to topic.4. En el cuadro desplegable Protocolo, seleccione AWS Lambda.5. En el cuadro desplegable Endpoint, seleccione el ARN de la función Lambda.6. En el cuadro desplegable Version or Alias, seleccione una versión o un alias disponible para utilizarlo.

También puede elegir $LATEST para especificar la última versión de la función Lambda. Si nodesea especificar una versión ni un alias, también puede elegir default que, desde un punto de vistafuncional, es lo mismo que $LATEST. Para obtener más información, consulte Control de versiones yalias de las funciones de AWS Lambda.

Versión de API 2010-03-31178

Page 186: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de Amazon SNS con puntos de enlaceLambda con la Consola de administración de AWS

7. Haga clic en Create subscription.

Cuando se publica un mensaje en un tema de SNS que tiene una función Lambda suscrita, dicha funciónLambda se invoca con la carga del mensaje publicado. Para obtener más información sobre cómo crear unalmacén para el historial de mensajes de muestra mediante SNS, Lambda y Amazon DynamoDB, consulteel blog de desarrollo de móviles de AWS Invoking AWS Lambda functions via Amazon SNS.

Versión de API 2010-03-31179

Page 187: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de los atributos del estado de entrega

del mensaje con la Consola de administración de AWS

Uso de los atributos de tema deAmazon SNS para el estado deentrega del mensaje

Amazon SNS admite registrar el estado de entrega de los mensajes de notificación enviados a temas conlos puntos de enlace de Amazon SNS siguientes:

• Aplicación• HTTP• Lambda• SQS

Después de configurar los atributos de estado de entrega de un mensaje, las entradas de log se enviarána CloudWatch Logs para los mensajes enviados a un tema suscrito a un punto de enlace Amazon SNS.El log del estado de entrega de los mensajes aporta información operativa de mejor calidad, como lasiguiente:

• Saber si un mensaje se ha entregado al punto de enlace de Amazon SNS.• Identificar la respuesta enviada desde el punto de enlace de Amazon SNS a Amazon SNS.• Determinar el tiempo de permanencia del mensaje (el tiempo entre la marca de tiempo de publicación y

justo antes de entregarlo a un punto de enlace de Amazon SNS).

Para configurar los atributos de tema para el estado de entrega del mensaje, puede utilizar la Consola deadministración de AWS, los kits de desarrollo de software (SDK) de AWS o la API de consulta.

Temas• Configuración de los atributos del estado de entrega del mensaje con la Consola de administración de

AWS (p. 180)• Configuración de los atributos del estado de entrega del mensaje para los temas suscritos a puntos de

enlace de Amazon SNS con los SDK de AWS (p. 181)

Configuración de los atributos del estadode entrega del mensaje con la Consola deadministración de AWS

Los pasos siguientes describen cómo utilizar la consola para configurar los atributos del estado de entregadel mensaje para las notificaciones procedentes de Amazon SNS que van a un punto de enlace de AWSLambda.

Para configurar el estado de entrega de un mensaje para las notificaciones procedentes deAmazon SNS que van a un punto de enlace de Lambda:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

Versión de API 2010-03-31180

Page 188: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorConfiguración de los atributos del estado de entrega

del mensaje para los temas suscritos a puntosde enlace de Amazon SNS con los SDK de AWS

2. En el panel Navigation de la izquierda, haga clic en Topics y después en el tema en el que quiererecibir la información de estado de entrega del mensaje.

3. Haga clic en Actions y después en Delivery status.4. Haga clic en la casilla de verificación Lambda.5. En el cuadro de diálogo Delivery Status, haga clic en Create IAM Roles.

Se le redirigirá a la consola de IAM.6. Haga clic en Allow para dar a Amazon SNS acceso de escritura para utilizar CloudWatch Logs en su

nombre.7. Cambie de nuevo al cuadro de diálogo Delivery Status y escriba un número en el campo Percentage

of Success to Sample (0-100) para indicar el porcentaje de mensajes enviados correctamente cuyosCloudWatch Logs desea recibir.

Note

Una vez que haya configurado los atributos de aplicación del estado de entrega del mensaje,todas las entregas de mensaje que hayan resultado erróneas generarán un CloudWatchLogs.

8. Por último, haga clic en Save Configuration.

Ahora podrá ver y analizar los CloudWatch Logs que contienen el estado de entrega del mensaje.Para obtener más información sobre el uso de los CloudWatch consulte la documentación deCloudWatch.

Configuración de los atributos del estado deentrega del mensaje para los temas suscritos apuntos de enlace de Amazon SNS con los SDK deAWS

Los SDK de AWS proporcionan API en varios idiomas para utilizar atributos de estado de entrega delmensaje con Amazon SNS.

Atributos del temaPuede utilizar los valores de nombre de atributo de tema siguientes para el estado de entrega del mensaje:

Aplicación

• ApplicationSuccessFeedbackRoleArn• ApplicationSuccessFeedbackSampleRate• ApplicationFailureFeedbackRoleArn

Note

Además de poder configurar atributos de tema para el estado de envío de los mensajes denotificación enviados a puntos de enlace de aplicación de Amazon SNS, también puedeconfigurar atributos de aplicación para el estado de entrega de los mensaje de notificación deinserción enviados a los servicios de notificación de inserción. Para obtener más información,consulte Using Amazon SNS Application Attributes for Message Delivery Status.

Versión de API 2010-03-31181

Page 189: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEjemplo de Java para la configuración de atributos de tema

HTTP

• HTTPSuccessFeedbackRoleArn• HTTPSuccessFeedbackSampleRate• HTTPFailureFeedbackRoleArn

Lambda

• LambdaSuccessFeedbackRoleArn• LambdaSuccessFeedbackSampleRate• LambdaFailureFeedbackRoleArn

SQS

• SQSSuccessFeedbackRoleArn• SQSSuccessFeedbackSampleRate• SQSFailureFeedbackRoleArn

Los atributos <ENDPOINT>SuccessFeedbackRoleArn y <ENDPOINT>FailureFeedbackRoleArnse utilizan para dar a Amazon SNS acceso de escritura para utilizar CloudWatch Logs en su nombre.El atributo <ENDPOINT>SuccessFeedbackSampleRate permite especificar el porcentaje de lafrecuencia de muestreo (0-100) de los mensajes entregados correctamente. Después configure elatributo <ENDPOINT>FailureFeedbackRoleArn; todas las entregas de mensajes erróneas generaránCloudWatch Logs.

Ejemplo de Java para la configuración de atributos detemaEl ejemplo siguiente de Java muestra cómo utilizar la API SetTopicAttributes para configurar atributosde tema para el estado de entrega de los mensajes de notificación enviados a temas suscritos a puntosde enlace de Amazon SNS. En este ejemplo, se supone que se han definido valores de cadena paratopicArn, attribName y attribValue.

final static String topicArn = ("arn:aws:sns:us-east-2:123456789012:MyTopic");final static String attribName = ("LambdaSuccessFeedbackRoleArn");final static String attribValue = ("arn:aws:iam::123456789012:role/SNSSuccessFeedback");

SetTopicAttributesRequest setTopicAttributesRequest = new SetTopicAttributesRequest();setTopicAttributesRequest.withTopicArn(topicArn);setTopicAttributesRequest.setAttributeName(attribName);setTopicAttributesRequest.setAttributeValue(attribValue);

Para obtener más información acerca de SDK para Java, consulte Getting Started with the AWS SDK forJava.

Versión de API 2010-03-31182

Page 190: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorElementos y validación de los atributos de mensajes

Uso de los atributos de mensajes deAmazon SNS

Amazon Simple Notification Service (Amazon SNS) permite la entrega de atributos de mensajes. Losatributos de mensajes le permiten proporcionar elementos de metadatos (como, por ejemplo, marcastemporales, datos geoespaciales, firmas e identificadores) sobre el mensaje. Los atributos de los mensajesson opcionales y están separados del cuerpo del mensaje pero adjuntos a este. El receptor del mensajepuede usar esta información como herramienta para decidir cómo gestionar el mensaje sin tener queprocesar primero el cuerpo del mensaje. Cada mensaje puede tener hasta 10 atributos. Para especificaratributos de mensaje, puede utilizar los kits de desarrollo de software (SDK) de AWS o la API de consulta.

Important

Para utilizar atributos de mensaje con puntos de enlace de Amazon SQS, debe establecer elatributo de suscripción, Raw Message Delivery, en True. Para obtener más informaciónacerca de la entrega de mensajes sin procesar, consulte Apéndice: cargas de gran tamaño yentrega de mensajes sin procesar (p. 219).

También puede utilizar los atributos de mensaje como ayuda para estructurar el mensaje de notificaciónde inserción en los puntos de enlace móviles. En este caso, los atributos del mensaje solo se usan paraayudar a estructurar el mensaje de notificación push. Los atributos no se entregan al punto de enlace, yaque se entregan cuando se envían mensajes con atributos a puntos de enlace de Amazon SQS.

También puede utilizar atributos de mensajes para que sus mensajes se puedan filtrar con políticas defiltro de suscripciones. Las políticas de filtro se aplican a suscripciones de temas. Con una política de filtroaplicada, una suscripción recibe solo los mensajes que tienen atributos aceptados por la política. Paraobtener más información, consulte Filtrado de mensajes con Amazon SNS (p. 189).

Elementos y validación de los atributos demensajes

Cada atributo de mensaje consta de los siguientes elementos:

• Nombre: el nombre del atributo de mensaje puede contener los siguientes caracteres: A-Z, a-z, 0-9,subrayado (_), guion (-) y punto (.). El nombre no debe comenzar ni finalizar con un punto y no debetener dos puntos sucesivos. El nombre distingue entre mayúsculas y minúsculas y debe ser únicoentre todos los nombres de atributo del mensaje. El nombre puede tener una longitud de hasta 256caracteres. El nombre no puede comenzar por "AWS." ni "Amazon." (ni ninguna otra variación en eluso de mayúsculas y minúsculas), ya que estos prefijos están reservados para el uso de Amazon WebServices.

• Type: los tipos de datos admitidos para el atributo de mensaje son String, String.Array, Numbery Binary. El tipo de datos tiene las mismas restricciones en lo que respecta al contenido que el cuerpodel mensaje. El tipo de datos distingue entre mayúsculas y minúsculas y puede tener una longitud dehasta 256 bytes. Para obtener más información, consulte la sección Tipos de datos y validación de losatributos de mensajes (p. 184).

Versión de API 2010-03-31183

Page 191: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorTipos de datos

• Value: el valor del atributo de mensajes especificado por el usuario. Para los tipos de datos String,el atributo de valor tiene las mismas restricciones en lo que respecta al contenido que el cuerpo delmensaje. Para obtener más información, consulte la acción Publish en la Amazon Simple NotificationService API Reference.

El nombre, el tipo y el valor no deben estar vacíos ni ser null. Además, el cuerpo del mensaje no debeestar vacío ni ser null. Todas las partes del atributo de mensaje, incluido el nombre, el tipo y el valor, estánincluidas en la restricción de tamaño del mensaje, que actualmente es de 256 KB.

Tipos de datos y validación de los atributos demensajes

Los tipos de datos de los atributos de mensaje identifican la forma en que Amazon SNS gestiona losvalores de los atributos de mensajes. Por ejemplo, si el tipo es un número, Amazon SNS valida que es unnúmero.

Amazon SNS admite los tipos de datos lógicos siguientes:

• String: los valores de tipo String son Unicode con codificación binaria UTF-8. Para obtener una lista devalores de códigos, consulte http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

• String.Array: una matriz, con formato de cadena, que puede contener varios valores. Los valores puedenser cadenas, números o las palabras clave true, false y null.

• Número: los números son enteros positivos o negativos o números de punto flotante. Tienen unaprecisión y un rango adecuados para abarcar la mayoría de los posibles valores que los tipos integer,float y double admiten normalmente. Un número puede tener un valor comprendido entre -109 y 109, conuna precisión de cinco dígitos tras el separador decimal. Los ceros iniciales y finales se recortan.

• Binary: los atributos de tipo Binary permiten almacenar datos binarios de cualquier índole, tales comodatos comprimidos, datos cifrados o imágenes.

Atributos de mensaje reservados paranotificaciones push en móviles

En la siguiente tabla se muestran los atributos de mensaje reservados para los servicios de notificaciónpush en móviles que puede utilizar para estructurar su mensaje de notificación push:

Servicio denotificacionesautomatizado

Atributo de mensaje reservado Valores permitidos

Baidu AWS.SNS.MOBILE.BAIDU.DeployStatus(opcional)

AWS.SNS.MOBILE.BAIDU.MessageType(opcional)

AWS.SNS.MOBILE.BAIDU.MessageKey(opcional)

1: entorno de desarrollo. 2:entorno de producción. (valorpredeterminado 1).

0: mensaje en la aplicación.1: notificación de alerta (valorpredeterminado 1).

Identificador de mensaje breve quepuede adjuntar al mensaje.

Versión de API 2010-03-31184

Page 192: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de atributos de mensajes

Servicio denotificacionesautomatizado

Atributo de mensaje reservado Valores permitidos

MPNS AWS.SNS.MOBILE.MPNS.Type (obligatorio)

AWS.SNS.MOBILE.MPNS.NotificationClass(obligatorio)

token (para las notificaciones enmosaico), toast, raw.

real time, priority, regular

WNS AWS.SNS.MOBILE.WNS.Type (obligatorio)

AWS.SNS.MOBILE.WNS.CachePolicy(opcional)

AWS.SNS.MOBILE.WNS.Group (opcional)

AWS.SNS.MOBILE.WNS.Match (opcional)

AWS.SNS.MOBILE.WNS.SuppressPopup(opcional)

AWS.SNS.MOBILE.WNS.Tag (opcional)

mismo que X-WNS-Type

mismo que X-WNS-Cache-Policy

mismo que X-WNS-Group

mismo que X-WNS-Match

mismo que X-WNS-SuppressPopup

mismo que X-WNS-Tag

Para obtener más información sobre cómo usar los atributos del mensaje con Baidu, consulte Uso de losatributos del mensaje para estructurar el mensaje (p. 68).

Aplicación de atributos de mensajesPuede publicar un mensaje con atributos mediante la consola de Amazon SNS. O bien, para aplicaratributos de mensajes mediante programación, puede utilizar la API, la AWS Command Line Interface(AWS CLI) o cualquier SDK de AWS compatible con Amazon SNS, como AWS SDK for Java.

Aplicación de atributos de mensajes con la consolaRealice los siguientes pasos para publicar un mensaje con atributos a través de la consola de AmazonSNS:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación, elija Topics. La página Topics proporciona todos los temas de AmazonSNS que tiene en la región seleccionada.

3. Si no tiene un tema, elija Create a new topic y proporcione un valor en Topic name. Si desea utilizar eltema para enviar mensajes SMS, proporcione un valor en Display name. A continuación, elija Createtopic.

4. Si tiene uno o más temas, seleccione el tema en el que desea publicar el mensaje. A continuación,elija Publish to topic .

5. En la página Publish a message, proporcione un valor para Subject y Message.6. En Message Attributes, especifique la clave, el tipo de atributo y el valor. Por ejemplo, la siguiente

entrada crea un atributo denominado customer_interests. El tipo de atributo es String.Array y elvalor es una matriz de valores.

Versión de API 2010-03-31185

Page 193: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de atributos de mensajes con la AWS CLI

Si el tipo de atributo es String (Cadena), String.Array (Matriz.Cadenas) o Number (Número), AmazonSNS evalúa el atributo del mensaje con una política de filtro de la suscripción, si existe, antes deenviar el mensaje a dicha suscripción.

Recuerde

Si el tipo de atributo es String.Array, incluya la matriz entre corchetes ([ ]). Dentro de lamatriz, delimite los valores de cadena con comillas dobles. No es necesario usar comillas conlos números ni con las palabras clave true, false y null.

Aplicación de atributos de mensajes con la AWS CLIPara publicar un mensaje con atributos mediante la AWS CLI, utilice el comando publish con elparámetro --message-attributes, tal y como se muestra en el ejemplo siguiente:

$ aws sns publish --topic-arn topic-arn --message “message” --message-attributes '{"store":{"DataType":"String","StringValue":"example_corp"}}'

Aplicación de atributos de mensajes con AWS SDK forJavaPara publicar un mensaje con atributos mediante AWS SDK for Java, utilice el método publish delcliente de AmazonSNS. Proporcione un objeto PublishRequest como el argumento. Cuando inicialice elobjeto PublishRequest, use su método withMessageAttributes, que acepta una asignación de tipoMap<String,MessageAttributeValue>.

Para simplificar el proceso de publicación de mensajes con atributos, puede añadir la siguiente clase deejemplo a su aplicación y modificarla según sea necesario:

import com.amazonaws.services.sns.*;import com.amazonaws.services.sns.model.MessageAttributeValue;import com.amazonaws.services.sns.model.PublishRequest;import com.amazonaws.services.sns.model.PublishResult;

import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.stream.Collectors;

public class SNSMessage {

public String message; public Map<String, MessageAttributeValue> messageAttributes;

public SNSMessage(String message) { this.message = message; messageAttributes = new HashMap<>(); }

public void setMessage(String message) { this.message = message; }

public String getMessage() { return message; }

public void addAttribute(String attributeName, String attributeValue) { MessageAttributeValue messageAttributeValue = new MessageAttributeValue() .withDataType("String") .withStringValue(attributeValue);

Versión de API 2010-03-31186

Page 194: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de atributos de mensajes con AWS SDK for Java

messageAttributes.put(attributeName, messageAttributeValue); }

public void addAttribute(String attributeName, ArrayList<?> attributeValues) { String valuesString, delimiter = ", ", prefix = "[", suffix = "]"; if (attributeValues.get(0).getClass() == String.class) { delimiter = "\", \""; prefix = "[\""; suffix = "\"]"; } valuesString = attributeValues .stream() .map(value -> value.toString()) .collect(Collectors.joining(delimiter, prefix, suffix)); MessageAttributeValue messageAttributeValue = new MessageAttributeValue() .withDataType("String.Array") .withStringValue(valuesString); messageAttributes.put(attributeName, messageAttributeValue); }

public void addAttribute(String attributeName, Number attributeValue) { MessageAttributeValue messageAttributeValue = new MessageAttributeValue() .withDataType("Number") .withStringValue(attributeValue.toString()); messageAttributes.put(attributeName, messageAttributeValue); }

public String publish(AmazonSNS snsClient, String topicArn) { PublishRequest request = new PublishRequest(topicArn, message) .withMessageAttributes(messageAttributes); PublishResult result = snsClient.publish(request); return result.getMessageId(); }}

Esta clase almacena un campo messageAttributes como una asignación. Para agregar atributos almensaje se utilizan los métodos addAttribute sobrecargados. Estos métodos pueden añadir atributoscon el tipo de datos String, String.Array o Number. Cuando esté listo para publicar el mensaje, utiliceel método publish y proporcione un cliente de AmazonSNS y el ARN del tema.

El siguiente código de ejemplo muestra cómo inicializar y usar la clase SNSMessage de ejemplo:

// Initialize example message classSNSMessage message = new SNSMessage(messageBody);

// Add message attribute with string valuemessage.addAttribute("store", "example_corp");message.addAttribute("event", "order_placed");

// Add message attribute with a list of string valuesArrayList<String> interestsValues = new ArrayList<>();interestsValues.add("soccer");interestsValues.add("rugby");interestsValues.add("hockey");message.addAttribute("customer_interests", interestsValues);

// Add message attribute with number valuemessage.addAttribute("price_usd", 1000);

// Add boolean attribute for filtering with subscription filter policies.// SNSMessage will apply a String.Array data type to this attribute, // which makes it eligible for evaluating with a filter policy.ArrayList<Boolean> encryptedVal = new ArrayList<>();encrypted.add(false);

Versión de API 2010-03-31187

Page 195: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de atributos de mensajes

con la API de Amazon SNS

message.addAttribute("encrypted", encryptedVal);

// Publish messagemessage.publish(snsClient, topicArn);

Aplicación de atributos de mensajes con la API deAmazon SNSPara publicar un mensaje con atributos mediante la API de Amazon SNS, emita una solicitud a la acciónPublish y use el parámetro MessageAttributes.

Versión de API 2010-03-31188

Page 196: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorPolíticas de filtro de suscripciones

Filtrado de mensajes con AmazonSNS

De forma predeterminada, un suscriptor de un tema de Amazon SNS recibe todos los mensajes publicadosen el tema. Para recibir únicamente un subconjunto de los mensajes, un suscriptor asigna una política defiltro a la suscripción del tema.

Una política de filtro es un sencillo objeto JSON. La política contiene atributos que definen los mensajesque recibe el suscriptor. Cuando publica un mensaje en un tema, Amazon SNS compara los atributos delmensaje con los atributos de la política de filtro para cada una de las suscripciones del tema. Si hay unacoincidencia entre los atributos, Amazon SNS envía el mensaje al suscriptor. De lo contrario, Amazon SNSomite el suscriptor sin enviarle el mensaje. Si una suscripción carece de una política de filtro, la suscripciónrecibe todos los mensajes publicados en su tema.

Con las políticas de filtro, puede simplificar el uso de Amazon SNS consolidando los criterios de filtradode mensajes en sus suscripciones de temas. Con esta consolidación, puede aliviar la lógica de filtrado demensajes de los suscriptores y la lógica de enrutamiento de mensajes de los publicadores. Por lo tanto,no es necesario filtrar los mensajes creando un tema distinto para cada condición de filtrado. En su lugar,puede utilizar un único tema y diferenciar sus mensajes con atributos. Cada suscriptor recibe y procesaúnicamente los mensajes aceptados por su política de filtro.

Por ejemplo, podría utilizar un único tema para publicar todos los mensajes generados por lastransacciones de su sitio de comercio online. Para cada mensaje, puede asignar un atributo que indiqueel tipo de transacción, como por ejemplo order_placed, order_cancelled o order_declined.Mediante la creación de suscripciones con políticas de filtro, puede dirigir el mensaje a la cola creada paraprocesar el tipo de transacción del mensaje.

Para ver un tutorial en el que se muestra cómo implementar el filtrado de mensajes con la Consola deadministración de AWS, consulte Filter Messages Published to Topics. Este tutorial muestra cómo aplicarpolíticas de filtro para dirigir mensajes a colas de Amazon SQS distintas.

Políticas de filtro de suscripcionesLas políticas de filtro se asignan a suscripciones de Amazon SNS. En una política, debe especificar losnombres de los atributos y, para cada nombre, asignar una lista de uno o varios valores. Una suscripciónacepta un mensaje únicamente si el mensaje contiene atributos que coinciden con los especificados en lapolítica de filtro de la suscripción. En concreto, la suscripción acepta el mensaje si:

a. Cada nombre de atributo de una política de filtro coincide con un nombre de atributo asignado almensaje.

b. Para cada nombre de atributo coincidente, al menos existe una coincidencia entre los valores que seasignan a ese nombre en la política de filtro y el mensaje.

Cuando Amazon SNS evalúa los atributos del mensaje con la política, omite los atributos que no estánespecificados en la política.

Los siguientes ejemplos muestran cómo las políticas de filtro pueden aceptar o rechazar un mensajepublicado en un tema.

Versión de API 2010-03-31189

Page 197: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorMensaje de ejemplo con atributos

Mensaje de ejemplo con atributosEl siguiente ejemplo muestra una carga de mensaje enviada por un tema de Amazon SNS que publicatransacciones de los clientes. El mensaje incluye atributos que describen la transacción: el nombre de latienda, el tipo de evento, los intereses del cliente y el precio de la compra.

{ "Type" : "Notification", "MessageId" : "e3c4e17a-819b-5d95-a0e8-b306c25afda0", "TopicArn" : "arn:aws:sns:us-east-1:111122223333:MySnsTopic", "Message" : message body with transaction details . . . "Timestamp" : "2017-11-07T23:28:01.631Z", "SignatureVersion" : "1", "Signature" : signature . . . "UnsubscribeURL" : unsubscribe URL . . . "MessageAttributes" : { "customer_interests" : {"Type":"String.Array","Value":"[\"soccer\", \"rugby\", \"hockey\"]"}, "store" : {"Type":"String","Value":"example_corp"}, "event" : {"Type":"String","Value":"order_placed"}, "price_usd" : {"Type":"Number","Value":210.75} }}

Para obtener información sobre cómo aplicar atributos a un mensaje, consulte Uso de los atributos demensajes de Amazon SNS (p. 183).

Como este mensaje incluye atributos, cualquier suscripción de tema que incluya una política de filtro puedeaceptar o rechazar de manera selectiva el mensaje.

Ejemplos de políticas de filtroLas siguientes políticas de filtro aceptan o rechazan el mensaje de ejemplo en función de sus nombres deatributo y valores.

Example Política que acepta el mensaje

Los atributos de la siguiente política coinciden con los atributos asignados en el mensaje de ejemplo:

{ "store": ["example_corp"], "event": [{"anything-but":"order_cancelled"}], "customer_interests": ["rugby", "football", "baseball"], "price_usd": [{"numeric":[">=", 100]}]}

Si un atributo de esta política no coincide con uno de los atributos asignados en el mensaje, la políticarechaza el mensaje.

Example Política que rechaza el mensaje

La siguiente política tiene varias discrepancias entre sus atributos y los atributos asignados en el mensajede ejemplo:

{ "store": ["example_corp"], "event": ["order_cancelled"], "encrypted": [false], "customer_interests": ["basketball", "baseball"]

Versión de API 2010-03-31190

Page 198: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCoincidencia de valor de cadena

}

Si se produce una o varias discrepancias, la política rechaza el mensaje.

Como el nombre de atributo encrypted no aparece en los atributos del mensaje, este atributo de lapolítica rechaza el mensaje, con independencia del valor que tenga asignado.

Los atributos de políticas de filtro pueden tener valores de cadena o numéricos. Con los valores de cadenay numéricos, puede utilizar las operaciones siguientes para emparejar atributos de mensaje y mensajes defiltro.

Coincidencia de valor de cadenaLos valores de cadena se encierran entre comillas dobles en su política JSON. Con las cadenas, puedeutilizar las siguientes operaciones para emparejar los atributos de mensajes.

Coincidencia exacta (lista blanca)

La coincidencia se produce cuando un valor de atributo de la política coincide con uno o varios valoresde atributo del mensaje. Por ejemplo, el atributo de política:

"customer_interests": ["rugby"]

Coincide con el atributo de mensaje:

"customer_interests" : {"Type":"String","Value":"rugby"}

Coincidencia Anything-but (lista negra)

Cuando un valor de atributo de política incluye la palabra clave anything-but, coincide concualquier atributo de mensaje que no incluya el valor de atributo de política. Por ejemplo, el atributo depolítica:

"customer_interests": [{"anything-but":"rugby"}]

Coincide con atributos de mensaje como:

"customer_interests" : {"Type":"String","Value":"baseball"}

And:

"customer_interests" : {"Type":"String","Value":"football"}

Pero no:

"customer_interests" : {"Type":"String","Value":"rugby"}

Coincidencia de prefijo

Cuando un atributo de política incluye la palabra clave prefix, su valor coincide con cualquier valorde atributo de mensaje que empiece por los caracteres especificados. Por ejemplo, el atributo depolítica:

"customer_interests": [{"prefix":"bas"}]

Coincide con atributos de mensaje como:

Versión de API 2010-03-31191

Page 199: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorCoincidencia de valor numérico

"customer_interests" : {"Type":"String","Value":"baseball"}

And:

"customer_interests" : {"Type":"String","Value":"basketball"}

Pero no:

"customer_interests" : {"Type":"String","Value":"rugby"}

Coincidencia de valor numéricoLos valores numéricos no están entrecomillados en la política JSON. Con los valores numéricos, puedeutilizar las siguientes operaciones para emparejar los valores de atributos.

Coincidencia exacta

Cuando un valor de atributo de política incluye la palabra clave numeric y el operador =, coincide concualquier atributo de mensajes que tenga el mismo nombre y un valor numérico igual. Por ejemplo, elatributo de política:

"price_usd": [{"numeric":["=",301.5]}]

Coincide con atributos de mensaje como:

"price_usd" : {"Type":"Number","Value":301.5}

And:

"price_usd" : {"Type":"Number","Value":3.015e2}

Coincidencia de rango

Además del operador =, un atributo de política numérico puede incluir <, <=, > y >=. Por ejemplo, elatributo de política:

"price_usd": [{"numeric":["<", 0]}]

Coincide con atributos de mensaje con valores numéricos negativos y:

"price_usd": [{"numeric":[">", 0, "<=", 150]}]

Coincide con atributos de mensaje con números positivos hasta 150.

Lógica AND/ORAplique lógica AND/OR a sus políticas de filtro como se indica a continuación.

Lógica AND

Aplique la lógica AND utilizando varios nombres de atributo (claves). Por ejemplo, la política:

Versión de API 2010-03-31192

Page 200: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorRestricciones

{ "customer_interests": ["rugby"], "price_usd": [{"numeric":[">", 100]}]}

Busca coincidencias con mensajes en los que el valor de customer_interests es rugby y el valorde price_usd es superior a 100.

Lógica OR

Aplique la lógica OR asignando varios valores a un nombre de atributo. Por ejemplo, el atributo depolítica:

"customer_interests": ["rugby", "football", "baseball"]

Hace coincidir mensajes con un valor customer_interests de rugby o football o baseball.

RestriccionesCuando cree una política de filtro, recuerde las siguientes limitaciones:

• Amazon SNS compara los atributos de la política únicamente con los atributos de los mensajes quetienen un tipo de datos String, String.Array o Number. Los atributos de mensajes con tipo de datosBinary se omiten.

• La comparación de atributos entre la política y el mensaje distingue entre mayúsculas y minúsculas en elcaso de las cadenas.

• Al ser un objeto JSON, la política de filtro puede incluir cadenas entre comillas, números y las palabrasclave sin comillas true, false y null.

• Una política de filtro puede tener un máximo de 10 nombres de atributos.• Los atributos numéricos de la política pueden tener un valor comprendido entre -109 y 109, con una

precisión de cinco dígitos tras el separador decimal.• El tamaño máximo de una política es 256 KB.• Si se utiliza la API de Amazon SNS, el código JSON de la política debe transferirse como una cadena

UTF-8 válida.• De forma predeterminada, puede tener hasta 100 políticas de filtro para cada cuenta de AWS y región.

Para aumentar este límite, envíe una solicitud de aumento de límite de SNS.• La combinación total de valores no debe ser superior a 100. Calcule la combinación total multiplicando

el número de valores de cada matriz. Por ejemplo, en la siguiente política, la primera matriz tiene tresvalores, la segunda tiene un valor y la tercera tiene dos valores. La combinación total se calcula como 3x 1 x 2 = 6.

{ "key_a": ["value_one", "value_two", "value_three"], "key_b": ["value_one"], "key_c": ["value_one", "value_two"]}

Aplicación de políticas de filtro de suscripcionesPuede aplicar una política de filtro a una suscripción de Amazon SNS mediante la consola de AmazonSNS. O bien, para aplicar políticas mediante programación, puede utilizar la API de Amazon SNS, la AWS

Versión de API 2010-03-31193

Page 201: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de una política de filtro con la consola

Command Line Interface (AWS CLI) o cualquier SDK de AWS compatible con Amazon SNS, como AWSSDK for Java.

Aplicación de una política de filtro con la consolaRealice los siguientes pasos para aplicar una política de filtro mediante la consola de Amazon SNS:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación, seleccione Subscriptions. La página Subscriptions (Suscripciones)proporciona todas las suscripciones de Amazon SNS que tiene en la región elegida.

3. Si no dispone de una suscripción, seleccione Create subscription y proporcione valores para TopicARN, Protocol y Endpoint.

4. Si tiene una o varias suscripciones, seleccione la suscripción a la que desea aplicar una política defiltro.

5. Elija Actions y seleccione Edit subscription filter policy en el menú.6. En la ventana Edit subscription filter policy, proporcione el cuerpo JSON de la política de filtro.7. Elija Set subscription filter policy. Amazon SNS aplica la política de filtro a la suscripción.

Aplicación de una política de filtro con la AWS CLIPara aplicar una política de filtro con la AWS Command Line Interface (AWS CLI), utilice el comando set-subscription-attributes, tal y como se muestra en el ejemplo siguiente:

$ aws sns set-subscription-attributes --subscription-arn arn:aws:sns: ... --attribute-name FilterPolicy --attribute-value '{"store":["example_corp"],"event":["order_placed"]}'

Para la opción --attribute-name, especifique FilterPolicy. Para --attribute-value,especifique la política JSON.

Para proporcionar un objeto JSON válido para su política, incluya los nombres de atributos y valoresentre comillas dobles. Incluya también todo el argumento de la política entre comillas. Para evitar que lascomillas se interpreten como caracteres de escape, puede utilizar comillas simples para delimitar la políticay comillas dobles para delimitar los nombres y los valores JSON, tal y como se muestra en el ejemplo.

Para verificar que su política de filtro se ha aplicado, utilice el comando get-subscription-attributes. Los atributos del resultado deben mostrar la política de filtro para la clave FilterPolicy,tal y como se muestra en el ejemplo siguiente:

$ aws sns get-subscription-attributes --subscription-arn arn:aws:sns: ...{ "Attributes": { "Endpoint": "endpoint . . .", "Protocol": "https", "RawMessageDelivery": "false", "EffectiveDeliveryPolicy": "delivery policy . . .", "ConfirmationWasAuthenticated": "true", "FilterPolicy": "{\"store\": [\"example_corp\"], \"event\": [\"order_placed\"]}", "Owner": "111122223333", "SubscriptionArn": "arn:aws:sns: . . .", "TopicArn": "arn:aws:sns: . . ." }}

Versión de API 2010-03-31194

Page 202: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de una política de filtro con AWS SDK for Java

Aplicación de una política de filtro con AWS SDK forJavaPara aplicar una política de filtro con AWS SDK for Java, use el método setSubscriptionAttributesdel cliente de AmazonSNS. Proporcione un objeto SetSubscriptionAttributesRequest como elargumento, tal y como se muestra en el ejemplo siguiente:

AmazonSNS snsClient = AmazonSNSClientBuilder.defaultClient();String filterPolicyString = "{\"store\":[\"example_corp\"],\"event\":[\"order_placed\"]}";SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest(subscriptionArn, "FilterPolicy", filterPolicyString);snsClient.setSubscriptionAttributes(request);

Para inicializar el objeto SetSubscriptionAttributesRequest, proporcione los siguientesargumentos:

• subscriptionArn : el Nombre de recurso de Amazon (ARN) de la suscripción a la que se aplica lapolítica.

• attributeName: debe ser "FilterPolicy".• attributeValue: su política de filtro JSON como una cadena. Como debe incluir la política de cadena

entre comillas dobles, recuerde incluir en caracteres de escape las comillas dobles que delimitan losnombres y valores, como en \"store\".

La clase SetSubscriptionAttributesRequest acepta la política de filtro como una cadena. Si deseadefinir su política como una colección Java, cree una asignación que asocie cada nombre de atributocon una lista de valores. Para asignar la política a una suscripción, primero debe producir una versión decadena de la política a partir del contenido de la asignación y después pasar la cadena como argumentoattributeValue a SetSubscriptionAttributesRequest.

Para simplificar este proceso, puede añadir la siguiente clase de ejemplo a su aplicación y modificarlasegún sea necesario:

import com.amazonaws.services.sns.AmazonSNS;import com.amazonaws.services.sns.model.SetSubscriptionAttributesRequest;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.stream.Collectors;

public class SNSMessageFilterPolicy {

private enum AttributeType { String, Numeric, Prefix, List, AnythingBut }

private class Attribute<T> {

protected final T value; protected final AttributeType type;

public Attribute(AttributeType type, T value) { this.value = value; this.type = type; }

public String toString() {

Versión de API 2010-03-31195

Page 203: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de una política de filtro con AWS SDK for Java

switch(type) { case Prefix: return String.format("{\"prefix\":\"%s\"}", value.toString()); case Numeric: return String.format("{\"numeric\":%s}", value.toString()); case List: ArrayList<T> values = (ArrayList<T>)value; return values .stream() .map(entry -> entry.toString()) .collect(Collectors.joining(",", "[", "]")); case AnythingBut: return String.format("{\"anything-but\":\"%s\"}", value); default: return String.format("\"%s\"", value); } } }

private class NumericValue<T extends Number> { private final T lower; private final T upper; private final String lowerOp; private final String upperOp;

public NumericValue(String op, T value) { lower = value; lowerOp = op; upper = null; upperOp = null; }

public NumericValue(String lowerOp, T lower, String upperOp, T upper) { this.lower = lower; this.lowerOp = lowerOp; this.upper = upper; this.upperOp = upperOp; }

public String toString() { StringBuffer s = new StringBuffer("[") .append('\"').append(lowerOp).append("\",").append(lower); if (upper != null) { s.append(",\"").append(upperOp).append("\",").append(upper); } s.append("]"); return s.toString(); } }

private final Map<String, Attribute> filterPolicy = new HashMap<>();

public void addAttribute(String attributeName, String attributeValue) { filterPolicy.put(attributeName, new Attribute(AttributeType.String, attributeValue)); }

public void addAttribute(String attributeName, ArrayList<String> attributeValues) { ArrayList<Attribute> attributes = new ArrayList<>(); for (String s : attributeValues) { attributes.add(new Attribute(AttributeType.String, s)); } filterPolicy.put(attributeName, new Attribute(AttributeType.List, attributes)); }

public void addAttributePrefix(String attributeName, String prefix) {

Versión de API 2010-03-31196

Page 204: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de una política de filtro con AWS SDK for Java

filterPolicy.put(attributeName, new Attribute(AttributeType.Prefix, prefix)); }

public void addAttributeAnythingBut(String attributeName, String value) { filterPolicy.put(attributeName, new Attribute(AttributeType.AnythingBut, value)); }

public <T extends Number> void addAttribute(String attributeName, String op, T value) { filterPolicy.put(attributeName, new Attribute(AttributeType.Numeric, new NumericValue(op, value))); }

public <T extends Number> void addAttributeRange( String attributeName, String lowerOp, T lower, String upperOp, T upper) { filterPolicy.put( attributeName, new Attribute(AttributeType.Numeric, new NumericValue(lowerOp, lower, upperOp, upper))); }

public void apply(AmazonSNS snsClient, String subscriptionArn) { SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest(subscriptionArn, "FilterPolicy", formatFilterPolicy()); snsClient.setSubscriptionAttributes(request); }

public String formatFilterPolicy() { return filterPolicy.entrySet() .stream() .map(entry -> "\"" + entry.getKey() + "\": [" + entry.getValue() + "]") .collect(Collectors.joining(", ", "{", "}")); }}

Esta clase almacena un campo filterPolicy como una asignación. Para agregar atributos a la políticase utilizan los métodos addAttribute distintos. Estos métodos aceptan el nombre de atributo comouna cadena y están especializados para aceptar distintos tipos de valores. Puede transferir valores comocadenas, listas de cadenas, números o rangos numéricos. Puede añadir los atributos anything-but yprefix. Cuando esté listo para aplicar la política a una suscripción, utilice el método apply y proporcioneun cliente de AmazonSNS y el ARN de la suscripción. Este método produce una cadena de política a partirdel contenido de la asignación filterPolicy y aplica la política a la suscripción especificada.

El siguiente código de ejemplo muestra cómo inicializar y usar la clase SNSMessageFilterPolicy deejemplo:

// Initialize example filter policy classSNSMessageFilterPolicy fp = new SNSMessageFilterPolicy();

// Add filter policy attribute with single valuefp.addAttribute("store", "example_corp");fp.addAttribute("event", "order_placed");

// Add a prefix attributefilterPolicy.addAttributePrefix("customer_interests", "bas");

// Add an anything-but attributefilterPolicy.addAttributeAnythingBut("customer_interests", "baseball");

// Add filter policy attribute with a list of valuesArrayList<String> attributeValues = new ArrayList<>();attributeValues.add("rugby");

Versión de API 2010-03-31197

Page 205: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAplicación de una política de

filtro con la API de Amazon SNS

attributeValues.add("soccer");attributeValues.add("hockey");fp.addAttribute("customer_interests", attributeValues);

// Add numeric attribute filterPolicy.addAttribute("price_usd", "=", 0);

// Add numeric attribute with a range filterPolicy.addAttributeRange("price_usd", ">", 0, "<=", 100);

// Apply filter policy attributes to SNS subscriptionfp.apply(snsClient, subscriptionArn);

Aplicación de una política de filtro con la API deAmazon SNSPara aplicar una política de filtro con la API de Amazon SNS, realice una solicitud a la acciónSetSubscriptionAttributes. Establezca el parámetro AttributeName en FilterPolicy yestablezca el parámetro AttributeValue en el objeto JSON de la política de filtro.

Eliminación de políticas de filtro de suscripcionesPara dejar de filtrar los mensajes que se envían a una suscripción, quite la política de filtro de lasuscripción sobrescribiéndola con un cuerpo JSON vacío. Después de quitar la política, la suscripciónacepta todos los mensajes que se han publicado en ella.

Eliminación de una política de filtro con la consolaRealice los siguientes pasos para quitar una política de filtro mediante la consola de Amazon SNS:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. En el panel de navegación, seleccione Subscriptions. La página Subscriptions (Suscripciones)proporciona todas las suscripciones de Amazon SNS que tiene en la región elegida.

3. Seleccione la suscripción de la que desea quitar la política de filtro.4. Elija Actions y seleccione Edit subscription filter policy en el menú.5. En la ventana Edit subscription filter policy (Editar política de filtro de suscripción), proporcione un

cuerpo JSON vacío para la política de filtro: {}.6. Elija Set subscription filter policy. Amazon SNS aplica la política de filtro vacía a la suscripción.

Eliminación de una política de filtro con la AWS CLIPara quitar una política de filtro con la AWS CLI, utilice el comando set-subscription-attributes yproporcione un cuerpo JSON vacío para el argumento --attribute-value:

$ aws sns set-subscription-attributes --subscription-arn arn:aws:sns: ... --attribute-name FilterPolicy --attribute-value "{}"

Versión de API 2010-03-31198

Page 206: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEliminación de una política de filtro con AWS SDK for Java

Eliminación de una política de filtro con AWS SDK forJavaPara quitar una política de filtro con AWS SDK for Java, use el método setSubscriptionAttributesdel cliente de AmazonSNS. Proporcione una cadena que contenga un cuerpo JSON vacío como política defiltro:

AmazonSNS snsClient = AmazonSNSClientBuilder.defaultClient();SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest(subscriptionArn, "FilterPolicy", "{}");snsClient.setSubscriptionAttributes(request);

Eliminación de una política de filtro con la API deAmazon SNSPara quitar una política de filtro con la API de Amazon SNS, realice una solicitud a la acciónSetSubscriptionAttributes. Establezca el parámetro AttributeName en FilterPolicy yproporcione un cuerpo JSON vacío para el parámetro AttributeValue.

Versión de API 2010-03-31199

Page 207: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAcceso a las métricas de CloudWatch para Amazon SNS

Monitorización de Amazon SNS conCloudWatch

Amazon SNS y CloudWatch están integrados, por lo que puede recopilar, ver y analizar métricas de todaslas notificaciones de Amazon SNS activas. Una vez que haya configurado CloudWatch para Amazon SNS,podrá hacerse una idea más completa del desempeño de sus temas de Amazon SNS, notificaciones deinserción y entregas de SMS;. Por ejemplo, puede configurar una alarma que le envíe una notificaciónpor correo electrónico si se llega a un umbral especificado en una métrica de Amazon SNS, como, porejemplo, NumberOfNotificationsFailed. Para ver una lista de todas las métricas que Amazon SNSenvía a CloudWatch, consulte Métricas de Amazon SNS (p. 202). Para obtener más información sobrelas notificaciones de inserción de Amazon SNS, consulte Notificaciones de inserción en móvil de AmazonSNS (p. 38)

Las métricas que configure con CloudWatch para sus temas de Amazon SNS se recopilan e insertanautomáticamente en CloudWatch cada cinco minutos. Estas métricas se recopilan en todos los temas quecumplen las directrices de CloudWatch para considerarse activos. CloudWatch considera que un tema semantiene activo durante seis horas desde la última actividad (por ejemplo, cualquier llamada al API) que hatenido lugar en el tema.

Note

No se aplica ningún cargo por las métricas de Amazon SNS que se muestran en CloudWatch; seofrecen como parte del servicio Amazon SNS.

Acceso a las métricas de CloudWatch para AmazonSNS

Puede monitorear métricas de Amazon SNS utilizando la consola de CloudWatch, la propia interfazde línea de comandos (CLI) de CloudWatch o mediante programación con la API de CloudWatch. Lossiguientes procedimientos le muestran cómo obtener acceso a las métricas mediante estas opciones.

Para consultar las métricas mediante la consola de CloudWatch

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

2. Haga clic en View Metrics.3. En el menú desplegable Viewing, seleccione SNS: Topic Metrics, SNS: Push Notifications by

Application, SNS: Push Notifications by Application and Platform o SNS: Push Notifications by Platformpara visualizar las métricas disponibles.

4. Haga clic en un elemento específico para ver más detalles, como un gráfico de los datos recogidos.Por ejemplo, el siguiente gráfico de la métrica seleccionada, NumberOfMessagesPublished, muestrael número medio de mensajes de Amazon SNS publicados durante un periodo de cinco minutos de unintervalo de tiempo de 6 horas.

Versión de API 2010-03-31200

Page 208: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEstablecimiento de alarmas de CloudWatch

para métricas de Amazon SNS

Para obtener acceso a las métricas desde la CLI de CloudWatch

• Llame a mon-get-stats. Puede obtener más información sobre esta función y otras funcionesrelacionadas con las métricas en la Guía del usuario de Amazon CloudWatch.

Para obtener acceso a las métricas desde la API de CloudWatch

• Llame a GetMetricStatistics. Puede obtener más información sobre esta función y otrasfunciones relacionadas con las métricas en la Amazon CloudWatch API Reference.

Establecimiento de alarmas de CloudWatch paramétricas de Amazon SNS

CloudWatch también le permite establecer alarmas cuando se llega al umbral de una métrica. Por ejemplo,puede establecer una alarma para la métrica NumberOfNotificationsFailed, de forma que cuando se llegueal número especificado durante el periodo de muestra, se envíe una notificación por correo electrónicopara informarle del evento.

Para establecer alarmas utilizando la consola de CloudWatch

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

2. Haga clic en Alarms y después en el botón Create Alarm. Esto lanzará el asistente de Create Alarm.3. Desplácese por las métricas de Amazon SNS para localizar la métrica en la que desea colocar una

alarma. Seleccione la métrica para crear una alarma y haga clic en Continue.

Versión de API 2010-03-31201

Page 209: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorMétricas de Amazon SNS

4. Rellene los valores Name, Description, Threshold y Time de la métrica y haga clic en Continue.5. Elija Alarm como estado de alarma. Si quiere que CloudWatch le envíe un correo electrónico cuando

se llegue al estado de alarma, seleccione un tema de Amazon SNS ya existente o haga clic en CreateNew Email Topic. Si hace clic en Create New Email Topic, puede definir el nombre y las direccionesde correo electrónico de un nuevo tema. Esta lista se guardará y aparecerá en el cuadro desplegablepara futuras alarmas. Haga clic en Continue.

Note

Si utiliza Create New Email Topic para crear un nuevo tema de Amazon SNS, deberá verificarlas direcciones de correo electrónico para que puedan recibir las notificaciones. Los correoselectrónicos solo se envían cuando la alarma entra en estado de alarma. Si este cambioen el estado de la alarma se produce antes de que se verifiquen las direcciones de correoelectrónico, no recibirá una notificación.

6. En este momento, el asistente para Create Alarm le da la oportunidad de revisar la alarma que estáa punto de crear. Si necesita hacer algún cambio, puede utilizar los enlaces de Edit de la derecha.Cuando esté satisfecho, haga clic en Create Alarm.

Para obtener más información sobre el uso de CloudWatch y las alarmas, consulte la documentación deCloudWatch.

Métricas de Amazon SNSAmazon SNS envía las siguientes métricas a CloudWatch.

Métrica Descripción

NumberOfMessagesPublished El número de mensajes publicados.

Unidades: recuento

Estadísticas válidas: Sum

PublishSize El tamaño de los mensajes publicados.

Unidades: bytes

Estadísticas válidas: Minimum, Maximum, Average yCount

NumberOfNotificationsDelivered El número de mensajes enviados correctamente.

Unidades: recuento

Estadísticas válidas: Sum

NumberOfNotificationsFailed El número de mensajes que Amazon SNS no pudoentregar. Esta métrica se aplica después de que AmazonSNS deje de intentar entregar mensajes a AmazonSQS, correo electrónico, SMS o puntos de enlace pushmóviles. Cada intento de entrega a un punto de enlaceHTTP o HTTPS añade 1 a la métrica. Para todos losdemás puntos de enlace, el recuento aumenta en 1cuando no se entrega el mensaje (independientementedel número de intentos). Puede controlar el número dereintentos para puntos de enlace HTTP; para obtener

Versión de API 2010-03-31202

Page 210: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorDimensiones de métricas de

Amazon Simple Notification Service

Métrica Descripciónmás información, consulte Configuración de las políticasde reintento de Amazon SNS para puntos de enlaceHTTP/HTTPS (p. 158).

Unidades: recuento

Estadísticas válidas: Sum, Average

SMSMonthToDateSpentUSD Los cargos que se han acumulado desde el principio delmes actual por enviar mensajes SMS.

Puede configurar una alarma para esta métrica, parasaber cuándo los cargos acumulados en el mes hastala fecha se acercan a los límites de gasto de losSMS mensuales de su cuenta. Cuando Amazon SNSdetermina que el envío de un mensaje SMS generaría uncosto que supera este límite, deja de publicar mensajesSMS en cuestión de minutos.

Para obtener información sobre la configuración desu límite de gasto mensual de SMS o para obtenerinformación acerca de cómo solicitar un aumento dellímite de gasto con AWS, consulte Configuración de laspreferencias de mensajería de SMS (p. 123).

Unidades: USD

Estadísticas válidas: máximo

SMSSuccessRate El número de entregas de mensajes SMS realizadascorrectamente.

Unidades: recuento

Estadísticas válidas: Sum, Average, Data Samples

Dimensiones de métricas de Amazon SimpleNotification Service

Amazon Simple Notification Service envía las siguientes dimensiones a CloudWatch.

Dimensión Descripción

Application Aplica el filtro en los objetos de aplicación, que representan unaaplicación y el dispositivo registrados en uno de los servicios denotificación de inserción admitidos, como APNS o GCM.

Application,Platform Aplica el filtro en los objetos de aplicación y plataforma, donde losobjetos de plataforma están destinados a los servicios de notificaciónde inserción admitidos, como APNS o GCM.

Country Filtra por el país o la región de destino de un mensaje SMS. El país ola región se representa mediante su código alpha-2 ISO 3166-1.

Versión de API 2010-03-31203

Page 211: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorDimensiones de métricas de

Amazon Simple Notification Service

Dimensión Descripción

Platform Aplica el filtro en los objetos de aplicación de los servicios denotificación de inserción, como APNS o GCM.

TopicName Filtra por nombres de temas de Amazon SNS.

SMSType Filtra por el tipo de mensaje de un mensaje SMS. Puede serpromotional o transaccional.

Versión de API 2010-03-31204

Page 212: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorInformación de Amazon SNS en CloudTrail

Registro de llamadas a la API deAmazon Simple Notification Servicemediante AWS CloudTrail

Amazon SNS está integrado en CloudTrail, un servicio que captura las llamadas a la API realizadas porAmazon SNS, o en su nombre, en su cuenta de AWS y envía los archivos de registro al bucket de AmazonS3 que especifique. CloudTrail captura las llamadas a la API realizadas desde la consola de Amazon SNSo desde la API de Amazon SNS. Con la información recopilada por CloudTrail, puede identificar la solicitudque se realizó a Amazon SNS, la dirección IP de origen desde la que se realizó la solicitud, quién la hizo,cuándo, etc. Para obtener más información sobre CloudTrail, incluido cómo configurarlo y habilitarlo,consulte la AWS CloudTrail User Guide.

Información de Amazon SNS en CloudTrailCuando el registro de CloudTrail está habilitado en su cuenta de AWS, las llamadas al API realizadas enacciones de Amazon SNS se registran en archivos de registro. Los registros de Amazon SNS se creanjunto con los registros de otros servicios de AWS en un archivo log. CloudTrail determina cuándo crear yescribir en un nuevo archivo en función del período de tiempo y del tamaño del archivo.

Se admiten las siguientes acciones:

• AddPermission• ConfirmSubscription• CreatePlatformApplication• CreatePlatformEndpoint• CreateTopic• DeleteEndpoint• DeletePlatformApplication• DeleteTopic• GetEndpointAttributes• GetPlatformApplicationAttributes• GetSubscriptionAttributes• GetTopicAttributes• ListEndpointsByPlatformApplication• ListPlatformApplications• ListSubscriptions• ListSubscriptionsByTopic• ListTopics• RemovePermission• SetEndpointAttributes• SetPlatformApplicationAttributes• SetSubscriptionAttributes

Versión de API 2010-03-31205

Page 213: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorDescripción de las entradas de archivos log de Amazon SNS

• SetTopicAttributes• Subscribe• Unsubscribe

Note

Si no ha iniciado sesión en Amazon Web Services (modo sin autenticar) y se invocan las accionesConfirmSubscription o Unsubscribe, no se registrarán en CloudTrail. Por ejemplo, al hacer clic enel vínculo proporcionado en una notificación por correo electrónico para confirmar la suscripciónpendiente en un tema, se invoca la acción ConfirmSubscription en modo sin autenticar. Eneste ejemplo, la acción ConfirmSubscription no se registra en CloudTrail.

Cada entrada de log contiene información sobre quién generó la solicitud. La información de identidad delusuario que figura en el log le ayudará a determinar si la solicitud se hizo con credenciales de usuario deIAM o raíz, con credenciales de seguridad temporales para un rol o un usuario federado, o mediante otroservicio de AWS. Para obtener más información, consulte el campo userIdentity en Referencia de eventosde CloudTrail.

Puede almacenar los archivos de log en su bucket todo el tiempo que desee, y también puede definirreglas de ciclo de vida de Amazon S3 para archivar o eliminar archivos de log automáticamente. De formapredeterminada, los archivos de log se cifran mediante cifrado en el lado de servidor de Amazon S3 (SSE).

Puede hacer que CloudTrail publique notificaciones de Amazon SNS cuando se entreguen los nuevosarchivos de log si desea actuar rápidamente al recibir un archivo de log. Para obtener más información,consulte Configuring Amazon SNS Notifications.

También puede agregar archivos log de Amazon SNS de varias regiones de AWS y de varias cuentas deAWS en un solo bucket de Amazon S3. Para obtener más información, consulte Cómo añadir archivos delog de CloudTrail a un solo bucket de Amazon S3.

Descripción de las entradas de archivos log deAmazon SNS

Los archivos log de CloudTrail contienen una o varias entradas de log, cada una de las cuales estácompuesta por varios eventos con formato JSON. Una entrada de log representa una única solicitud decualquier origen e incluye información sobre la acción solicitada, los parámetros, la fecha y la hora de laacción, etcétera. No se garantiza que las entradas de log sigan un orden específico; es decir, no son unrastro de stack ordenado de las llamadas públicas a la API.

En el siguiente ejemplo se muestra una entrada de log de CloudTrail para las acciones ListTopics,CreateTopic y DeleteTopic.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type":"IAMUser", "userName":"Bob" "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Bob", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE" },

Versión de API 2010-03-31206

Page 214: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorDescripción de las entradas de archivos log de Amazon SNS

"eventTime": "2014-09-30T00:00:00Z", "eventSource": "sns.amazonaws.com", "eventName": "ListTopics", "awsRegion": "us-west-2", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-sdk-java/unknown-version", "requestParameters": { "nextToken": "ABCDEF1234567890EXAMPLE==" }, "responseElements": null, "requestID": "example1-b9bb-50fa-abdb-80f274981d60", "eventID": "example0-09a3-47d6-a810-c5f9fd2534fe", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type":"IAMUser", "userName":"Bob" "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Bob", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE" }, "eventTime": "2014-09-30T00:00:00Z", "eventSource": "sns.amazonaws.com", "eventName": "CreateTopic", "awsRegion": "us-west-2", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-sdk-java/unknown-version", "requestParameters": { "name": "hello" }, "responseElements": { "topicArn": "arn:aws:sns:us-west-2:123456789012:hello-topic" }, "requestID": "example7-5cd3-5323-8a00-f1889011fee9", "eventID": "examplec-4f2f-4625-8378-130ac89660b1", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type":"IAMUser", "userName":"Bob" "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Bob", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE" }, "eventTime": "2014-09-30T00:00:00Z", "eventSource": "sns.amazonaws.com", "eventName": "DeleteTopic", "awsRegion": "us-west-2", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-sdk-java/unknown-version", "requestParameters": { "topicArn": "arn:aws:sns:us-west-2:123456789012:hello-topic" }, "responseElements": null, "requestID": "example5-4faa-51d5-aab2-803a8294388d", "eventID": "example8-6443-4b4d-abfd-1b867280d964", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"

Versión de API 2010-03-31207

Page 215: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorDescripción de las entradas de archivos log de Amazon SNS

}, ]}

Versión de API 2010-03-31208

Page 216: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorAntes de empezar

Publicación en temas de AmazonSNS desde Amazon Virtual PrivateCloud

Si utiliza Amazon Virtual Private Cloud (Amazon VPC) para alojar sus recursos de AWS, puede estableceruna conexión privada entre su VPC y Amazon SNS. Con esta conexión establecida, puede publicarmensajes en sus temas de Amazon SNS sin enviarlos a través de la infraestructura pública de Internet.

Amazon VPC es un servicio de AWS que puede utilizar para lanzar recursos de AWS en una red virtualque usted define. Con una VPC, puede controlar la configuración de la red, como el rango de direccionesIP, las subredes, las tablas de ruteo y las gateways de red. Para conectar su VPC a Amazon SNS, debedefinir un punto de conexión de la VPC de tipo interfaz. Este tipo de punto de conexión le permite conectarsu VPC a servicios de AWS. El punto de conexión ofrece conectividad escalable de confianza con AmazonSNS sin necesidad de utilizar una gateway de Internet, una instancia de conversión de las direcciones dered (NAT) o una conexión de VPN. Para obtener más información, consulte Puntos de conexión de la VPCde tipo interfaz en la Guía del usuario de Amazon VPC.

Después de agregar un punto de conexión de la VPC de tipo interfaz, puede publicar mensajes en sustemas y, simultáneamente, mantener el tráfico de red dentro de la red de AWS.

Antes de empezarLa siguiente información va dirigida a los usuarios de Amazon VPC. Para obtener más información, y paraempezar a crear una VPC, consulte Introducción a Amazon VPC en la Guía del usuario de Amazon VPC.

Creación de un punto de conexión de la AmazonVPC para Amazon SNS

Para crear un punto de conexión de Amazon SNS en la VPC, consulte Creación de un punto de conexiónde interfaz en la Guía del usuario de Amazon VPC. La documentación de Amazon VPC le ayuda a crear yconfigurar un punto de conexión mediante la consola de Amazon VPC o la AWS CLI.

Al crear el punto de conexión, especifique que Amazon SNS es el servicio al que desea que su VPC seconecte. En la consola de Amazon VPC, los nombres de los servicios varían en función de la región quehaya elegido. Por ejemplo, si eligió US East (N. Virginia), el nombre del servicio es com.amazonaws.us-east-1.sns.

Comprobación de la conexión entre la VPC yAmazon SNS

Después de crear un punto de conexión para Amazon SNS, puede publicar mensajes desde su VPC ensus temas de Amazon SNS. Para probar esta conexión, haga lo siguiente:

Versión de API 2010-03-31209

Page 217: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorComprobación de la conexión

1. Conéctese a una instancia Amazon EC2 que resida en la VPC. Para obtener más información acercade la conexión, consulte Conexión con la instancia de Linux o Conexión con la instancia de Windowsen la documentación de Amazon EC2.

Por ejemplo, para conectarse a una instancia de Linux mediante un cliente SSH, ejecute el siguientecomando desde un terminal:

$ ssh -i ec2-key-pair.pem ec2-user@instance-hostname

Donde:

• ec2-key-pair.pem es el archivo que contiene el par de claves que Amazon EC2 le proporcionó alcrear la instancia.

• instance-hostname es nombre de host público de la instancia. Para obtener el nombre de host enla consola de Amazon EC2: elija Instances (Instancias), seleccione la instancia y busque el valor dePublic DNS (IPv4) (DNS público (IPv4)).

2. Desde su instancia, utilice el comando publish de Amazon SNS con la AWS CLI. Puede enviar unmensaje sencillo a un tema con el siguiente comando:

$ aws sns publish --region aws-region --topic-arn sns-topic-arn --message "Hello"

Donde:

• aws-region es la región de AWS en la que se encuentra el tema.• sns-topic-arn es el nombre de recurso de Amazon (ARN) del tema. Para obtener el ARN desde la

consola de Amazon SNS: elija Topics (Temas), busque su tema y busque el valor en la columnaARN.

Si Amazon SNS ha recibido correctamente el mensaje, el terminal imprime un ID de mensaje, como elsiguiente:

{ "MessageId": "6c96dfff-0fdf-5b37-88d7-8cba910a8b64"}

Versión de API 2010-03-31210

Page 218: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorEncabezados de HTTP/HTTPS

Apéndice: formatos de mensaje yJSON

Amazon SNS utiliza los formatos siguientes.

Temas• Encabezados de HTTP/HTTPS (p. 211)• Formato JSON de confirmación de suscripción HTTP/HTTPS (p. 212)• Formato JSON de notificaciones HTTP/HTTPS (p. 214)• Formato JSON de confirmación de cancelación de suscripción HTTP/HTTPS (p. 215)• Formato JSON de política de entrega SetSubscriptionAttributes (p. 217)• Formato JSON de política de entrega SetTopicAttributes (p. 217)

Encabezados de HTTP/HTTPSCuando Amazon SNS envía una confirmación de suscripción, una notificación o un mensaje deconfirmación de anulación de la suscripción a puntos de enlace HTTP/HTTPS, envía un mensaje POSTcon una serie de valores de encabezado específicos de Amazon SNS. Puede utilizar dichos valores deencabezado para realizar operaciones como identificar el tipo de mensaje sin tener que analizar el cuerpodel mensaje JSON para leer el valor Type.

x-amz-sns-message-type

Tipo de mensaje. Los valores posibles son SubscriptionConfirmation, Notification yUnsubscribeConfirmation.

x-amz-sns-message-id

Identificador universal único, exclusivo para cada mensaje publicado. En las notificaciones queAmazon SNS reenvía durante un reintento, se usa el ID del mensaje original.

x-amz-sns-topic-arn

Nombre de recurso de Amazon (ARN) del tema en el que se publicó el mensaje.x-amz-sns-subscription-arn

ARN de la suscripción a este punto de enlace.

El encabezado HTTP POST siguiente es un ejemplo de encabezado de un mensaje de notificación a unpunto de enlace HTTP.

POST / HTTP/1.1x-amz-sns-message-type: Notificationx-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1bx-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicx-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55Content-Length: 1336Content-Type: text/plain; charset=UTF-8Host: myhost.example.comConnection: Keep-Alive

Versión de API 2010-03-31211

Page 219: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de confirmación

de suscripción HTTP/HTTPS

User-Agent: Amazon Simple Notification Service Agent

Formato JSON de confirmación de suscripciónHTTP/HTTPS

Tras la suscripción a un punto de enlace HTTP/HTTPS, Amazon SNS envía un mensaje de confirmaciónde la suscripción al punto de enlace HTTP/HTTPS. Este mensaje contiene un valor SubscribeURLque debe visitar para confirmar la suscripción (o bien, puede utilizar el valor Token con la acciónConfirmSubscription). Tenga en cuenta que Amazon SNS no enviará notificaciones a este punto de enlacehasta que se confirme la suscripción.

El mensaje de confirmación de la suscripción es un mensaje POST con un cuerpo de mensaje quecontiene un documento JSON con los siguientes pares de nombre y valor.

Message

Cadena que describe el mensaje. Para la confirmación de suscripción, esta cadena tiene el aspectosiguiente:

You have chosen to subscribe to the topic arn:aws:sns:us-east-1:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.

MessageId

Identificador universal único, exclusivo para cada mensaje publicado. En los mensajes que AmazonSNS reenvía durante un reintento, se usa el ID del mensaje original.

Signature

Firma cifrada con Base64 "SHA1withRSA" de los valores Message, MessageId, Type, Timestamp yTopicArn.

SignatureVersion

Versión de la firma de Amazon SNS utilizada.SigningCertURL

Dirección URL del certificado que se utilizó para firmar el mensaje.SubscribeURL

Dirección URL que debe visitar para confirmar la suscripción. O bien, puede utilizar el Token con laacción ConfirmSubscription para confirmar la suscripción.

Marca temporal

Hora (GMT) de envío de la confirmación de suscripción.Token

Valor que puede utilizar la acción ConfirmSubscription para confirmar la suscripción. También puedevisitar simplemente SubscribeURL.

TopicArn

Nombre de recurso de Amazon (ARN) del tema al que está suscrito este punto de enlace.Type

Tipo de mensaje. Para obtener una confirmación de suscripción, el tipo esSubscriptionConfirmation.

Versión de API 2010-03-31212

Page 220: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de confirmación

de suscripción HTTP/HTTPS

El mensaje HTTP POST siguiente es un ejemplo de un mensaje SubscriptionConfirmation a un punto deenlace HTTP.

POST / HTTP/1.1x-amz-sns-message-type: SubscriptionConfirmationx-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1bx-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicContent-Length: 1336Content-Type: text/plain; charset=UTF-8Host: myhost.example.comConnection: Keep-AliveUser-Agent: Amazon Simple Notification Service Agent

{ "Type" : "SubscriptionConfirmation", "MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b", "Token" : "2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Message" : "You have chosen to subscribe to the topic arn:aws:sns:us-west-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.", "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736", "Timestamp" : "2012-04-26T20:45:04.751Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem" }

Puede descargar el siguiente archivo JSON para ver la definición del formato JSON para una confirmaciónde suscripción: https://sns.us-west-2.amazonaws.com/doc/2010-03-31/SubscriptionConfirmation.json.

Versión de API 2010-03-31213

Page 221: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de notificaciones HTTP/HTTPS

Formato JSON de notificaciones HTTP/HTTPSCuando Amazon SNS envía una notificación a un punto de enlace HTTP o HTTPS suscrito, el cuerpo delmensaje POST enviado al punto de enlace contiene un documento JSON con los siguientes pares denombre y valor.

Message

Valor Message especificado cuando se publicó la notificación en el tema.MessageId

Identificador universal único, exclusivo para cada mensaje publicado. En las notificaciones queAmazon SNS reenvía durante un reintento, se usa el ID del mensaje original.

Signature

Firma "SHA1withRSA" codificada en Base64 de los valores Message, MessageId, Subject (en caso deincluirse), Type, Timestamp y TopicArn.

SignatureVersion

Versión de la firma de Amazon SNS utilizada.SigningCertURL

Dirección URL del certificado que se utilizó para firmar el mensaje.Asunto

Parámetro Subject especificado cuando se publicó la notificación en el tema. Tenga en cuenta queeste es un parámetro opcional. Si no se especifica el parámetro Subject, el par de nombre y valor nose mostrará en este documento JSON.

Marca temporal

Hora (GMT) de publicación de la notificación.TopicArn

Nombre de recurso de Amazon (ARN) del tema en el que se publicó el mensaje.Type

Tipo de mensaje. Para una notificación, el tipo es Notification.UnsubscribeURL

Dirección URL que puede utilizar para cancelar la suscripción del punto de enlace a este tema.Si visita esta URL, Amazon SNS cancela la suscripción del punto de enlace y deja de enviarlenotificaciones.

El mensaje HTTP POST siguiente es un ejemplo de un mensaje de notificación a un punto de enlaceHTTP.

POST / HTTP/1.1x-amz-sns-message-type: Notificationx-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicx-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96Content-Length: 773

Versión de API 2010-03-31214

Page 222: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de confirmación de

cancelación de suscripción HTTP/HTTPS

Content-Type: text/plain; charset=UTF-8Host: myhost.example.comConnection: Keep-AliveUser-Agent: Amazon Simple Notification Service Agent

{ "Type" : "Notification", "MessageId" : "22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Subject" : "My First Message", "Message" : "Hello world!", "Timestamp" : "2012-05-02T00:54:06.655Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEw6JRNwm1LFQL4ICB0bnXrdB8ClRMTQFGBqwLpGbM78tJ4etTwC5zU7O3tS6tGpey3ejedNdOJ+1fkIp9F2/LmNVKb5aFlYq+9rk9ZiPph5YlLmWsDcyC5T+Sy9/umic5S0UQc2PEtgdpVBahwNOdMW4JPwk0kAJJztnc=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem", "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96"}

Puede descargar el siguiente archivo JSON para ver la definición del formato JSON de una notificación:https://sns.us-west-2.amazonaws.com/doc/2010-03-31/Notification.json.

Formato JSON de confirmación de cancelación desuscripción HTTP/HTTPS

Después de cancelar la suscripción de un punto de enlace HTTP/HTTPS a un tema, Amazon SNS envíaun mensaje de confirmación de cancelación de la suscripción al punto de enlace.

El mensaje de cancelación de la suscripción es un mensaje POST con un cuerpo de mensaje que contieneun documento JSON con los siguientes pares de nombre y valor.

Message

Cadena que describe el mensaje. Para la confirmación de la cancelación de suscripción, esta cadenatiene el aspecto siguiente:

You have chosen to deactivate subscription arn:aws:sns:us-east-1:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.

MessageId

Identificador universal único, exclusivo para cada mensaje publicado. En los mensajes que AmazonSNS reenvía durante un reintento, se usa el ID del mensaje original.

Signature

Firma cifrada con Base64 "SHA1withRSA" de los valores Message, MessageId, Type, Timestamp yTopicArn.

Versión de API 2010-03-31215

Page 223: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de confirmación de

cancelación de suscripción HTTP/HTTPS

SignatureVersion

Versión de la firma de Amazon SNS utilizada.SigningCertURL

Dirección URL del certificado que se utilizó para firmar el mensaje.SubscribeURL

Dirección URL que debe visitar para volver a confirmar la suscripción. O bien, puede utilizar el Tokencon la acción ConfirmSubscription para volver a confirmar la suscripción.

Marca temporal

Hora (GMT) de envío de la cancelación de la suscripción.Token

Valor que puede utilizar con la acción ConfirmSubscription para volver a confirmar la suscripción.También puede visitar simplemente SubscribeURL.

TopicArn

Nombre de recurso de Amazon (ARN) del tema del que el punto de enlace ha cancelado sususcripción.

Type

Tipo de mensaje. Para obtener una confirmación de la cancelación de suscripción, el tipo esUnsubscribeConfirmation.

El mensaje HTTP POST siguiente es un ejemplo de un mensaje UnsubscribeConfirmation a un punto deenlace HTTP.

POST / HTTP/1.1x-amz-sns-message-type: UnsubscribeConfirmationx-amz-sns-message-id: 47138184-6831-46b8-8f7c-afc488602d7dx-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopicx-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55Content-Length: 1399Content-Type: text/plain; charset=UTF-8Host: myhost.example.comConnection: Keep-AliveUser-Agent: Amazon Simple Notification Service Agent

{ "Type" : "UnsubscribeConfirmation", "MessageId" : "47138184-6831-46b8-8f7c-afc488602d7d", "Token" : "2336412f37fb687f5d51e6e241d09c805a5a57b30d712f7948a98bac386edfe3e10314e873973b3e0a3c09119b722dedf2b5e31c59b13edbb26417c19f109351e6f2169efa9085ffe97e10535f4179ac1a03590b0f541f209c190f9ae23219ed6c470453e06c19b5ba9fcbb27daeb7c7", "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic", "Message" : "You have chosen to deactivate subscription arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.", "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f7948a98bac386edfe3e10314e873973b3e0a3c09119b722dedf2b5e31c59b13edbb26417c19f109351e6f2169efa9085ffe97e10535f4179ac1a03590b0f541f209c190f9ae23219ed6c470453e06c19b5ba9fcbb27daeb7c7", "Timestamp" : "2012-04-26T20:06:41.581Z", "SignatureVersion" : "1", "Signature" : "EXAMPLEHXgJmXqnqsHTlqOCk7TIZsnk8zpJJoQbr8leD+8kAHcke3ClC4VPOvdpZo9s/vR9GOznKab6sjGxE8uwqDI9HwpDm8lGxSlFGuwCruWeecnt7MdJCNh0XK4XQCbtGoXB762ePJfaSWi9tYwzW65zAFU04WkNBkNsIf60=", "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem" }

Versión de API 2010-03-31216

Page 224: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de política de

entrega SetSubscriptionAttributes

Puede descargar el siguiente archivo JSON para ver la definición del formato JSON para unaconfirmación de cancelación de suscripción: https://sns.us-west-2.amazonaws.com/doc/2010-03-31/UnsubscribeConfirmation.json.

Formato JSON de política de entregaSetSubscriptionAttributes

Si envía una solicitud a la acción SetSubscriptionAttributes y establece el parámetro AttributeName en elvalor DeliveryPolicy, el valor del parámetro AttributeValue válido debe ser un objeto JSON válido. Porejemplo, el siguiente ejemplo establece la política de entrega en 5 reintentos en total.

http://sns.us-east-1.amazonaws.com/?Action=SetSubscriptionAttributes&SubscriptionArn=arn%3Aaws%3Asns%3Aus-east-1%3A123456789012%3AMy-Topic%3A80289ba6-0fd4-4079-afb4-ce8c8260f0ca&AttributeName=DeliveryPolicy&AttributeValue={"healthyRetryPolicy":{"numRetries":5}}...

Utilice el siguiente formato JSON para el valor del parámetro AttributeValue.

{ "healthyRetryPolicy" : { "minDelayTarget" : <int>, "maxDelayTarget" : <int>, "numRetries" : <int>, "numMaxDelayRetries" : <int>, "backoffFunction" : "<linear|arithmetic|geometric|exponential>" }, "throttlePolicy" : { "maxReceivesPerSecond" : <int> }}

Para obtener más información acerca de la acción SetSubscriptionAttribute, vaya aSetSubscriptionAttributes en la Amazon Simple Notification Service API Reference.

Formato JSON de política de entregaSetTopicAttributes

Si envía una solicitud a la acción SetTopicAttributes y establece el parámetro AttributeName en el valorDeliveryPolicy, el valor del parámetro AttributeValue válido debe ser un objeto JSON válido. Porejemplo, el siguiente ejemplo establece la política de entrega en 5 reintentos en total.

http://sns.us-east-1.amazonaws.com/?Action=SetTopicAttributes&TopicArn=arn%3Aaws%3Asns%3Aus-east-1%3A123456789012%3AMy-Topic&AttributeName=DeliveryPolicy&AttributeValue={"http":{"defaultHealthyRetryPolicy":{"numRetries":5}}}...

Versión de API 2010-03-31217

Page 225: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorFormato JSON de política de entrega SetTopicAttributes

Utilice el siguiente formato JSON para el valor del parámetro AttributeValue.

{ "http" : { "defaultHealthyRetryPolicy" : { "minDelayTarget": <int>, "maxDelayTarget": <int>, "numRetries": <int>, "numMaxDelayRetries": <int>, "backoffFunction": "<linear|arithmetic|geometric|exponential>" }, "disableSubscriptionOverrides" : <boolean>, "defaultThrottlePolicy" : { "maxReceivesPerSecond" : <int> } }}

Para obtener más información acerca de la acción SetTopicAttributes, vaya a SetTopicAttributes en laAmazon Simple Notification Service API Reference.

Versión de API 2010-03-31218

Page 226: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorHabilitación de la entrega de mensajes sin

procesar con la Consola de administración de AWS

Apéndice: cargas de gran tamaño yentrega de mensajes sin procesar

Con Amazon SNS y Amazon SQS, ahora tiene la posibilidad de enviar mensajes de carga de gran tamañoque, como máximo, tengan un tamaño de 256 KB (262.144 bytes). Para enviar cargas de gran tamaño(mensajes que tengan entre 64 KB y 256 KB), debe utilizar un SDK de AWS compatible con la firma deAWS Signature Version 4 (SigV4). Para verificar si SigV4 es compatible con un SDK de AWS, consulte lasnotas de la versión del SDK.

Además de enviar cargas de gran tamaño, ahora, con Amazon SNS, puede habilitar la entrega demensajes sin procesar para mensajes que se entreguen a puntos de enlace Amazon SQS o HTTP/S.Esto elimina la necesidad de que los puntos de enlace procesen el formato JSON, que se crea paralos metadatos de Amazon SNS cuando la entrega de mensajes sin procesar no está seleccionada. Porejemplo, si permite la entrega de mensajes sin procesar a un punto de enlace Amazon SQS, los metadatosde Amazon SNS no se incluyen y el mensaje publicado se entrega al punto de enlace Amazon SQSsuscrito tal y como está. Si habilita la entrega de mensajes sin procesar a los puntos de enlace HTTP/S,los mensajes contendrán un encabezado HTTP adicional, x-amz-sns-rawdelivery, con un valor detrue para indicar que el mensaje se está publicando sin procesar, en lugar de hacerlo con formato JSON.Esto permite que estos puntos de enlace entiendan qué se está distribuyendo y facilita la transición de lassuscripciones de JSON a la entrega sin procesar.

Para habilitar la entrega de mensajes sin procesar mediante uno de los SDK de AWS, debe utilizar laacción SetSubscriptionAttribute y configurar el atributo RawMessageDelivery con un valor detrue. El valor predeterminado es false.

Habilitación de la entrega de mensajes sin procesarcon la Consola de administración de AWS

Puede habilitar la entrega de mensajes sin procesar con la Consola de administración de AWSconfigurando el atributo de suscripción Raw Message Delivery en el valor true.

Para habilitar la entrega de mensajes sin procesar con la Consola de administración de AWS

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v2/home.

2. Seleccione un tema que esté suscrito a un punto de enlace Amazon SQS o HTTP/S y, a continuación,haga clic en el ARN del tema.

Aparecerá la página Topic Details.3. Seleccione el Subscription ID y, a continuación, haga clic en el cuadro desplegable Other subscription

actions.4. Haga clic en Edit subscription attributes, seleccione Raw Message Delivery y, a continuación, haga clic

en Set subscription attributes.

Versión de API 2010-03-31219

Page 227: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrolladorHabilitación de la entrega de mensajes sin

procesar con la Consola de administración de AWS

Versión de API 2010-03-31220

Page 228: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Historial de revisiónEn la siguiente tabla se describen los cambios importantes que se han realizado en la documentacióndesde la última versión de la guía para desarrolladores de Amazon SNS.

• Versión del API: 2010-03-31• Última actualización de la documentación: 10 de abril de 2018

Cambio Descripción Fecha demodificación

Publicación desdeuna VPC

Publique en sus temas de Amazon SNS de forma privadadesde Amazon Virtual Private Cloud. Consulte Publicaciónen temas de Amazon SNS desde Amazon Virtual PrivateCloud (p. 209).

10 de abril de 2018

Eliminación depolíticas de filtro

Quite la política de filtro asignada a una suscripción paradejar de filtrar mensajes. Consulte Eliminación de políticasde filtro de suscripciones (p. 198).

10 de abril de 2018

Nuevas operacionesde políticas de filtrode suscripciones

Además de permitir la coincidencia exacta con valoresde cadena, las políticas de filtro admiten las siguientesoperaciones para buscar coincidencias en los atributosdel mensaje: coincidencia "anything-but", coincidenciade prefijo, coincidencia numérica exacta y coincidenciade intervalo numérico. Para obtener más información,consulte Filtrado de mensajes (p. 189).

12 de marzo de2018

Políticas de filtro desuscripciones

Los suscriptores pueden recibir selectivamente mensajespublicados en temas de Amazon SNS aplicando políticasde filtro a suscripciones de temas. Para obtener másinformación, consulte Filtrado de mensajes (p. 189).

21 de noviembre de2017

Aplicación deatributos demensajes

Aplicación de atributos de mensajes (p. 185) incluye pasosy ejemplos para aplicar atributos de mensajes a través dela consola de Amazon SNS, la AWS CLI y AWS SDK forJava.

21 de noviembre de2017

Métrica deCloudWatch paragastos de SMS

Amazon SNS envía la métricaSMSMonthToDateSpentUSD a CloudWatch. Esta métricamuestra los cargos que se han acumulado desde elprincipio del mes actual por envío de mensajes SMS. Paraobtener más información, consulte Métricas de AmazonSNS (p. 202).

31 de marzo de2017

Códigos cortosdedicados para SMS

Para enviar mensajes SMS mediante un código cortopersistente, reserve un código corto dedicado quese asigne a su cuenta y que esté a su disposiciónexclusivamente. Para obtener más información, consulteReserva de un código corto dedicado para mensajesSMS (p. 141).

06 de marzo de2017

Amazon SNS admiteSMS en todo elmundo

Ahora Amazon SNS es compatible con la mensajería SMSen más de 200 países y regiones. Dispone de la capacidadde enviar un mensaje directamente a un número de

28 de junio de 2016

Versión de API 2010-03-31221

Page 229: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Cambio Descripción Fecha demodificación

teléfono o de enviar un mensaje a varios números deteléfono a la vez suscribiendo dichos números de teléfonoa un tema y enviando su mensaje al tema. Para obtenermás información, consulte Envío de mensajes SMS conAmazon SNS (p. 123).

Puntos de enlace deplataforma y tokensde dispositivo

Se ha añadido un tema sobre cómo crear un punto deenlace de plataforma y administrar tokens de dispositivopara notificaciones de inserción en móvil de Amazon SNS.Para obtener más información, consulte Creación de unpunto de enlace de plataforma y administración de tokensde dispositivos (p. 85).

23 de septiembre de2015

Notificaciones deevento de aplicación

Se ha añadido un tema sobre cómo activar notificacionescuando se producen determinados eventos de aplicación.Para obtener más información, consulte Notificaciones deevento de aplicación (p. 95).

23 de septiembre de2015

Nuevacompatibilidad connotificaciones deinserción en VoIP yMac OS X

Se han añadido nuevos temas relativos al envío demensajes de notificación de inserción a aplicaciones VoIPy Mac OS X con Apple Push Notification Service. Paraobtener más información, consulte Introducción a ApplePush Notification Service (p. 46).

15 de junio de 2015

Invocación defunciones de AWSLambda

Se ha añadido un tema sobre cómo invocar funciones deLambda mediante notificaciones de Amazon SNS. Paraobtener más información, consulte Invocación de funcionesLambda mediante notificaciones de Amazon SNS (p. 178).

09 de abril de 2015

Uso de los atributosde tema de AmazonSNS para el estadode entrega delmensaje

Se ha añadido un tema sobre el uso de los atributos detema de Amazon SNS para el estado de entrega delmensaje. Para obtener más información, consulte Uso delos atributos de tema de Amazon SNS para el estado deentrega del mensaje (p. 180).

09 de abril de 2015

Compatibilidadcon el registro delestado de entregade los mensajesde notificación deinserción

Se ha añadido un tema sobre el uso de atributos deaplicación de Amazon SNS para el estado de entrega delmensaje. Para obtener más información, consulte Uso delos atributos de aplicación de Amazon SNS para el estadode entrega de los mensajes (p. 93).

05 de febrero de2015

Compatibilidad paraAWS CloudTrailcon Amazon SimpleNotification Service

Se ha añadido un tema sobre el registro de llamadas a laAPI de Amazon SNS mediante CloudTrail. Para obtenermás información, consulte Registro de llamadas a la APIde Amazon Simple Notification Service mediante AWSCloudTrail (p. 205).

09 de octubre de2014

Información de lospasos generales dela inserción en móvilde Amazon SNS

Se ha añadido un tema sobre los pasos generales quedebe ejecutar para utilizar la inserción en móvil de AmazonSNS. Esta información debe ayudarle a comprender mejorlos pasos que se siguen cuando se utilizan las API deinserción en móvil de Amazon SNS. Para obtener másinformación, consulte Información de los pasos generalesde la inserción en móvil de Amazon SNS (p. 40).

09 de octubre de2014

Versión de API 2010-03-31222

Page 230: Notification Service Amazon Simple€¦ ·  · 2018-03-09... Obtener el ID y la clave secreta de cliente ... Descargar e instalar la aplicación de demostración Android ... Conceda

Amazon Simple Notification Service Guía del desarrollador

Cambio Descripción Fecha demodificación

Compatibilidadpara mensajesautenticados conMicrosoft PushNotification Servicefor Windows Phone

Se ha actualizado un tema sobre cómo enviar mensajesautenticados con MPNS. Para obtener más información,consulte Introducción a MPNS (p. 74).

19 de agosto de2014

Compatibilidad parala configuraciónde un atributo demensaje de tiempode vida (TTL) paralos mensajes denotificación deinserción en móvil

Se ha añadido un tema sobre cómo especificar losmetadatos de vencimiento de un mensaje de notificaciónde inserción en móvil. Para obtener más información,consulte Utilización del atributo de mensaje de tiempode vida (TTL) de Amazon SNS para las notificaciones deinserción en móvil (p. 98).

10 de julio de 2014

Compatibilidad paraBaidu Cloud Push,Microsoft PushNotification Servicefor Windows Phoney Windows PushNotification Services

Se han añadido temas sobre cómo usar Baidu, MPNSy WNS con Amazon SNS para enviar mensajes denotificación de inserción a dispositivos móviles. Paraobtener más información, consulte Introducción a BaiduCloud Push (p. 52), Introducción a MPNS (p. 74) yIntroducción a WNS (p. 77).

12 de junio de 2014

Atributos demensajes

Los atributos de los mensajes le permiten proporcionarelementos de metadatos estructurados sobre un mensaje.Para obtener más información, consulte Uso de losatributos de mensajes de Amazon SNS (p. 183).

12 de junio de 2014

Muestras deAmazon SNS enJava

Se ha añadido una sección sobre el uso del AWS SDKfor Java con Amazon SNS. Los ejemplos de esta secciónmuestran cómo crear un cliente de Amazon SNS nuevo,establecer el punto de enlace de Amazon SNS y crear unnuevo tema. Además, se proporcionan ejemplos sobrecómo suscribirse a un tema, publicar en él y eliminarlo.Para obtener más información, consulte Uso de AWS SDKfor Java con Amazon SNS (p. 10).

23 de abril de 2014

Notificaciones deinserción en móvil

Se ha añadido un tema sobre cómo crear y enviar cargasespecíficas de plataforma personalizadas en mensajesa dispositivos móviles. Para obtener más información,consulte Envío de cargas específicas de plataformapersonalizadas en mensajes a dispositivos móviles (p. 91).

17 de diciembre de2013

Notificaciones deinserción en móvil

Se ha añadido compatibilidad para enviar los mensajesde notificación directamente a aplicaciones de dispositivosmóviles. Para obtener más información, consulteNotificaciones de inserción en móvil de AmazonSNS (p. 38).

13 de agosto de2013

Versión inicial Esta es la primera versión de la Guía para desarrolladoresde Amazon SNS.

1 de mayo de 2013

Versión de API 2010-03-31223