Amazon Simple Notification Service
Guía para desarrolladores

Uso de los atributos de las aplicaciones de Amazon SNS para el estado de entrega de los mensajes

Amazon Simple Notification Service (Amazon SNS) permite registrar el estado de entrega de los mensajes de notificaciones de inserción. Después de configurar los atributos de las aplicaciones, se envían entradas de registro a CloudWatch Logs para los mensajes enviados desde Amazon SNS a puntos de enlace móviles. El log del estado 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 de inserción 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 las aplicaciones para el estado de entrega de los mensajes, puede utilizar la Consola de administración de AWS, los kits de desarrollo de software (SDK) de AWS o la API de consultas.

Configuración de los atributos del estado de entrega de los mensajes mediante la Consola de administración de AWS

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

  2. En el panel de navegación, elija Apps (Aplicaciones) y, a continuación, elija la aplicación que contiene los puntos de enlace para los que desea recibir CloudWatch Logs.

  3. Elija Application Actions (Acciones de la aplicación) y después Delivery Status (Estado de entrega).

  4. En el cuadro de diálogo Delivery Status (Estado de entrega), elija Create IAM Roles (Crear roles de IAM).

    Se le redirigirá a la consola de IAM.

  5. Elija Allow (Permitir) 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 (Estado de entrega) y escriba un número en el campo Percentage of Success to Sample (0-100) (Porcentaje de resultados correctos de la muestra (0-100)) para indicar el porcentaje de mensajes enviados correctamente para los que desea recibir CloudWatch Logs.

    nota

    Una vez que haya configurado los atributos de las aplicaciones para el estado de entrega de los mensajes, todas las entregas de mensajes que hayan resultado erróneas generarán un CloudWatch Logs.

  7. Por último, elija Save Configuration (Guardar configuración). Ahora podrá ver y analizar los CloudWatch Logs que contienen el estado de entrega de los mensajes. Para obtener más información sobre el uso de CloudWatch, consulte la documentación de CloudWatch.

Ejemplos de registros de CloudWatch de estado de entrega de los mensajes de Amazon SNS

Una vez que haya configurado los atributos del estado de entrega de los mensajes para el punto de enlace de una aplicación, se generarán CloudWatch Logs. A continuación, se muestran registros de ejemplo en formato JSON:

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-2:111122223333:endpoint/FCM/FCMPushApp/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-2: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 de respuesta de la plataforma.

Configuración de atributos del estado de entrega de mensajes con los SDK de AWS

Los AWS SDK proporcionan API en varios lenguajes para utilizar atributos de estado de entrega de los mensajes con Amazon SNS.

El ejemplo de Java siguiente muestra cómo utilizar la API SetPlatformApplicationAttributes para configurar atributos de las aplicaciones para el estado de entrega de los mensajes de notificaciones de inserción. Puede utilizar los atributos siguientes para el estado de entrega de los mensajes: SuccessFeedbackRoleArn, FailureFeedbackRoleArn y SuccessFeedbackSampleRate. Los atributos SuccessFeedbackRoleArn y FailureFeedbackRoleArn permiten conceder a Amazon SNS acceso de escritura para utilizar CloudWatch Logs en su nombre. El atributo SuccessFeedbackSampleRate permite especificar el porcentaje de la frecuencia de muestreo (0-100) de los mensajes entregados correctamente. Una vez configurado 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/FCM/FCMPushApp"); sns.setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest);

Para obtener más información sobre SDK para Java, consulte Introducción al AWS SDK for Java.

Códigos de respuesta de la plataforma

A 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 la sección sobre el formato de respuesta en la documentación de ADM.
Apple Push Notification Service (APNs) Consulte HTTP/2 Response from APNs en Communicating with APNs en la Local and Remote Notification Programming Guide.
Firebase Cloud Messaging (FCM) Consulte Códigos de respuesta de errores de mensajes descendentes en la documentación de Firebase Cloud Messaging.
Microsoft Push Notification Service for Windows Phone (MPNS) Consulte Push Notification Service Response Codes for Windows Phone 8 en la documentación de desarrollo de Windows 8.
Windows Push Notification Services (WNS) Consulte "Response codes" en Push Notification Service Request and Response Headers (Windows Runtime Apps) en la documentación de desarrollo de Windows 8.