Amazon Simple Notification Service - Manuel du développeur

Transcription

Amazon Simple Notification Service - Manuel du développeur
Amazon Simple
Notification Service
Manuel du développeur
API Version 2010-03-31
Amazon Simple Notification
Service Manuel du développeur
Amazon Simple Notification
Service Manuel du développeur
Amazon Simple Notification Service: Manuel du développeur
Copyright © 2017 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
manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other
trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to,
or sponsored by Amazon.
Amazon Simple Notification
Service Manuel du développeur
Table of Contents
En quoi consiste Amazon SNS ? ..................................................................................................... 1
Utilisez-vous Amazon Simple Notification Service pour la première fois ? ....................................... 2
Au-delà de la section Mise en route ........................................................................................ 2
Accès à Amazon SNS ........................................................................................................... 3
Scénarios courants ................................................................................................................ 3
Distribution ramifiée ....................................................................................................... 3
Alertes d'application et du système .................................................................................. 4
Messagerie texte et push mail ........................................................................................ 4
Notifications push mobile ............................................................................................... 4
Mise en route ............................................................................................................................... 5
Avant de commencer ............................................................................................................ 5
Création d'une rubrique ......................................................................................................... 6
Abonnement à une rubrique ................................................................................................... 6
Publication dans une rubrique ................................................................................................. 7
Création de messages différents pour chaque protocole ...................................................... 8
Nettoyage ............................................................................................................................ 9
Utilisation du kit SDK pour Java ............................................................................................ 10
Gestion des accès ...................................................................................................................... 13
Présentation ....................................................................................................................... 13
Quand utiliser un contrôle d'accès ................................................................................. 14
Concepts clés ............................................................................................................. 14
Présentation de l'architecture ........................................................................................ 17
Utilisation du Access Policy Language ............................................................................ 20
Logique d'évaluation .................................................................................................... 22
Exemples de cas pour le contrôle d'accès Amazon SNS ................................................... 27
Informations spécifiques aux stratégies Amazon SNS ............................................................... 31
Limites de la stratégie Amazon SNS .............................................................................. 31
Actions de stratégie Amazon SNS valides ....................................................................... 31
Clés Amazon SNS ...................................................................................................... 32
Contrôle de l'accès des utilisateurs à votre compte AWS ........................................................... 32
Utilisation conjointe de stratégies IAM et Amazon SNS ..................................................... 33
ARN Amazon SNS ...................................................................................................... 35
Actions Amazon SNS .................................................................................................. 36
Clés Amazon SNS ...................................................................................................... 36
Exemples de stratégies pour Amazon SNS ..................................................................... 37
Using Temporary Security Credentials ............................................................................ 39
Push mobile Amazon SNS ........................................................................................................... 41
Présentation ....................................................................................................................... 41
Prérequis ........................................................................................................................... 42
Etapes détaillées push mobile ............................................................................................... 43
Etape 1 : Demande d'informations d'identification aux plateformes mobiles ........................... 43
Etape 2 : Demande de jeton aux plateformes mobiles ....................................................... 44
Etape 3 : Création d'un objet d'application de plateforme ................................................... 44
Etape 4 : Création d'un objet de point de terminaison de plateforme .................................... 44
Etape 5 : Publication d'un message sur un point de terminaison mobile ................................ 45
Mise en route avec ADM ...................................................................................................... 45
Prérequis pour ADM .................................................................................................... 45
Etape 1 : Création d'une application Kindle Fire avec le service ADM activé .......................... 46
Etape 2 : Obtention d'un ID client et du code secret du client ............................................. 46
Etape 3 : Obtention d'une clé API .................................................................................. 47
Etape 4 : Obtention d'un ID d'enregistrement ................................................................... 47
Etape 5 : Envoi d'un message à une application Kindle Fire à l'aide d'Amazon SNS et ADM ..... 48
Mise en route avec APNS .................................................................................................... 50
Prérequis pour APNS .................................................................................................. 50
Etape 1 : Création d'une application iOS ......................................................................... 51
API Version 2010-03-31
iv
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Obtention d'un certificat SSL APNS .................................................................. 51
Etape 3 : Obtention de la clé privée d'application ............................................................. 52
Etape 4 : Vérification du certificat et de la clé privée d'application ........................................ 52
Etape 5 : Obtention d'un jeton d'appareil ......................................................................... 52
Etapes suivantes ......................................................................................................... 53
Envoi d'un message à une application iOS ...................................................................... 53
Envoi d'un message à une application VoIP .................................................................... 55
Envoi d'un message à une application Mac OS X ............................................................. 56
Mise en route avec Baidu ..................................................................................................... 57
Prérequis pour Baidu ................................................................................................... 57
Etape 1 : Création d'un compte Baidu ............................................................................ 57
Etape 2 : Inscription en tant que développeur Baidu ......................................................... 59
Etape 3 : Création d'un projet Baidu Cloud Push .............................................................. 63
Etape 4 : Téléchargement et installation de l'application de démonstration Android ................. 66
Etape 5 : Obtention d'un ID utilisateur et d'un ID de canal .................................................. 70
Etape 6 : Envoi d'un message de notification push à un point de terminaison mobile à l'aide
d'Amazon SNS et de Baidu .......................................................................................... 70
Mise en route avec GCM ..................................................................................................... 75
Prérequis pour GCM .................................................................................................... 75
Etape 1 : Création d'un projet d'API Google et activation du service GCM ............................. 75
Etape 2 : Obtention de la clé API de serveur ................................................................... 76
Etape 3 : Obtention d'un ID d'enregistrement de GCM ...................................................... 76
Etape 4 : Envoi d'un message à un point de terminaison mobile à l'aide de GCM ................... 78
Mise en route avec MPNS .................................................................................................... 80
Prérequis pour MPNS .................................................................................................. 80
Etape 1 : Configuration de votre application Windows Phone pour la réception de messages
de notification push ..................................................................................................... 81
Etape 2 : Obtention d'une URI de notification push à partir de MPNS ................................... 81
Etape 3 : Création d'un compte de développeur Windows .................................................. 81
Etape 4 : Téléchargement d'un certificat TLS ................................................................... 81
Etape 5 : Envoi d'un message de notification push à une application Windows Phone à l'aide
d'Amazon SNS et de MPNS ......................................................................................... 81
Mise en route avec WNS ..................................................................................................... 84
Prérequis pour WNS .................................................................................................... 84
Etape 1 : Configuration de votre application pour la réception de messages de notification
push .......................................................................................................................... 84
Etape 2 : Obtention d'une URI de notification push à partir de WNS .................................... 85
Etape 3 : Obtention d'un identificateur de sécurité du package à partir de WNS ..................... 85
Etape 4 : Obtention d'une clé secrète à partir de WNS ...................................................... 85
Etape 5 : Envoi d'un message de notification push à une application à l'aide d'Amazon SNS
et de WNS ................................................................................................................. 85
Utilisation de push mobile Amazon SNS ................................................................................. 87
Inscription de votre application mobile auprès d'AWS ........................................................ 87
Ajout de jetons d'appareil ou d'ID d'enregistrement ........................................................... 89
Création d'un point de terminaison de plateforme et gestion des jetons d'appareil ................... 92
Envoi d'un message directement à un appareil mobile ...................................................... 97
Envoi de messages à des appareils mobiles abonnés à une rubrique .................................. 97
Envoi de charges utiles personnalisées propres à une plateforme à des appareils mobiles ....... 98
Attributs d'application pour l’état de diffusion du message ........................................................ 100
Configuration des attributs de l'état de diffusion du message avec AWS Management
Console ................................................................................................................... 101
Exemples de CloudWatch pour l'état de diffusion du message Amazon SNS ....................... 101
Configuration des attributs de l'état de diffusion du message avec les kits de développement
logiciel AWS ............................................................................................................. 102
Codes de réponse de la plateforme .............................................................................. 103
Notifications d’événements d'application ................................................................................ 103
Evénements d'application disponibles ........................................................................... 103
Envoi de notifications d’événements d'application ........................................................... 104
API Version 2010-03-31
v
Amazon Simple Notification
Service Manuel du développeur
Durée de vie Amazon SNS ................................................................................................. 106
Attributs de message TTL pour les services de notification push ....................................... 106
Ordre de priorité pour déterminer la durée de vie ........................................................... 107
Spécification de la durée de vie avec AWS Management Console ..................................... 107
Spécification de la durée de vie avec les kits de développement logiciel (SDK) AWS ............. 107
API push mobile Amazon SNS ............................................................................................ 108
Erreurs d'API .................................................................................................................... 109
Envoi de messages à des files d'attente Amazon SQS .................................................................... 118
Etape 1. Obtention de l'ARN de la file d'attente et de la rubrique ............................................... 119
Etape 2. Autorisation d'envoi de messages à la file d'attente Amazon SQS pour la rubrique
Amazon SNS .................................................................................................................... 120
Etape 3. Abonnement de la file d'attente à la rubrique Amazon SNS .......................................... 121
Etape 4. Autorisations d'accès aux actions appropriées de la rubrique et de la file d'attente pour
des utilisateurs .................................................................................................................. 121
Ajout d'une stratégie à un utilisateur ou un groupe IAM ................................................... 122
Ajout d'une stratégie à une rubrique ou une file d'attente ................................................. 123
Etape 5. Test .................................................................................................................... 124
Envoi de messages à une file d'attente d'un autre compte ....................................................... 125
Création de l'abonnement par le propriétaire de la file d'attente ......................................... 125
Création de l'abonnement par un utilisateur qui n'est pas le propriétaire de la file d'attente ...... 126
Utilisation d'un modèle AWS CloudFormation pour créer une rubrique qui envoie des messages à
des files d'attente Amazon SQS .......................................................................................... 128
Utilisation d'un modèle AWS CloudFormation pour configurer des rubriques et des files
d'attente dans un compte AWS ................................................................................... 128
Envoi de SMS ........................................................................................................................... 134
Définition des préférences .................................................................................................. 134
Définition des préférences (console) ............................................................................. 135
Définition des préférences (SDK AWS) ......................................................................... 136
Envoi d'un message ........................................................................................................... 137
Envoi d'un message (console) ..................................................................................... 137
Envoi d'un message (SDK AWS) ................................................................................. 138
Envoi d'un message à plusieurs numéros de téléphone ........................................................... 140
Envoi d'un message à une rubrique (console) ................................................................ 140
Envoi d'un message à une rubrique (SDK AWS) ............................................................ 141
Surveillance de l'activité SMS .............................................................................................. 144
Affichage des statistiques de diffusion .......................................................................... 144
Affichage des journaux et métriques CloudWatch ........................................................... 145
Affichage des rapports d'utilisation ............................................................................... 147
Gestion des abonnements .................................................................................................. 149
Désactivation de la réception des SMS ......................................................................... 150
Gestion des numéros de téléphone et des abonnements (console) .................................... 150
Gestion des numéros de téléphone et des abonnements (SDK AWS) ................................ 151
Régions et pays pris en charge ........................................................................................... 153
Envoi de messages à des points de terminaison HTTP/HTTPS ......................................................... 161
Etape 1 : Vérification de la disponibilité de votre point de terminaison pour traiter des messages
Amazon SNS .................................................................................................................... 162
Etape 2 : Abonnement du point de terminaison HTTP/HTTPS à la rubrique Amazon SNS .............. 166
Etape 3 : Confirmation de l'abonnement ................................................................................ 166
Etape 4 : Définition de la stratégie de relance de la diffusion pour l'abonnement (facultatif) ............. 166
Etape 5 : Octroi aux utilisateurs d'autorisations de publication dans la rubrique (facultatif) .............. 167
Etape 6 : Envoi de messages au point de terminaison HTTP/HTTPS ......................................... 168
Configuration des stratégies de relance de la diffusion Amazon SNS pour les points de
terminaison HTTP/HTTPS ................................................................................................... 169
Application des stratégies de diffusion à des rubriques et des abonnements ........................ 171
Définition du taux de réception maximum ...................................................................... 172
Phase de relance immédiate ....................................................................................... 173
Phase de pré-interruption ........................................................................................... 173
Phase d'interruption ................................................................................................... 174
API Version 2010-03-31
vi
Amazon Simple Notification
Service Manuel du développeur
Phase de post-interruption .......................................................................................... 175
Autorités de certification pour les points de terminaison HTTPS ................................................ 175
Vérification des signatures de message ................................................................................ 188
Exemple de code pour un servlet Java de point de terminaison ................................................ 191
Appel de fonctions Lambda ......................................................................................................... 195
Prérequis .......................................................................................................................... 195
Configuration d'Amazon SNS avec des points de terminaison Lambda à l'aide d'AWS
Management Console ........................................................................................................ 195
Utilisation d'attributs de rubrique Amazon SNS pour l’état de diffusion du message .............................. 197
Configuration des attributs de l'état de diffusion du message avec AWS Management Console ....... 198
Configuration des attributs de l'état de diffusion du message pour les rubriques abonnées à des
points de terminaison Amazon SNS avec les kits de développement logiciel AWS ........................ 198
Attributs de la rubrique ............................................................................................... 198
Exemple Java pour la configuration d'attributs de rubrique ............................................... 199
Attributs de message ................................................................................................................. 201
Eléments d'attribut de message et validation .......................................................................... 201
Type de données .............................................................................................................. 202
Attributs de message réservé .............................................................................................. 202
Utilisation d'attributs de message avec les kits de développement logiciel AWS ........................... 203
Surveillance de Amazon SNS avec CloudWatch ............................................................................ 204
Accès aux métriques CloudWatch pour Amazon SNS ............................................................. 204
Définition d'alarmes CloudWatch pour les métriques Amazon SNS ............................................ 205
Métriques Amazon SNS ..................................................................................................... 206
Dimensions des métriques Amazon Simple Notification Service ................................................ 207
Journalisation des appels d'API Amazon SNS à l'aide de CloudTrail .................................................. 208
Informations Amazon SNS dans CloudTrail ........................................................................... 208
Présentation des entrées des fichiers journaux Amazon SNS ................................................... 209
Annexe : formats de message et JSON ........................................................................................ 212
En-têtes HTTP/HTTPS ....................................................................................................... 212
Format JSON de confirmation d'abonnement HTTP/HTTPS ..................................................... 213
Format JSON de notification HTTP/HTTPS ............................................................................ 215
Format JSON de confirmation de désabonnement HTTP/HTTPS .............................................. 216
Format JSON de stratégie de diffusion SetSubscriptionAttributes .............................................. 218
Format JSON de stratégie de diffusion SetTopicAttributes ........................................................ 218
Annexe : Charge utile volumineuse et diffusion brute des messages .................................................. 220
Activation de la diffusion brute des messages avec AWS Management Console .......................... 220
Historique du document .............................................................................................................. 222
API Version 2010-03-31
vii
Amazon Simple Notification
Service Manuel du développeur
Présentation d'Amazon Simple
Notification Service
Amazon Simple Notification Service (Amazon SNS) est un service web qui coordonne et gère
la diffusion ou l'envoi de messages à des clients ou à des points de terminaison abonnés. Dans
Amazon SNS, il existe deux types de clients : les éditeurs et les abonnés, également appelés
producteurs et consommateurs. Les éditeurs communiquent de façon asynchrone avec les abonnés en
produisant et en envoyant un message à une rubrique, qui est un point d'accès logique et un canal de
communication. Les abonnés (par exemple, des serveurs web, des adresses e-mail, des files d'attente
Amazon SQS, des fonctions AWS Lambda) consomment ou reçoivent le message ou la notification
via l'un des protocoles pris en charge (Amazon SQS, HTTP/S, e-mail, SMS, Lambda) lorsqu'ils sont
abonnés à la rubrique.
Lorsque vous utilisez Amazon SNS, en tant que propriétaire, vous créez une rubrique et définissez
des stratégies d'accès à cette dernière de manière à déterminer quels éditeurs et abonnés peuvent
communiquer avec la rubrique. Les éditeurs envoient des messages aux rubriques qu'ils ont créées
ou à celles sur lesquelles ils sont autorisés à publier. Plutôt que d'inclure l'adresse d'une destination
spécifique dans chaque message, les éditeurs envoient un message à la rubrique. Amazon SNS établit
API Version 2010-03-31
1
Amazon Simple Notification
Service Manuel du développeur
Utilisez-vous Amazon Simple Notification
Service pour la première fois ?
une correspondance entre la rubrique et la liste des abonnés à cette rubrique, puis remet le message
à chacun d'eux. Chaque rubrique possède un nom unique qui identifie le point de terminaison Amazon
SNS de manière à ce que les éditeurs puissent publier des messages et que les abonnés puissent
s'inscrire pour recevoir des notifications. Les abonnés reçoivent tous les messages publiés dans
les rubriques auxquelles ils sont abonnés, et tous les abonnés à une rubrique reçoivent les mêmes
messages.
Rubriques
• Utilisez-vous Amazon Simple Notification Service pour la première fois ? (p. 2)
• Au-delà de la section Mise en route (p. 2)
• Accès à Amazon SNS (p. 3)
• Scénarios Amazon SNS courants (p. 3)
Utilisez-vous Amazon Simple Notification Service
pour la première fois ?
Si vous utilisez Amazon SNS pour la première fois, nous vous recommandons de commencer par lire
les sections suivantes :
• En quoi consiste Amazon SNS : le reste de cette section inclut une vidéo qui présente Amazon SNS
et vous guide à travers l'exemple présenté sur la page Mise en route d'Amazon Simple Notification
Service (p. 5), et fournit des scénarios de cas d'utilisation courants.
• Mise en route : la section Mise en route d'Amazon Simple Notification Service (p. 5) explique
comment créer une rubrique, s'y abonner, publier un message dedans, s'en désabonner et enfin la
supprimer.
Au-delà de la section Mise en route
Au-delà de la section Mise en route, vous voudrez probablement en savoir plus sur les
opérationsAmazon SNS. Les sections suivantes fournissent des informations détaillées sur l'utilisation
d'Amazon SNS :
• Gestion de l'accès à vos rubriques Amazon SNS (p. 13)
Vous pouvez contrôler de façon précise quels points de terminaison sont autorisés à s'abonner à
une rubrique, qui peut effectuer des publications dedans et dans quelles conditions. Cette section
vous montre comment contrôler l'accès à l'aide de stratégies de contrôle d'accès.
• Surveillance de Amazon SNS avec CloudWatch (p. 204)
Amazon SNS et CloudWatch étant intégrés, vous pouvez collecter, afficher et analyser des
métriques pour chaque rubrique Amazon SNS active.
• Envoi de messages Amazon SNS à des files d'attente Amazon SQS (p. 118)
Vous pouvez utiliser Amazon SNS pour envoyer des messages à une ou plusieurs files d'attente
Amazon SQS.
• Envoi de SMS avec Amazon SNS (p. 134)
Vous pouvez utiliser Amazon Simple Notification Service (Amazon SNS) pour envoyer des
notifications par SMS à des téléphones portables et des smartphones compatibles SMS.
• Envoi de messages Amazon SNS à des points de terminaison HTTP/HTTPS (p. 161)
API Version 2010-03-31
2
Amazon Simple Notification
Service Manuel du développeur
Accès à Amazon SNS
Vous pouvez utiliser Amazon SNS pour envoyer des messages de notification à un ou plusieurs
points de terminaison HTTP ou HTTPS.
Accès à Amazon SNS
Si vous avez un compte AWS, vous pouvez accéder à Amazon SNS de l'une des façons suivantes.
AWS Management Console
AWS Management Console fournit une interface web dans laquelle vous pouvez gérer vos
ressources de calcul, de stockage et d'autres ressources du cloud. Au sein d'AWS Management
Console, les services individuels ont leur propre console. Pour ouvrir la console Amazon SNS,
connectez-vous à https://console.aws.amazon.com/ et choisissez SNS dans la page d'accueil de
la console, ou utilisez directement l'URL de la console SNS : https://console.aws.amazon.com/
sns/. Pour accéder à un didacticiel qui vous aide à effectuer des tâches SNS courantes dans la
console, consultez la page Mise en route d'Amazon Simple Notification Service (p. 5).
AWS Command Line Interface (CLI)
Fournit des commandes pour une large gamme de produits AWS et est prise en charge par
Windows, Mac et Linux/UNIX. Consultez AWS Command Line Interface Guide de l'utilisateur pour
démarrer. Pour plus d'informations sur les commandes pour Amazon SNS, consultez sns dans le
manuel AWS Command Line Interface Reference.
Outils AWS pour Windows PowerShell
Fournit des commandes pour une large gamme de produits AWS à ceux qui écrivent des scripts
dans l'environnement PowerShell. Consultez Outils AWS pour Windows PowerShell Guide de
l'utilisateur pour démarrer. Pour plus d'informations sur les applets de commande pour Amazon
SNS, consultez la page Amazon Simple Notification Service dans le manuel Outils AWS pour
Windows PowerShell Reference.
Kits de développement logiciel (SDK) AWS
AWS fournit des SDK (kits de développement logiciel) composés de bibliothèques et d'exemples
de code pour différents langages et plateformes de programmation (Java, Python, Ruby, .NET,
iOS, Android, etc.). Ils facilitent la création par programmation d'un accès à Amazon SNS et AWS.
Par exemple, ils automatisent les tâches telles que la signature cryptographique des demandes,
la gestion des erreurs et les nouvelles tentatives de demande. Pour plus d'informations sur les kits
SDK AWS, y compris les procédures pour les télécharger et les installer, consultez la page Outils
pour Amazon Web Services.
API de requête Amazon SNS
Vous pouvez accéder à Amazon SNS et AWS par programmation à l'aide de l'API de requête
Amazon SNS, qui vous permet d'envoyer des demandes directement au service. Pour plus
d'informations, consultez le manuel Amazon Simple Notification Service API Reference.
Scénarios Amazon SNS courants
Distribution ramifiée
Le scénario de « distribution ramifiée » se produit lorsqu'un message Amazon SNS est envoyé à
une rubrique, puis répliqué et renvoyé à plusieurs files d'attente Amazon SQS, points de terminaison
HTTP ou adresses e-mail. Cela permet un traitement asynchrone parallèle. Par exemple, vous
pouvez développer une application qui envoie un message Amazon SNS à une rubrique lorsqu’une
commande est passée pour un produit. Ensuite, les files d'attente Amazon SQS qui sont abonnées
à cette rubrique reçoivent des notifications identiques pour la nouvelle commande. L'instance de
serveur Amazon EC2 attachée à l'une des files d'attente peut gérer le traitement ou l'exécution de la
commande, tandis que l'autre instance de serveur peut être attachée à un entrepôt de données pour
l'analyse de toutes les commandes reçues.
API Version 2010-03-31
3
Amazon Simple Notification
Service Manuel du développeur
Alertes d'application et du système
Un autre moyen d'utiliser la « distribution ramifiée » consiste à répliquer les données envoyées à
votre environnement de production avec votre environnement de développement. En approfondissant
l'exemple précédent, vous pouvez abonner une autre file d'attente à la même rubrique pour
les nouvelles commandes entrantes. Ensuite, en attachant cette nouvelle file d'attente à votre
environnement de développement, vous pouvez continuer à améliorer et tester votre application à
l'aide des données reçues de votre environnement de production. Pour plus d'informations sur l'envoi
de messages Amazon SNS aux files d'attente Amazon SQS, consultez la page Envoi de messages
Amazon SNS à des files d'attente Amazon SQS (p. 118). Pour plus d'informations sur l'envoi de
messages Amazon SNS aux points de terminaison HTTP/S, consultez la page Envoi de messages
Amazon SNS à des points de terminaison HTTP/HTTPS (p. 161).
Alertes d'application et du système
Les alertes d'application et du système sont des notifications qui sont déclenchées par des seuils
prédéfinis et envoyées par SMS ou e-mail aux utilisateurs spécifiés. Par exemple, dans la mesure où
de nombreux services AWS utilisent Amazon SNS, vous pouvez recevoir une notification immédiate
lorsqu'un événement se produit, tel qu’un changement spécifique de votre groupe Auto Scaling AWS.
Messagerie texte et push mail
La messagerie texte et push mail représente deux façons de transmettre des messages à des
individus ou des groupes par e-mail et/ou SMS. Par exemple, vous pouvez utiliser Amazon SNS pour
renvoyer par e-mail ou SMS des titres ciblés de l'actualité aux abonnés. Lors de la réception de l'email ou du SMS, les lecteurs intéressés peuvent alors choisir d'en savoir plus en visitant un site web ou
en lançant une application. Pour plus d'informations sur l'utilisation d'Amazon SNS pour envoyer des
notifications par SMS, consultez la page Envoi de SMS avec Amazon SNS (p. 134).
Notifications push mobile
Les notifications push mobile vous permettent d'envoyer des messages directement aux applications
mobiles. Par exemple, vous pouvez utiliser Amazon SNS pour envoyer des notifications à une
application, indiquant qu’une mise à jour est disponible. Le message de notification peut inclure un lien
pour télécharger et installer la mise à jour. Pour plus d'informations sur l'utilisation d'Amazon SNS pour
envoyer directement des messages de notification à des points de terminaison mobiles, consultez la
page Notifications push mobile Amazon SNS (p. 41)
API Version 2010-03-31
4
Amazon Simple Notification
Service Manuel du développeur
Avant de commencer
Mise en route d'Amazon Simple
Notification Service
Cette section contient des informations qui vous permettent de comprendre les concepts d'Amazon
SNS, et de configurer et utiliser rapidement les interfaces et outils disponibles pour la création et
la publication dans des rubriques. Pour vous familiariser avec les messages de notification push,
consultez la page Notifications push mobile Amazon SNS (p. 41).
Rubriques
• Avant de commencer (p. 5)
• Création d'une rubrique (p. 6)
• Abonnement à une rubrique (p. 6)
• Publication dans une rubrique (p. 7)
• Nettoyage (p. 9)
• Utilisation du kit AWS SDK for Java avec Amazon SNS (p. 10)
Avant de commencer
Pour utiliser Amazon SNS, vous avez besoin d'un compte AWS. Si ce n'est pas le cas, utilisez la
procédure suivante.
Pour s'inscrire à un compte AWS
1.
Ouvrez https://aws.amazon.com/, puis choisissez Create an AWS Account.
2.
Suivez les instructions en ligne.
Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez
un code PIN en utilisant le clavier numérique du téléphone.
Pour commencer à utiliser Amazon SNS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Cliquez sur le bouton Get Started.
API Version 2010-03-31
5
Amazon Simple Notification
Service Manuel du développeur
Création d'une rubrique
Vous devriez maintenant être sur la page d'accueil SNS.
Création d'une rubrique
Maintenant que vous êtes inscrit à Amazon SNS, vous êtes prêt à créer une rubrique. Une rubrique est
un canal de communication pour envoyer des messages et s'abonner à des notifications. Elle fournit
un point d'accès aux éditeurs et abonnés, qui leur permet de communiquer entre eux. Dans cette
section, vous allez créer une rubrique nommée MyTopic.
Pour créer une rubrique
1.
Dans la console Amazon SNS, cliquez sur Create topic.
2.
La boîte de dialogue Create topic s'affiche.
Dans la zone Topic name, saisissez un nom de rubrique.
3.
Cliquez sur Create topic.
4.
La nouvelle rubrique s'affiche dans la page Topics.
Sélectionnez la nouvelle rubrique et cliquez sur son ARN.
La page Topic Details s'affiche.
5.
Copiez l'ARN de la rubrique pour la tâche suivante.
arn:aws:sns:us-west-2:111122223333:MyTopic
Abonnement à une rubrique
Pour recevoir les messages publiés dans une rubrique, vous devez abonner un point de terminaison à
cette rubrique. Un point de terminaison est une application mobile, un serveur web, une adresse e-mail
ou une file d'attente Amazon SQS qui peut recevoir des messages de notification d'Amazon SNS. Une
fois que vous avez abonné un point de terminaison à une rubrique et que l'abonnement est confirmé, le
point de terminaison reçoit tous les messages publiés dans cette rubrique.
API Version 2010-03-31
6
Amazon Simple Notification
Service Manuel du développeur
Publication dans une rubrique
Dans cette section, vous abonnez un point de terminaison à la rubrique que vous venez de créer dans
la section précédente. Vous configurez l'abonnement pour envoyer les messages de la rubrique vers
votre compte de messagerie.
Pour vous abonner à une rubrique
1.
Ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
2.
Cliquez sur Create Subscription.
La boîte de dialogue Create Subscription s'affiche.
3.
Dans le champ Topic ARN, collez l'ARN de la rubrique que vous avez créé dans la tâche
précédente, par exemple : arn:aws:sns:us-west-2:111122223333:MyTopic.
4.
Dans la zone de liste déroulante Protocol, sélectionnez Email.
5.
Dans la zone Endpoint, tapez une adresse e-mail que vous pouvez utiliser pour recevoir la
notification.
Important
Utilisateurs d'Entourage : Entourage supprime l'URL de confirmation. Saisissez une
adresse e-mail à laquelle vous pouvez accéder dans une autre application de messagerie.
6.
Cliquez sur Create Subscription.
7.
Accédez à votre application de messagerie et ouvrez le message à partir des notifications AWS,
puis cliquez sur le lien pour valider votre abonnement.
Votre navigateur Web affiche une réponse de confirmation provenant de Amazon SNS.
Publication dans une rubrique
Les éditeurs envoient des messages aux rubriques. Une fois qu’un nouveau message est publié,
Amazon SNS tente de livrer ce message à chaque point de terminaison qui est abonné à la rubrique.
Dans cette section, vous publiez un message sur l'adresse e-mail que vous avez définie dans la tâche
précédente.
Pour effectuer une publication dans une rubrique
1.
Ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
API Version 2010-03-31
7
Amazon Simple Notification
Service Manuel du développeur
Création de messages différents pour chaque protocole
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez la rubrique dans
laquelle vous voulez effectuer la publication.
2.
Cliquez sur le bouton Publish to topic.
La page Publish a Message s'affiche.
3.
Dans la zone Subject, tapez l'objet du message.
4.
Dans la zone Message, saisissez un court message.
5.
Cliquez sur Publish Message.
Une boîte de dialogue de confirmation s'affiche.
Vous pouvez maintenant utiliser votre application de messagerie pour ouvrir le message à partir des
notifications AWS et lire le message.
Création de messages différents pour chaque
protocole
Vous pouvez utiliser le support de mise en forme de message pour personnaliser les messages que
vous envoyez pour chaque protocole. Par exemple, une notification envoyée à la fois aux abonnés par
e-mail et SMS peut être adaptée à chaque type de client. Les utilisateurs de SMS peuvent recevoir une
version courte du message, tandis que les utilisateurs de messagerie bénéficient d'une version plus
longue et détaillée.
Pour effectuer une publication dans une rubrique avec la mise en forme de message
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez une rubrique.
3.
Cliquez sur le bouton Publish to topic.
La page Publish a message s'affiche.
4.
Cliquez sur le bouton JSON Message Generator.
API Version 2010-03-31
8
Amazon Simple Notification
Service Manuel du développeur
Nettoyage
5.
Dans la zone Message, saisissez un court message.
6.
Dans cet exemple, pour la zone Target Platforms, sélectionnez email et sms.
7.
Cliquez sur le bouton Generate JSON.
Vous pouvez désormais modifier le texte du message afin qu’il soit adapté à chaque type de
client.
Le message SMS peut contenir jusqu'à 160 caractères ASCII (ou 70 caractères Unicode). Si le
message dépasse cette longueur, Amazon SNS le fractionne en plusieurs messages, chacun
n'excédant pas la limite de caractères. Les messages ne sont pas coupés au milieu d'un mot, mais
sur la base d'un mot entier.
La taille des messages électroniques peut aller jusqu'à 256 Ko.
Dans l'exemple suivant, les messages sont spécifiés pour les protocoles par défaut, e-mail et
SMS.
{
"default": "Message body text here.",
"email": "Message body text here.",
"sms": "Message body text here."
}
8.
Cliquez sur Publish message.
Une boîte de dialogue de confirmation s'affiche.
Nettoyage
Vous avez créé une rubrique, vous vous y êtes abonné et vous avez publié un message dedans.
Maintenant, vous nettoyez votre environnement en vous désabonnant de la rubrique, puis en la
supprimant.
Pour se désabonner d'une rubrique
1.
Ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
Dans le volet de navigation de gauche, cliquez sur Subscriptions.
La page Subscriptions s'ouvre.
2.
Sélectionnez votre abonnement dans la liste des abonnements. Il s'agit de la seule entrée de liste
sur la page, sauf si vous avez créé plusieurs abonnements.
3.
Cliquez sur la liste déroulante Other actions, puis cliquez sur Delete subscription(s).
La boîte de dialogue de confirmation Delete s'affiche.
4.
Cliquez sur Delete.
L'abonnement est supprimé, à moins qu’il s'agisse d'un abonnement en attente, ce qui signifie qu'il n'a
pas encore été confirmé. Vous ne pouvez pas supprimer un abonnement en attente, mais s'il reste en
attente pendant 3 jours, Amazon SNS le supprime automatiquement.
Pour supprimer une rubrique
Ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
API Version 2010-03-31
9
Amazon Simple Notification
Service Manuel du développeur
Utilisation du kit SDK pour Java
1.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez la rubrique à
supprimer.
2.
Cliquez sur la liste déroulante Actions, puis sélectionnez Delete topics.
La boîte de dialogue de confirmation Delete s'affiche.
3.
Cliquez sur Delete.
Lorsque vous supprimez une rubrique, vous supprimez également tous les abonnements à cette
rubrique.
Utilisation du kit AWS SDK for Java avec Amazon
SNS
Le SDK pour Java fournit une classe nommée AmazonSNSClient, que vous pouvez utiliser pour
interagir avec Amazon SNS. Pour plus d'informations sur le téléchargement du kit AWS SDK for Java,
consultez la page AWS SDK for Java.
La classe AmazonSNSClient définit des méthodes qui sont mappés à des actions d'API de requête
Amazon SNS sous-jacentes. (Ces actions sont décrites dans le Guide de référence de l'API Amazon
SNS). Lorsque vous appelez une méthode, vous devez créer un objet de demande et un objet de
réponse correspondants. L’objet de demande inclut des informations que vous devez transmettre avec
la demande réelle. L'objet de réponse inclut les informations renvoyées par Amazon SNS en réponse à
la demande.
Par exemple, la classe AmazonSNSClient fournit la méthode createTopic pour créer une rubrique
dans laquelle des notifications peuvent être publiées. Cette méthode est mappée à l'action d'API
CreateTopic sous-jacente. Créez un objet CreateTopicRequest pour transmettre des informations avec
la méthode createTopic.
Les instructions d'importation suivantes sont utilisées avec les exemples Java fournis.
import
import
import
import
import
import
import
import
import
import
com.amazonaws.services.sns.AmazonSNSClient;
com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider;
com.amazonaws.regions.Region;
com.amazonaws.regions.Regions;
com.amazonaws.services.sns.model.CreateTopicRequest;
com.amazonaws.services.sns.model.CreateTopicResult;
com.amazonaws.services.sns.model.SubscribeRequest;
com.amazonaws.services.sns.model.PublishRequest;
com.amazonaws.services.sns.model.PublishResult;
com.amazonaws.services.sns.model.DeleteTopicRequest;
L'exemple suivant montre comment créer un client Amazon SNS, définir le point de terminaison
Amazon SNS à utiliser, puis créer une rubrique.
Note
Dans certains des exemples suivants, la méthode getCachedResponseMetadata est utilisée
pour montrer comment récupérer par programmation l'ID de demande pour une demande
Amazon SNS exécutée précédemment avec succès. Il s'agit généralement du débogage des
problèmes et cela s'avère utile lorsque vous demandez de l'aide à Amazon Web Services.
Création d'une rubrique
API Version 2010-03-31
10
Amazon Simple Notification
Service Manuel du développeur
Utilisation du kit SDK pour Java
//create a new SNS client and set endpoint
AmazonSNSClient snsClient = new AmazonSNSClient(new
ClasspathPropertiesFileCredentialsProvider());
snsClient.setRegion(Region.getRegion(Regions.US_EAST_1));
//create a new SNS topic
CreateTopicRequest createTopicRequest = new CreateTopicRequest("MyNewTopic");
CreateTopicResult createTopicResult =
snsClient.createTopic(createTopicRequest);
//print TopicArn
System.out.println(createTopicResult);
//get request id for CreateTopicRequest from SNS metadata
System.out.println("CreateTopicRequest - " +
snsClient.getCachedResponseMetadata(createTopicRequest));
Lorsque vous exécutez cet exemple, les éléments suivants s'affichent dans la fenêtre de sortie de la
console de votre IDE, comme Eclipse :
{TopicArn: arn:aws:sns:us-east-1:123456789012:MyNewTopic}
CreateTopicRequest - {AWS_REQUEST_ID=93f7fc90-f131-5ca3-ab18-b741fef918b5}
Le TopicArn est affecté à une variable de chaîne à utiliser dans des opérations supplémentaires.
String topicArn = "arn:aws:sns:us-east-1:123456789012:MyNewTopic";
Les exemples suivants montrent comment vous abonner à une rubrique, effectuer une publication
dedans et la supprimer.
Abonnement à une rubrique
//subscribe to an SNS topic
SubscribeRequest subRequest = new SubscribeRequest(topicArn, "email",
"[email protected]");
snsClient.subscribe(subRequest);
//get request id for SubscribeRequest from SNS metadata
System.out.println("SubscribeRequest - " +
snsClient.getCachedResponseMetadata(subRequest));
System.out.println("Check your email and confirm subscription.");
Lorsque vous exécutez cet exemple, les éléments suivants s'affichent dans la fenêtre de sortie de la
console de votre IDE :
SubscribeRequest - {AWS_REQUEST_ID=9b7ff59a-f917-533a-a6bd-be4bf6df0acf}
Check your email and confirm subscription.
Publication dans une rubrique
//publish to an SNS topic
String 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 topic
System.out.println("MessageId - " + publishResult.getMessageId());
API Version 2010-03-31
11
Amazon Simple Notification
Service Manuel du développeur
Utilisation du kit SDK pour Java
Lorsque vous exécutez cet exemple, les éléments suivants s'affichent dans la fenêtre de sortie de la
console de votre IDE :
MessageId - 9b888f80-15f7-5c30-81a2-c4511a3f5229
Suppression d'une rubrique
//delete an SNS topic
DeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(topicArn);
snsClient.deleteTopic(deleteTopicRequest);
//get request id for DeleteTopicRequest from SNS metadata
System.out.println("DeleteTopicRequest - " +
snsClient.getCachedResponseMetadata(deleteTopicRequest));
Lorsque vous exécutez cet exemple, les éléments suivants s'affichent dans la fenêtre de sortie de la
console de votre IDE :
DeleteTopicRequest - {AWS_REQUEST_ID=067a4980-4e93-5bfc-b88c-0251415bc852}
API Version 2010-03-31
12
Amazon Simple Notification
Service Manuel du développeur
Présentation
Gestion de l'accès à vos rubriques
Amazon SNS
Rubriques
• Présentation (p. 13)
• Informations spécifiques aux stratégies Amazon SNS (p. 31)
• Contrôle de l'accès des utilisateurs à votre compte AWS (p. 32)
Outre l'e-mail, Amazon SNS prend en charge d'autres protocoles. Vous pouvez utiliser HTTP, HTTPS
et les files d'attente Amazon SQS. Vous pouvez contrôler de façon précise quels points de terminaison
sont autorisés à s'abonner à une rubrique, qui peut effectuer des publications dedans et dans quelles
conditions. Cette annexe vous montre comment utiliser les stratégies de contrôle d'accès.
La partie principale de cette section inclut les concepts de base que vous avez besoin de comprendre,
explique comment écrire une stratégie et décrit la logique utilisée par Amazon Web Services (AWS)
pour évaluer des stratégies et décider d'autoriser ou non le demandeur à accéder à la ressource.
Bien que la plupart des informations de cette section soient indépendantes du service, vous devez
connaître certains détails spécifiques à Amazon SNS. Pour plus d'informations, consultez Informations
spécifiques aux stratégies Amazon SNS (p. 31).
Présentation
Rubriques
• Quand utiliser un contrôle d'accès (p. 14)
• Concepts clés (p. 14)
• Présentation de l'architecture (p. 17)
• Utilisation du Access Policy Language (p. 20)
• Logique d'évaluation (p. 22)
• Exemples de cas pour le contrôle d'accès Amazon SNS (p. 27)
Cette section décrit les concepts de base que vous devez comprendre pour utiliser le access policy
language pour écrire des stratégies. Elle décrit également le processus général de fonctionnement du
contrôle d'accès avec le access policy language, ainsi que le mode d'évaluation des stratégies.
API Version 2010-03-31
13
Amazon Simple Notification
Service Manuel du développeur
Quand utiliser un contrôle d'accès
Quand utiliser un contrôle d'accès
Vous disposez d'une grande latitude dans la façon dont vous pouvez autoriser ou refuser l'accès à une
ressource. Cependant, les cas d'utilisation classiques sont assez simples :
• Vous souhaitez accorder à un autre compte AWS l'autorisation d'effectuer un type particulier d'action
sur une rubrique (par exemple, Publish). Pour plus d'informations, consultez Autorisation d'accès à
une rubrique pour le compte AWS (p. 27).
• Vous souhaitez limiter les abonnements à votre rubrique au seul protocole HTTPS. Pour plus
d'informations, consultez Limitation des abonnements à HTTPS (p. 28).
• Vous souhaitez autoriser Amazon SNS à publier des messages dans votre file d'attente Amazon
SQS. Pour plus d'informations, consultez Publication dans une file d'attente Amazon SQS (p. 28).
Concepts clés
Les sections suivantes décrivent les concepts que vous devez connaître pour utiliser le access policy
language. Ils vous sont présentés dans un ordre logique, avec les premiers termes que vous devez
savoir en haut de la liste.
Autorisation
Une autorisation est le concept consistant à autoriser ou à refuser un type d'accès à une ressource
spécifique. Les autorisations suivent fondamentalement cette forme : « A est/n'est pas autorisé à faire
B pour C lorsque D s'applique ». Par exemple, Jane (A) est autorisée à publier (B) dans TopicA (C)
du moment qu'elle utilise le protocole HTTP (D). Chaque fois que Jane effectue une publication dans
TopicA, le service vérifie si elle possède l'autorisation appropriée et si la demande est conforme aux
conditions définies dans l'autorisation.
Statement
Une instruction est la description formelle d'une autorisation unique, écrite dans le access policy
language. Vous écrivez toujours une instruction dans le cadre d'un document conteneur plus vaste
connu sous le nom de stratégie (voir le concept suivant).
Stratégie
Une stratégie est un document (écrit dans le access policy language) qui joue le rôle de conteneur
pour une ou plusieurs instructions. Par exemple, une stratégie peut comporter deux instructions : une
qui indique que Jane peut s'abonner à l'aide du protocole de messagerie et une autre qui indique que
Bob ne peut pas effectuer de publication dans TopicA. Comme illustré dans la figure suivante, un
scénario équivalent comporterait deux stratégies : l'une indiquant que Jane peut s'abonner à l'aide du
protocole de messagerie et une autre indiquant que Bob ne peut pas effectuer de publication dans
TopicA.
API Version 2010-03-31
14
Amazon Simple Notification
Service Manuel du développeur
Concepts clés
Emetteur
L'émetteur est la personne qui écrit une stratégie pour accorder des autorisations pour une ressource.
L'émetteur (par définition) est toujours le propriétaire de la ressource. AWS n'autorise pas les
utilisateurs des services AWS à créer des stratégies pour les ressources qui ne leur appartiennent pas.
Si John est le propriétaire de la ressource, AWS authentifie son identité lorsqu'il envoie la stratégie qu'il
a écrite pour accorder des autorisations d'accès à cette ressource.
Principal
Le mandataire est la ou les personnes qui reçoivent l'autorisation dans la stratégie. Le mandataire
correspond à A dans l'instruction « A est autorisé à faire B pour C lorsque D s'applique ». Vous pouvez
configurer une stratégie pour qu'elle s'applique à tout le monde (par exemple, vous pouvez spécifier un
caractère générique pour représenter tous les utilisateurs). Cette approche est notamment utile si vous
ne voulez pas limiter l'accès en fonction de l'identité réelle du demandeur, mais plutôt en fonction de
certaines autres caractéristiques d'identification telles que son adresse IP.
Action
L'action est l'activité que le mandataire est autorisé à effectuer. L'action correspond à B dans
l'instruction « A est autorisé à faire B pour C lorsque D s'applique ». En général, l'action est simplement
l'opération dans la demande envoyée à AWS. Par exemple, Jane envoie une demande à Amazon SNS
avec Action=Subscribe. Vous pouvez spécifier une ou plusieurs actions dans une stratégie.
Ressource
La ressource est l'objet pour lequel le mandataire demande l'accès. La ressource correspond à C dans
l'instruction « A est autorisé à faire B pour C lorsque D s'applique ».
Conditions et clés
Les conditions sont des restrictions ou des détails relatifs à l'autorisation. La condition correspond à
D dans l'instruction « A est autorisé à faire B pour C lorsque D s'applique ». La partie de la stratégie
API Version 2010-03-31
15
Amazon Simple Notification
Service Manuel du développeur
Concepts clés
qui spécifie les conditions est parfois la plus détaillée et la plus complexe. Les conditions typiques sont
liées aux éléments suivants :
• Date et heure (par exemple, la demande doit arriver avant une date spécifique)
• Adresse IP (par exemple, l'adresse IP du demandeur doit faire partie d'une plage d'adresses CIDR
particulière)
Une clé est la caractéristique spécifique qui est la base d'une restriction d'accès. Par exemple, la date
et l'heure de la demande.
Vous utilisez à la fois les conditions et les clés afin d'exprimer la restriction. La méthode la plus simple
pour comprendre comment mettre en œuvre une restriction est un exemple concret : si vous souhaitez
limiter l'accès à avant le 30 mai 2010, utilisez la condition appelée DateLessThan. Vous utilisez la
clé appelée aws:CurrentTime et la définissez sur la valeur 2010-05-30T00:00:00Z. AWS définit
les conditions et les clés que vous pouvez utiliser. Le service AWS lui-même (par exemple, Amazon
SQS ou Amazon SNS) peut aussi définir des clés qui lui sont spécifiques. Pour plus d'informations,
consultez Informations spécifiques aux stratégies Amazon SNS (p. 31).
Demandeur
Le demandeur est la personne qui envoie une demande à un service AWS afin d'accéder à une
ressource donnée. Le demandeur envoie une demande à AWS qui équivaut fondamentalement à dire :
« M'autorisez-vous à faire B pour C lorsque D s'applique ? »
Evaluation
L'évaluation est le processus que le service AWS utilise pour déterminer si une demande entrante doit
être refusée ou autorisée en fonction des stratégies applicables. Pour plus d'informations sur la logique
d'évaluation, consultez la section Logique d'évaluation (p. 22).
Effect
L'effet est le résultat que vous voulez qu'une instruction de stratégie renvoie au moment de
l'évaluation. Vous spécifiez cette valeur lorsque vous écrivez les instructions dans une stratégie. Les
valeurs possibles sont deny (refuser) et allow (autoriser).
Par exemple, vous pouvez écrire une stratégie dont l'instruction refuse toutes les demandes qui
viennent de l'Antarctique (effet = refus étant donné que la demande utilise une adresse IP attribuée
à l'Antarctique). Vous pouvez également écrire une stratégie dont l'instruction autorise toutes les
demandes qui ne proviennent pas de l'Antarctique (effet = autorisation, étant donné que la demande
ne vient pas de l'Antarctique). Bien que les deux instructions semblent avoir le même résultat, selon la
logique du access policy language, elles sont différentes. Pour plus d'informations, consultez Logique
d'évaluation (p. 22).
Bien que vous ne puissiez définir que deux valeurs distinctes pour l'effet (autorisation ou refus), trois
résultats différents sont possibles lors de l'évaluation de stratégie : refus par défaut, autorisation ou
refus explicite. Pour plus d'informations, reportez-vous aux concepts ci-dessous, ainsi qu'à la section
Logique d'évaluation (p. 22).
Refus par défaut
Un refus par défaut est le résultat par défaut d'une stratégie en l'absence d'autorisation ou de refus
explicite.
API Version 2010-03-31
16
Amazon Simple Notification
Service Manuel du développeur
Présentation de l'architecture
Autorisation
Une autorisation est le résultat d'une instruction avec l'effet=allow, sous réserve que toutes les
conditions soient remplies. Exemple : autoriser les demandes si elles sont reçues avant 13 h le 30
avril 2010. Une autorisation prévaut sur tous les refus par défaut, mais jamais sur un refus explicite.
Refus explicite
Un refus explicite est le résultat d'une instruction qui avec l'effet=refuser, sous réserve que toutes les
conditions soient remplies. Exemple : refuser toutes les demandes si elles viennent de l'Antarctique.
Toute demande qui vient de l'Antarctique sera toujours refusée, indépendamment des autorisations
octroyées par les autres stratégies.
Présentation de l'architecture
La figure et le tableau suivants décrivent les principaux composants qui interagissent pour assurer un
contrôle d'accès pour vos ressources.
API Version 2010-03-31
17
Amazon Simple Notification
Service Manuel du développeur
Présentation de l'architecture
1
Vous-même, le propriétaire de la ressource.
2
Vos ressources (contenues dans le service AWS, telles que les files d'attente Amazon SQS).
API Version 2010-03-31
18
Amazon Simple Notification
Service Manuel du développeur
Présentation de l'architecture
3
Vos stratégies.
Généralement, vous utilisez une stratégie par ressource, même s'il est possible d'en avoir
plusieurs. Le service AWS lui-même fournit une API que vous utilisez pour importer et gérer
vos stratégies.
4
Les demandeurs et leurs demandes entrantes au service AWS.
5
Le code d'évaluation du access policy language.
Il s'agit du code qui permet d'évaluer, au sein du service AWS, les demandes entrantes par
rapport aux stratégies applicables et de déterminer si le demandeur est autorisé à accéder à la
ressource. Pour plus d'informations sur la façon dont le service prend la décision, consultez la
section Logique d'évaluation (p. 22).
API Version 2010-03-31
19
Amazon Simple Notification
Service Manuel du développeur
Utilisation du Access Policy Language
Utilisation du Access Policy Language
La figure et le tableau suivants décrivent le fonctionnement général du contrôle d'accès avec le access
policy language.
Procédure d'utilisation du contrôle d'accès avec le Access Policy Language
1
Vous écrivez une stratégie pour la ressource.
Par exemple, vous en écrivez une pour spécifier les autorisations des rubriques Amazon SNS.
2
Vous importez la stratégie dans AWS.
Le service AWS lui-même fournit une API que vous utilisez pour importer vos stratégies. Par
exemple, vous utilisez l'action Amazon SNS SetTopicAttributes pour télécharger une
stratégie pour une stratégie Amazon SNS spécifique.
3
Quelqu'un envoie une demande d'utilisation de la ressource.
Par exemple, un utilisateur envoie à Amazon SNS une demande d'utilisation de l'une des
rubriques.
4
Le service AWS détermine quelles stratégies sont applicables à la demande.
Par exemple, Amazon SNS examine toutes les stratégies Amazon SNS disponibles et
détermine celles qui sont applicables (en fonction de la ressource, du demandeur, etc.).
5
Le service AWS évalue les stratégies.
Par exemple, Amazon SNS évalue les stratégies et détermine si le demandeur est autorisé à
utiliser votre rubrique ou non. Pour plus d'informations sur la logique de décision, consultez la
section Logique d'évaluation (p. 22).
6
Le service AWS refuse la demande ou continue à la traiter.
API Version 2010-03-31
20
Amazon Simple Notification
Service Manuel du développeur
Utilisation du Access Policy Language
Par exemple, selon le résultat de l'évaluation de la stratégie, le service renvoie une erreur
« Accès refusé » pour le demandeur ou continue à traiter la demande.
Rubriques connexes
• Présentation de l'architecture (p. 17)
API Version 2010-03-31
21
Amazon Simple Notification
Service Manuel du développeur
Logique d'évaluation
Logique d'évaluation
L'objectif au moment de l’évaluation consiste à déterminer si une demande donnée doit être autorisée
ou refusée. La logique d’évaluation suit plusieurs règles de base :
• Par défaut, toutes les demandes d'utilisation de votre ressource ne provenant pas de vous sont
refusées.
• Une autorisation prévaut sur les refus par défaut.
• Un refus explicite remplace toute autorisation
• L'ordre dans lequel les stratégies sont évaluées n'est pas important.
Le graphique et la discussion ci-dessous décrivent plus en détail comment la décision est prise.
API Version 2010-03-31
22
Amazon Simple Notification
Service Manuel du développeur
Logique d'évaluation
API Version 2010-03-31
23
Amazon Simple Notification
Service Manuel du développeur
Logique d'évaluation
1
La décision commence par un refus par défaut.
2
Le code d'application évalue ensuite toutes les stratégies qui s'appliquent à la demande (en se
basant sur la ressource, le mandataire, l'action et les conditions).
L'ordre dans lequel le code d'application évalue les stratégies n'a pas d'importance.
3
Dans toutes ces stratégies, le code d'application recherche une instruction de refus explicite
susceptible de s'appliquer à la demande.
S'il en détecte une, le code de l'application retourne une décision de « refus » et le processus
se termine. Il s'agit d'un refus explicite. Pour plus d'informations, consultez la section Refus
explicite (p. 17).
4
En l'absence de refus explicite, le code d'application recherche des instructions
d'« autorisation » pouvant s'appliquer à la demande.
S'il en trouve une, il retourne une décision d'« autorisation » et le service continue à traiter la
demande.
5
Si aucune autorisation n'est détectée, la décision finale est un « refus ». En l'absence
d'autorisation ou de refus explicite, nous parlons d'un refus par défaut (pour plus
d'informations, consultez la page Refus par défaut (p. 16)).
Interaction entre les refus explicites et les refus par défaut
Une stratégie génère un refus par défaut si celle-ci ne s'applique pas directement à la demande. Par
exemple, si un utilisateur demande d'utiliser Amazon SNS, mais que la stratégie sur la rubrique ne fait
pas référence au compte AWS de l'utilisateur, cette stratégie a pour résultat un refus par défaut.
Une stratégie génère également un refus par défaut si une condition de l'instruction n'est pas
respectée. Si toutes les conditions de l'instruction sont respectées, la stratégie génère une autorisation
ou un refus explicite, selon la valeur de l'élément Effect qu'elle indique. Les stratégies ne spécifient pas
comment procéder si une condition n'est pas respectée. Le résultat est donc un refus dans ce cas.
Par exemple, supposons que vous souhaitiez refuser les demandes provenant de l'Antarctique. Vous
créez une stratégie appelée Policy A1 qui autorise une demande uniquement si elle ne provient pas de
l'Antarctique. Le diagramme suivant illustre la stratégie.
Si une personne envoie une demande depuis les Etats-Unis, la condition est respectée (la demande
ne provient pas de l'Antarctique). Par conséquent, la demande est autorisée. En revanche, si un
API Version 2010-03-31
24
Amazon Simple Notification
Service Manuel du développeur
Logique d'évaluation
utilisateur effectue une demande depuis l'Antarctique, la condition n'est pas respectée et la stratégie
génère un refus par défaut.
Vous pouvez convertir ce résultat par un refus explicite. Pour ce faire, réécrivez la stratégie (nommée
Policy A2) comme dans le schéma suivant. Ici, la stratégie refuse explicitement une demande si elle
vient de l'Antarctique.
Si un utilisateur effectue une demande depuis l'Antarctique, la condition est respectée et la stratégie
génère alors un refus explicite.
La distinction entre un refus par défaut et un refus explicite est importante, car une autorisation
peut supplanter un refus par défaut, mais pas un refus explicite. Imaginons qu'une autre stratégie
autorise requêtes les demandes si elles arrivent le 1er juin 2010. Comment cette stratégie modifie-telle le résultat global lorsqu'elle est associée à la stratégie qui restreint l'accès depuis l'Antarctique ?
Nous allons comparer le résultat global en cas d'association de la stratégie basée sur la date (que
nous appellerons Policy B) avec les stratégies précédentes (A1 et A2). Le scénario 1 associe les
stratégies Policy A1 et Policy B, tandis que le scénario 2 combine les stratégies Policy A2 et Policy B.
L'illustration et la discussion suivantes montrent les résultats obtenus lorsqu'une demande provient de
l'Antarctique le 1er juin 2010.
API Version 2010-03-31
25
Amazon Simple Notification
Service Manuel du développeur
Logique d'évaluation
API Version 2010-03-31
26
Amazon Simple Notification
Service Manuel du développeur
Exemples de cas pour le contrôle d'accès Amazon SNS
Dans le scénario 1, la stratégie Policy A1 génère un refus par défaut, comme décrit plus haut dans
cette section. La stratégie Policy B renvoie une autorisation, car par définition, elle autorise les
demandes le 1er juin 2010. L'autorisation de Policy B remplace le refus par défaut de Policy A1 et, par
conséquent, la demande est autorisée.
Dans le scénario 2, la stratégie Policy B2 génère un refus explicite, comme décrit plus haut dans cette
section. Ainsi, Policy B génère également une autorisation. Le refus explicite de Policy A2 remplace
l'autorisation de Policy B et, par conséquent, la demande est refusée.
Exemples de cas pour le contrôle d'accès Amazon
SNS
Rubriques
• Autorisation d'accès à une rubrique pour le compte AWS (p. 27)
• Limitation des abonnements à HTTPS (p. 28)
• Publication dans une file d'attente Amazon SQS (p. 28)
• Autorisation de publication dans une rubrique pour une ressource AWS (p. 29)
• Autorisation de publication dans une rubrique pour un compartiment Amazon S3 (p. 30)
Cette section présente quelques exemples de cas d'utilisation standard du contrôle d'accès.
Autorisation d'accès à une rubrique pour le compte AWS
Supposons que vous disposiez d'une rubrique dans le système Amazon SNS. Dans le cas le plus
simple, vous voulez autoriser un ou plusieurs comptes AWS à accéder à une action de rubrique
spécifique (par exemple, Publish).
Pour ce faire, utilisez l'action d'API Amazon SNS AddPermission. Elle prend une rubrique, une liste
des ID de compte AWS, une liste des actions et une étiquette, et crée automatiquement une nouvelle
instruction dans la stratégie de contrôle d'accès de la rubrique. Dans ce cas, vous n’écrivez pas de
stratégie vous-même, car Amazon SNS génère automatiquement la nouvelle instruction de stratégie.
Vous pouvez supprimer l'instruction de stratégie ultérieurement en appelant RemovePermission avec
son étiquette.
Par exemple, si vous avez appelé AddPermission sur la rubrique arn:aws:sns:useast-1:444455556666:MyTopic, avec l'ID de compte AWS 1111-2222-3333, l'action Publish et
l’étiquette give-1234-publish, Amazon SNS génère et insère l'instruction de stratégie de contrôle
d'accès suivante :
{
"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"
}
]
}
API Version 2010-03-31
27
Amazon Simple Notification
Service Manuel du développeur
Exemples de cas pour le contrôle d'accès Amazon SNS
Une fois que cette instruction est ajoutée, l'utilisateur avec le compte AWS 1111-2222-3333 peut
publier des messages dans la rubrique.
Limitation des abonnements à HTTPS
Dans ce cas d'utilisation, vous souhaitez autoriser des demandes d'abonnement à votre rubrique
uniquement par HTTPS, pour des raisons de sécurité.
Vous devez savoir comment écrire votre propre stratégie pour la rubrique, car l'action Amazon SNS
AddPermission ne vous permet pas de spécifier une restriction de protocole lorsque vous autorisez
un utilisateur à accéder à votre rubrique. Dans ce cas, vous souhaitez écrire votre propre stratégie,
puis utiliser l'action SetTopicAttributes pour définir l'attribut Policy de la rubrique sur votre
nouvelle stratégie.
L'exemple suivant de stratégie complète donne à l'ID de compte AWS 1111-2222-3333 la possibilité de
s'abonner à des notifications à partir d'une rubrique.
{
"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"
}
}
}
]
}
Publication dans une file d'attente Amazon SQS
Dans ce cas d'utilisation, vous souhaitez publier des messages provenant de votre rubrique dans la
file d'attente Amazon SQS. A l'instar d'Amazon SNS, Amazon SQS utilise le langage de stratégie de
contrôle d'accès d'Amazon. Pour autoriser Amazon SNS à envoyer des messages, vous devez utiliser
l'action Amazon SQS SetQueueAttributes pour définir une stratégie sur la file d'attente.
Là encore, vous aurez besoin de savoir comment écrire votre propre stratégie, car l'action Amazon
SQS AddPermission ne crée pas d'instructions de stratégie avec des conditions.
Notez que l'exemple présenté ci-dessous est une stratégie Amazon SQS (contrôlant l'accès à votre
file d'attente), et non une stratégie Amazon SNS (contrôlant l'accès à votre rubrique). Les actions sont
des actions Amazon SQS et la ressource est l'Amazon Resource Name (ARN) de la file d'attente. Vous
pouvez déterminer l'ARN de la file d'attente en récupérant l'attribut QueueArn de la file d'attente avec
l'action GetQueueAttributes.
{
"Version":"2012-10-17",
"Id":"MyQueuePolicy",
API Version 2010-03-31
28
Amazon Simple Notification
Service Manuel du développeur
Exemples de cas pour le contrôle d'accès Amazon SNS
"Statement" :[
{
"Sid":"Allow-SNS-SendMessage",
"Effect":"Allow",
"Principal" :"*",
"Action":["sqs:SendMessage"],
"Resource": "arn:aws:sqs:us-east-1:444455556666:MyQueue",
"Condition" :{
"ArnEquals" :{
"aws:SourceArn":"arn:aws:sns:us-east-1:444455556666:MyTopic"
}
}
}
]
}
Cette stratégie utilise la condition aws:SourceArn pour limiter l'accès à la file d'attente en fonction
de la source du message envoyé à la file d'attente. Vous pouvez utiliser ce type de stratégie pour
permettre à Amazon SNS d'envoyer des messages à votre file d'attente uniquement si les messages
proviennent de l'une de vos propres rubriques. Dans ce cas, vous spécifiez l'une de vos rubriques,
dont l'ARN est arn:aws:sns:us-east-1:444455556666:MyTopic.
La stratégie précédente constitue un exemple de stratégie Amazon SQS que vous pouvez écrire et
ajouter à une file d'attente spécifique. Elle autorise l'accès à Amazon SNS et d'autres produits AWS.
Amazon SNS fournit une stratégie par défaut à toutes les rubriques récemment créées. La stratégie
par défaut accorde l'accès à votre rubrique à tous les autres produits AWS. Cette stratégie par défaut
utilise une condition aws:SourceArn pour s'assurer que les produits AWS accèdent à votre rubrique
uniquement pour le compte de ressources AWS que vous possédez.
Autorisation de publication dans une rubrique pour une
ressource AWS
Dans ce cas, vous souhaitez configurer une stratégie de rubrique afin que la ressource d'un autre
compte AWS (par exemple, compartiment Amazon S3, instance Amazon EC2 ou file d'attente Amazon
SQS) puisse effectuer une publication dans votre rubrique. Cet exemple suppose que vous écriviez
votre propre stratégie et utilisiez ensuite l'action SetTopicAttributes pour définir l'attribut Policy
de la rubrique sur votre nouvelle stratégie.
Dans l'exemple d'instruction suivant, le propriétaire de la rubrique dans ces stratégies est
1111-2222-3333 et le propriétaire de la ressource AWS est 4444-5555-6666. L'exemple donne à l'ID
de compte AWS 4444-5555-6666 la possibilité d'effectuer une publication dans My-Topic à partir de
n'importe quelle ressource AWS appartenant au compte.
{
"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"
}
API Version 2010-03-31
29
Amazon Simple Notification
Service Manuel du développeur
Exemples de cas pour le contrôle d'accès Amazon SNS
}
}
]
}
Autorisation de publication dans une rubrique pour un
compartiment Amazon S3
Dans ce cas, vous souhaitez configurer une stratégie de rubrique afin que le compartiment Amazon S3
d'un autre compte AWS puisse effectuer une publication dans votre rubrique. Pour plus d'informations
sur la publication de notifications à partir d'Amazon S3, accédez à la page Configuration de la
notification des événements de compartiment.
Cet exemple suppose que vous écriviez votre propre stratégie et utilisiez ensuite l'action
SetTopicAttributes pour définir l'attribut Policy de la rubrique sur votre nouvelle stratégie.
L'exemple d'instruction suivant utilise la condition ArnLike pour vérifier que l'ARN de la ressource qui
effectue la demande (AWS:SourceARN) est un ARN Amazon S3. Vous pouvez utiliser une condition
similaire pour limiter l'autorisation à un ensemble de compartiments Amazon S3, ou encore à un
compartiment spécifique. Dans cet exemple, le propriétaire de la rubrique est 1111-2222-3333 et le
propriétaire Amazon S3 est 4444-5555-6666. L'exemple indique que n'importe quel compartiment
Amazon S3 ayant 4444-5555-6666 pour propriétaire est autorisé à effectuer une publication dans MyTopic.
{
"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:*:*:*" }
}
}
]
}
API Version 2010-03-31
30
Amazon Simple Notification
Service Manuel du développeur
Informations spécifiques aux stratégies Amazon SNS
Informations spécifiques aux stratégies Amazon
SNS
La liste suivante fournit des informations spécifiques à l'implémentation Amazon SNS du contrôle
d'accès :
• Chaque stratégie ne doit couvrir qu'une seule rubrique (lors de l'écriture d'une stratégie, n'incluez
pas d'instructions qui couvrent différentes rubriques).
• Chaque stratégie doit avoir un ID de stratégie unique (Id).
• Chaque instruction dans une stratégie doit avoir un ID d'instruction unique (sid).
Limites de la stratégie Amazon SNS
Le tableau suivant répertorie les limites maximum pour les informations de stratégie.
Nom
Limite maximum
Octets
30 Ko
Instructions
100
Mandataires
1 à 200 (0 n'est pas valide.)
Ressource
1 (0 n'est pas valide. La valeur doit correspondre à l'ARN
de la rubrique de la stratégie).
Actions de stratégie Amazon SNS valides
Amazon SNS prend en charge les actions indiquées dans le tableau suivant.
Action
Description
sns:AddPermission
Accorde l'autorisation d'ajouter des autorisations à la stratégie de
la rubrique.
sns:DeleteTopic
Accorde l'autorisation de supprimer une rubrique.
sns:GetTopicAttributes
Accorde l'autorisation de recevoir tous les attributs de la rubrique.
sns:ListSubscriptionsByTopic
Accorde l'autorisation de récupérer tous les abonnements à une
rubrique spécifique.
sns:Publish
Accorde l'autorisation d'effectuer une publication dans une
rubrique ou un point de terminaison. Pour plus d'informations,
consultez la page Publish dans le manuel Amazon Simple
Notification Service API Reference.
sns:RemovePermission
Accorde l'autorisation de supprimer des autorisations dans la
stratégie de la rubrique.
sns:SetTopicAttributes
Accorde l'autorisation de définir les attributs d'une rubrique.
sns:Subscribe
Accorde l'autorisation de s'abonner à une rubrique.
API Version 2010-03-31
31
Amazon Simple Notification
Service Manuel du développeur
Clés Amazon SNS
Clés Amazon SNS
Amazon SNS utilise les clés spécifiques aux services suivantes. Vous pouvez les utiliser dans des
stratégies qui limitent l'accès aux demandes Subscribe.
• sns:Endpoint : URL, adresse e-email ou ARN provenant d'une demande Subscribe ou d'un
abonnement confirmé au préalable. Il convient de l'utiliser avec des conditions de chaîne (consultez
la section Exemples de stratégies pour Amazon SNS (p. 37)) pour limiter l'accès à des points de
terminaison spécifiques (par exemple, *@example.com).
• sns:Protocol : valeur protocol provenant d'une demande Subscribe ou d'un abonnement
confirmé au préalable. Il convient de l'utiliser avec des conditions de chaîne (consultez la section
Exemples de stratégies pour Amazon SNS (p. 37)) pour limiter la publication à des protocoles de
diffusion spécifiques (par exemple, https).
Important
Lorsque vous utilisez une stratégie pour contrôler l'accès par sns:Endpoint, sachez que les
problèmes DNS sont susceptibles d'affecter ultérieurement la résolution des noms du point de
terminaison.
Contrôle de l'accès des utilisateurs à votre
compte AWS
Rubriques
• Utilisation conjointe de stratégies IAM et Amazon SNS (p. 33)
• ARN Amazon SNS (p. 35)
• Actions Amazon SNS (p. 36)
• Clés Amazon SNS (p. 36)
• Exemples de stratégies pour Amazon SNS (p. 37)
• Using Temporary Security Credentials (p. 39)
Amazon Simple Notification Service s'intègre à AWS Identity and Access Management (IAM) afin que
vous puissiez spécifier les actions Amazon SNS qu’un utilisateur de votre compte AWS peut effectuer
avec des ressources Amazon SNS. Vous pouvez indiquer une rubrique particulière dans la stratégie.
Par exemple, vous pouvez utiliser des variables lorsque vous créez une stratégie IAM qui autorise
certains utilisateurs de votre organisation à utiliser l'action Publish avec des rubriques spécifiques
dans votre compte AWS. Pour de plus amples informations, veuillez consulter la section Variables de
stratégie dans le guide Utilisation d'IAM.
Important
L'utilisation d'Amazon SNS avec IAM ne modifie pas l'utilisation d'Amazon SNS. Aucun
changement n'est apporté aux actions Amazon SNS et aucune nouvelle action Amazon SNS
associée aux utilisateurs et au contrôle d'accès n'est ajoutée.
Pour obtenir des exemples de stratégies couvrant les actions et ressources Amazon SNS, consultez la
page Exemples de stratégies pour Amazon SNS (p. 37).
API Version 2010-03-31
32
Amazon Simple Notification
Service Manuel du développeur
Utilisation conjointe de stratégies IAM et Amazon SNS
Utilisation conjointe de stratégies IAM et Amazon
SNS
Vous utilisez une stratégie IAM pour limiter l'accès de vos utilisateurs aux actions et rubriques Amazon
SNS. Une stratégie IAM peut limiter l'accès uniquement aux utilisateurs de votre compte AWS, pas à
d'autres comptes AWS.
Vous utilisez une stratégie Amazon SNS avec une rubrique spécifique pour limiter l'accès aux
personnes autorisées à utiliser cette rubrique (par exemple, les utilisateurs qui peuvent publier des
messages dans cette rubrique, qui peuvent s'y abonner, etc.). Les stratégies Amazon SNS peuvent
donner accès à d'autres comptes AWS, ou à des utilisateurs au sein de votre propre compte AWS.
Pour accorder à vos utilisateurs des autorisations d'accès à vos rubriques Amazon SNS, vous pouvez
utiliser des stratégies IAM, Amazon SNS, ou les deux. Dans la plupart des cas, vous obtenez les
mêmes résultats avec l'une ou l'autre. Par exemple, le schéma suivant illustre une stratégie IAM et une
stratégie Amazon SNS équivalentes. La stratégie IAM autorise l'action Amazon SNS Subscribe pour
la rubrique nommée topic_xyz dans votre compte AWS. La stratégie IAM est attachée aux utilisateurs
Bob et Susan (ce qui signifie que Bob et Susan disposent des autorisations définies dans la stratégie).
La stratégie Amazon SNS donne également à Bob et Susan l'autorisation d'accéder à Subscribe
pour la rubrique topic_xyz.
Note
L'exemple précédent présente des stratégies simples sans conditions. Vous pouvez spécifier
une condition particulière dans l'une ou l'autre des stratégies et aboutir au même résultat.
Il existe cependant une différence entre les stratégies IAM et Amazon SNS d'AWS : le système
de stratégie Amazon SNS vous permet d'accorder une autorisation à d'autres comptes AWS,
contrairement à la stratégie IAM.
API Version 2010-03-31
33
Amazon Simple Notification
Service Manuel du développeur
Utilisation conjointe de stratégies IAM et Amazon SNS
Il vous incombe de décider si vous voulez utiliser les deux systèmes conjointement pour gérer vos
autorisations, en fonction de vos besoins. Les exemples suivants illustrent la façon dont les deux
systèmes de stratégie interagissent.
Example 1
Dans cet exemple, une stratégie IAM et une stratégie Amazon SNS s'appliquent toutes deux à Bob. La
stratégie IAM lui accorde une autorisation pour Subscribe sur n'importe quelle rubrique du compte
AWS, tandis que la stratégie Amazon SNS l'autorise à utiliser Publish sur une rubrique spécifique
(topic_xyz). Le diagramme suivant illustre le concept.
Si Bob était sur le point d'envoyer une demande d'abonnement à une rubrique du compte AWS, la
stratégie IAM autorise l'action. Si Bob était sur le point d'envoyer une demande de publication d'un
message dans la rubrique topic_xyz, la stratégie Amazon SNS autorise l'action.
API Version 2010-03-31
34
Amazon Simple Notification
Service Manuel du développeur
ARN Amazon SNS
Example 2
Dans cet exemple, nous nous appuyons sur l'exemple 1 (où deux stratégies s'appliquent à Bob).
Disons que Bob publie des messages dans la rubrique topic_xyz, ce qu'il ne devrait pas être autorisé
à faire. Vous voulez complètement supprimer cette possibilité de publication dans des rubriques. La
meilleure chose à faire consiste à ajouter une stratégie IAM qui lui refuse l'accès à l'action Publish
sur toutes les rubriques. Cette troisième stratégie remplace la stratégie Amazon SNS qui lui donnait
initialement l'autorisation d'effectuer une publication dans la rubrique topic_xyz, car un refus explicite
remplace toujours une autorisation (pour plus d'informations sur la logique d'évaluation de stratégie,
consultez la page Logique d'évaluation (p. 22)). Le diagramme suivant illustre le concept.
Pour obtenir des exemples de stratégies couvrant les actions et ressources Amazon SNS, consultez la
page Exemples de stratégies pour Amazon SNS (p. 37). Pour plus d'informations sur l’écriture de
stratégies Amazon SNS, consultez la documentation technique pour Amazon SNS.
ARN Amazon SNS
Pour Amazon SNS, les rubriques sont le seul type de ressource que vous pouvez spécifier dans une
stratégie. Vous trouverez ci-dessous le format Amazon Resource Name (ARN) pour les rubriques.
arn:aws:sns:region:account_ID:topic_name
Pour plus d'informations sur les ARN, consultez la page ARN dans le manuel IAM Guide de
l'utilisateur.
API Version 2010-03-31
35
Amazon Simple Notification
Service Manuel du développeur
Actions Amazon SNS
Example
Voici un ARN pour une rubrique nommée my_topic dans la région us-east-1, qui appartient au compte
AWS 123456789012.
arn:aws:sns:us-east-1:123456789012:my_topic
Example
Si vous disposiez d'une rubrique nommée my_topic dans chacune des différentes régions prises en
charge par Amazon SNS, vous pourriez spécifier les rubriques avec l'ARN suivant.
arn:aws:sns:*:123456789012:my_topic
Vous pouvez utiliser les caractères génériques * et ? dans le nom de la rubrique. Par exemple, la ligne
suivante peut faire référence à toutes les rubriques créées par Bob, auxquelles il a ajouté le préfixe
bob_.
arn:aws:sns:*:123456789012:bob_*
Pour vous faciliter les choses, lorsque vous créez une rubrique, Amazon SNS renvoie l'ARN de la
rubrique dans la réponse.
Actions Amazon SNS
Dans une stratégie IAM, vous pouvez spécifier les actions qu'Amazon SNS propose. Toutefois, les
actions ConfirmSubscription et Unsubscribe ne nécessitent pas d'authentification, ce qui signifie
que même si vous spécifiez ces actions dans une stratégie, IAM ne limitera pas l'accès des utilisateurs
à ces actions.
Chaque action que vous spécifiez dans une stratégie doit être précédée de la chaîne en minuscules
sns:. Pour spécifier toutes les actions Amazon SNS, par exemple, vous utiliseriez sns:*. Pour
obtenir la liste des actions, consultez le manuel Amazon Simple Notification Service API Reference.
Clés Amazon SNS
Amazon SNS implémente les clés de stratégie suivantes à l’échelle d'AWS, ainsi que des clés
spécifiques aux services.
Pour obtenir la liste des clés de contexte prises en charge par chaque service AWS et la liste des
clés de stratégie à l’échelle d'AWS, consultez les sections Actions et clés de contexte de condition de
service AWS et Clés de condition disponibles dans le manuel IAM Guide de l'utilisateur.
Clés Amazon SNS
Amazon SNS utilise les clés spécifiques aux services suivantes. Utilisez ces clés dans les stratégies
limitant l'accès aux demandes Subscribe.
• sns:Endpoint : URL, adresse e-email ou ARN provenant d'une demande Subscribe ou d'un
abonnement confirmé au préalable. Il convient de l'utiliser avec des conditions de chaîne (consultez
la section Exemples de stratégies pour Amazon SNS (p. 37)) pour limiter l'accès à des points de
terminaison spécifiques (par exemple, *@yourcompany.com).
• sns:Protocol : valeur protocol provenant d'une demande Subscribe ou d'un abonnement
confirmé au préalable. Il convient de l'utiliser avec des conditions de chaîne (consultez la section
API Version 2010-03-31
36
Amazon Simple Notification
Service Manuel du développeur
Exemples de stratégies pour Amazon SNS
Exemples de stratégies pour Amazon SNS (p. 37)) pour limiter la publication à des protocoles de
diffusion spécifiques (par exemple, https).
Exemples de stratégies pour Amazon SNS
Cette section illustre plusieurs exemples simples de stratégie pour contrôler l'accès utilisateur à
Amazon SNS.
Note
A l'avenir, il se peut qu'Amazon SNS ajoute de nouvelles actions qui devraient être
logiquement incluses dans l'une des stratégies suivantes, en fonction des objectifs établis de
la stratégie.
Example 1 : Autoriser un groupe à créer et gérer des rubriques
Dans cet exemple, nous créons une stratégie qui permet d'accéder à CreateTopic, ListTopics,
SetTopicAttributes et DeleteTopic.
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":
["sns:CreateTopic","sns:ListTopics","sns:SetTopicAttributes","sns:DeleteTopic"],
"Resource":"*"
}
]
}
Example 2 : Autoriser le groupe informatique à publier des messages dans une rubrique
particulière
Dans cet exemple, nous créons un groupe pour l'informatique et affectons une stratégie qui permet
d'accéder à Publish sur le sujet qui vous intéresse spécifiquement.
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":"sns:Publish",
"Resource":"arn:aws:sns:*:123456789012:topic_xyz"
}
]
}
API Version 2010-03-31
37
Amazon Simple Notification
Service Manuel du développeur
Exemples de stratégies pour Amazon SNS
Example 3 : Donner aux utilisateurs du compte AWS la possibilité de s'abonner à des
rubriques
Dans cet exemple, nous créons une stratégie qui permet d'accéder à l'action Subscribe, avec des
conditions de correspondance de chaîne pour les clés de stratégie sns:Protocol et sns:Endpoint.
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":["sns:Subscribe"],
"Resource":"*",
"Condition":{
"StringLike": {
"SNS:Endpoint":"*@yourcompany.com"
},
"StringEquals":{
"sns:Protocol":"email"
}
}
}
]
}
API Version 2010-03-31
38
Amazon Simple Notification
Service Manuel du développeur
Using Temporary Security Credentials
Example 4 : Autoriser un partenaire à publier des messages dans une rubrique particulière
Vous pouvez utiliser une stratégie Amazon SNS ou une stratégie IAM pour autoriser un partenaire
à effectuer une publication dans une rubrique spécifique. Si votre partenaire possède un compte
AWS, il sera peut-être plus facile d'utiliser une stratégie Amazon SNS. Cependant, toute personne
dans l'entreprise du partenaire qui dispose des informations d'identification de sécurité AWS peut
publier des messages dans la rubrique. Cet exemple part du principe que vous voulez limiter l'accès
à une personne (ou application) spécifique. Pour ce faire, vous devez traiter le partenaire comme
un utilisateur au sein de votre propre entreprise et utiliser une stratégie IAM au lieu d'une stratégie
Amazon SNS.
Pour cet exemple, nous créons un groupe appelé WidgetCo qui représente l'entreprise partenaire.
Nous créons un utilisateur pour la personne (ou l'application) spécifique dans l'entreprise partenaire qui
a besoin d'un accès, puis nous plaçons l'utilisateur dans le groupe.
Nous attachons ensuite une stratégie qui permet au groupe d'accéder à Publish sur la rubrique
spécifique nommée WidgetPartnerTopic.
Nous voulons également empêcher le groupe WidgetCo d'exécuter une autre opération sur les
rubriques et nous ajoutons donc une instruction qui refuse l'autorisation d'accéder à d'autres actions
Amazon SNS que Publish sur des rubriques qui ne sont pas WidgetPartnerTopic. Cette opération
est nécessaire uniquement s'il existe une vaste stratégie ailleurs dans le système, qui donne aux
utilisateurs un large accès à Amazon SNS.
{
"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"
}
]
}
Using Temporary Security Credentials
Outre la création d'utilisateurs IAM avec leurs propres informations d'identification de sécurité, IAM
vous permet également d'accorder des informations d'identification de sécurité temporaires à n'importe
quel utilisateur, en l'autorisant à accéder à vos services et ressources AWS. Vous pouvez gérer les
utilisateurs qui possèdent des comptes AWS : il s'agit des utilisateurs IAM. Vous pouvez également
gérer les utilisateurs de votre système qui ne disposent pas de comptes AWS. Ces utilisateurs sont
appelés utilisateurs fédérés. De plus, les « utilisateurs » peuvent également être des applications que
vous créez pour accéder à vos ressources AWS.
Vous pouvez utiliser ces informations d'identification de sécurité temporaires pour effectuer des
demandes à Amazon SNS. Les bibliothèques d'API calculent la valeur de signature nécessaire
en utilisant ces informations d'identification pour authentifier votre demande. Si vous envoyez des
demandes en utilisant des informations d'identification expirées, Amazon SNS refuse la demande.
Pour plus d'informations sur la prise en charge des informations d'identification de sécurité temporaires
par IAM, consultez la section Accès temporaire à vos ressources AWS dans le manuel Utilisation
d'IAM.
API Version 2010-03-31
39
Amazon Simple Notification
Service Manuel du développeur
Using Temporary Security Credentials
Example Utilisation des informations d'identification de sécurité temporaires pour
l'authentification d'une demande Amazon SNS
L'exemple suivant montre comment obtenir des informations d'identification de sécurité temporaires
pour authentifier une demande 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
API Version 2010-03-31
40
Amazon Simple Notification
Service Manuel du développeur
Présentation
Notifications push mobile Amazon
SNS
Amazon SNS vous donne la possibilité d'envoyer des messages de notification push directement à
des applications sur des appareils mobiles. Les messages de notification push envoyés à un point de
terminaison mobile peuvent apparaître dans l'application mobile en tant que messages d'alerte, mises
à jour de badge ou même alertes sonores.
Présentation
Vous envoyez des messages de notification push aux appareils mobiles et aux ordinateurs de bureau,
à l'aide de l'un des services de notification push pris en charge suivants :
• Amazon Device Messaging (ADM)
• Apple Push Notification Service (APNS) pour iOS et 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)
La figure suivante présente une vue d'ensemble de l'utilisation d'Amazon SNS pour envoyer un
message de notification push directement à un point de terminaison mobile.
API Version 2010-03-31
41
Amazon Simple Notification
Service Manuel du développeur
Prérequis
Les services de notification push, tels qu'APNS et GCM, maintiennent une connexion avec chaque
application et appareil mobile associé inscrits pour utiliser leur service. Lorsqu'une application et un
appareil mobile s'inscrivent, le service de notification push renvoie un jeton d'appareil. Amazon SNS
utilise le jeton d'appareil pour créer un point de terminaison mobile, auquel il peut envoyer directement
des messages de notification push. Afin qu'Amazon SNS communique avec les différents services de
notification push, soumettez vos informations d'identification de service de notification push à Amazon
SNS pour qu'il les utilise en votre nom. Pour de plus amples informations, veuillez consulter Etapes
détaillées push mobile Amazon SNS (p. 43)
Outre l'envoi direct de messages de notification push, vous pouvez également utiliser Amazon SNS
pour envoyer des messages aux points de terminaison mobiles abonnés à une rubrique. Le concept
est le même que l'abonnement d'autres types de point de terminaison (Amazon SQS, HTTP/S, email et SMS) à une rubrique, comme décrit dans la page Présentation d'Amazon Simple Notification
Service (p. 1). La différence réside dans le fait qu'Amazon SNS communique à l'aide des services
de notification push, afin que les points de terminaison mobiles abonnés reçoivent les messages
de notification push envoyés à la rubrique. La figure suivante illustre un point de terminaison mobile
abonné à une rubrique Amazon SNS. Le point de terminaison mobile communique à l'aide de services
de notification push, contrairement aux autres points de terminaison.
Prérequis
Pour commencer à utiliser des notifications push mobile Amazon SNS, vous devez disposer des
éléments suivants :
• Un ensemble d'informations d'identification pour la connexion à l'un des services de notification push
pris en charge : ADM, APNS, Baidu, GCM, MPNS ou WNS.
• Un jeton d'appareil ou un ID d'enregistrement pour l'application mobile et l'appareil.
• Amazon SNS configuré pour envoyer des messages de notification push aux points de terminaison
mobiles.
• Une application mobile inscrite et configurée pour utiliser l'un des services de notification push pris
en charge.
L'inscription de votre application auprès d'un service de notification push nécessite plusieurs étapes.
Amazon SNS a besoin de certaines informations que vous fournissez au service de notification push
pour envoyer directement des messages de notification push au point de terminaison mobile. En
général, vous avez besoin des informations d'identification requises pour la connexion au service de
API Version 2010-03-31
42
Amazon Simple Notification
Service Manuel du développeur
Etapes détaillées push mobile
notification push, d'un jeton d'appareil ou d'un ID d'enregistrement (représentant votre appareil mobile
et votre application mobile), que vous avez reçu du service de notification push, et de l'application
mobile inscrite auprès du service de notification push.
La forme exacte des informations d'identification diffère selon les plateformes mobiles, mais dans tous
les cas, ces informations d'identification doivent être soumises lors de l'établissement d'une connexion
à la plateforme. Un ensemble d'informations d'identification est émis pour chaque application mobile et
doit être utilisé pour envoyer un message à une instance de cette application.
Les noms spécifiques varient en fonction du service de notification push utilisé. Par exemple, lorsque
vous utilisez APNS en tant que service de notifications push, vous avez besoin d'un jeton d'appareil.
En revanche, pour GCM, l’équivalent du jeton d'appareil est l'ID d'enregistrement. Le jeton d'appareil
ou l'ID d'enregistrement est une chaîne qui est envoyée à l'application par le système d'exploitation
de l'appareil mobile. Ils identifient de façon unique une instance d'une application mobile en cours
d'exécution sur un appareil mobile spécifique et peuvent être considérés comme les identifiants
uniques de cette paire application-appareil.
Amazon SNS stocke les informations d'identification (plus quelques autres paramètres) sous forme
de ressource d'application de plateforme. Les jetons d'appareil (là encore avec certains paramètres
supplémentaires) sont représentés en tant qu’objets appelés points de terminaison de plateforme.
Chaque point de terminaison de plateforme appartient à une application de plateforme spécifique, et la
communication avec chaque point de terminaison de plateforme est possible à l'aide des informations
d'identification qui sont stockées dans son application de plateforme correspondante.
Les sections suivantes incluent les prérequis pour chacun des services de notification push pris
en charge. Une fois que vous avez obtenu les informations prérequises, vous pouvez envoyer un
message de notification push à l'aide d'AWS Management Console ou des API push mobile Amazon
SNS. Pour plus d'informations, consultez Etapes détaillées push mobile Amazon SNS (p. 43).
Etapes détaillées push mobile Amazon SNS
Cette section fournit les étapes détaillées que vous devez effectuer pour utiliser push mobile Amazon
SNS Tout d'abord, pour les plateformes mobiles que vous souhaitez prendre en charge, vous devez
remplir les conditions préalables requises, telles que l'obtention des informations d'identification et du
jeton d'appareil nécessaires. Pour plus d'informations, consultez la page Prérequis (p. 42). Utilisez
ensuite les informations obtenues avec Amazon SNS depuis les plateformes mobiles pour envoyer
un message à un appareil mobile. Ces informations vous aideront à mieux comprendre les étapes
nécessaires à l'utilisation de push mobile Amazon SNS, comme décrit sur la page Utilisation de push
mobile Amazon SNS (p. 87).
Etape 1 : Demande d'informations d'identification
aux plateformes mobiles
Pour utiliser push mobile Amazon SNS, vous devez d'abord demander aux plateformes mobiles les
informations d'identification nécessaires. Pour plus d'informations, consultez la section relative à la
mise en route pour votre plateforme plus loin dans ce guide.
API Version 2010-03-31
43
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Demande de jeton aux plateformes mobiles
Etape 2 : Demande de jeton aux plateformes
mobiles
Utilisez ensuite les informations d'identification renvoyées pour demander aux plateformes mobiles un
jeton pour votre application mobile et l'appareil. Le jeton que vous recevez représente votre application
mobile et l'appareil. Pour plus d'informations, consultez la section relative à la mise en route pour votre
plateforme plus loin dans ce guide.
Etape 3 : Création d'un objet d'application de
plateforme
Les informations d'identification et le jeton sont ensuite utilisés pour créer un objet d'application de
plateforme (PlatformApplicationArn) à partir d'Amazon SNS. Pour plus d'informations, consultez
Création d'un point de terminaison de plateforme et gestion des jetons d'appareil (p. 92).
Etape 4 : Création d'un objet de point de terminaison
de plateforme
La valeur PlatformApplicationArn est ensuite utilisée pour créer un objet de point de terminaison de
plateforme (EndpointArn) à partir d'Amazon SNS. Pour plus d'informations, consultez Création d'un
point de terminaison de plateforme et gestion des jetons d'appareil (p. 92).
API Version 2010-03-31
44
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Publication d'un message
sur un point de terminaison mobile
Etape 5 : Publication d'un message sur un point de
terminaison mobile
La valeur EndpointArn est ensuite utilisée pour publier un message dans une application sur un
appareil mobile. Pour plus d'informations, consultez la page Envoi d'un message directement à un
appareil mobile (p. 97) et l'API Publish dans le manuel Amazon Simple Notification Service API
Reference.
Mise en route avec Amazon Device Messaging
Amazon Device Messaging (ADM) est un service qui vous permet d'envoyer des messages de
notification push à des applications Kindle Fire. Cette section décrit comment obtenir les prérequis
ADM et envoyer un message de notification push à l'aide d'Amazon SNS et ADM.
Rubriques
• Prérequis pour ADM (p. 45)
• Etape 1 : Création d'une application Kindle Fire avec le service ADM activé (p. 46)
• Etape 2 : Obtention d'un ID client et du code secret du client (p. 46)
• Etape 3 : Obtention d'une clé API (p. 47)
• Etape 4 : Obtention d'un ID d'enregistrement (p. 47)
• Etape 5 : Envoi d'un message de notification push à une application Kindle Fire à l'aide d'Amazon
SNS et ADM (p. 48)
Prérequis pour ADM
Pour envoyer des notifications push à une application Kindle Fire à l'aide d'Amazon SNS et ADM, vous
avez besoin des éléments suivants :
• Application Kindle Fire avec le service ADM activé
• ID client et code secret du client
• Clé API
• ID d'enregistrement
Si ces conditions préalables requises sont déjà remplies, vous pouvez envoyer un message de
notification push à une application Kindle Fire à l'aide de la console Amazon SNS ou de l'API Amazon
SNS. Pour plus d'informations sur l'utilisation de la console Amazon SNS, consultez la page Utilisation
de push mobile Amazon SNS (p. 87). Pour plus d'informations sur l'utilisation de l'API Amazon SNS,
consultez la page Etape 5 : Envoi d'un message de notification push à une application Kindle Fire à
l'aide d'Amazon SNS et ADM (p. 48).
API Version 2010-03-31
45
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Création d'une application
Kindle Fire avec le service ADM activé
Etape 1 : Création d'une application Kindle Fire avec
le service ADM activé
Pour envoyer un message de notification push à une application Kindle Fire, vous devez disposer
d'un compte de développeur Amazon, configurer votre environnement de développement, avoir créé
une application Kindle Fire avec ADM activé et enregistré l'application auprès d'ADM. Pour plus
d'informations, consultez la page Intégration de votre application à ADM.
Pour créer une application Kindle Fire
1.
Créez un compte de développeur Amazon en suivant les instructions de la page Création d'un
compte.
2.
Configurez votre environnement de développement pour développer des applications mobiles
pour les tablettes Kindle Fire. Pour plus d'informations, consultez la page Configuration de votre
environnement de développement.
3.
Créez une application Kindle Fire. Pour plus d'informations, consultez la page Création de votre
première application Kindle Fire.
Note
Si vous ne disposez pas encore d'une application Kindle Fire enregistrée auprès d'ADM,
vous pouvez utiliser l'exemple d'application Kindle Fire fourni par AWS comme modèle
pour commencer. Pour plus d'informations, consultez Etape 4 : Obtention d'un ID
d'enregistrement (p. 47).
4.
Sur la page Amazon App Distribution Portal, cliquez sur Apps and Services, puis sur le nom de
votre application Kindle Fire, et enfin sur Device Messaging.
5.
Vérifiez qu'ADM, est activé pour l'application. Si votre application n'est pas répertoriée sur la page
Amazon App Distribution Portal, ajoutez-la et activez ADM.
Etape 2 : Obtention d'un ID client et du code secret
du client
ADM utilise un ID client et le code secret du client pour vérifier l'identité de votre serveur. Pour plus
d'informations, consultez la page Obtention d'informations d'identification ADM.
Pour obtenir un ID client et le code secret du client
1.
Sur la page Amazon App Distribution Portal, cliquez sur Apps and Services, puis sur le nom de
votre application Kindle Fire, et enfin sur Security Profile. Un profil de sécurité associé à votre
application doit s'afficher. Sinon, cliquez sur Security Profiles pour créer un profil de sécurité.
2.
Cliquez sur View Security Profile. Notez l'ID client et le code secret du client.
API Version 2010-03-31
46
Amazon Simple Notification
Service Manuel du développeur
Etape 3 : Obtention d'une clé API
Etape 3 : Obtention d'une clé API
ADM utilise une clé API pour vérifier l'identité de votre application.
Note
Une clé API est nécessaire pour utiliser ADM avec des applications en version préliminaire ou
de test. Cependant, elle n'est pas obligatoire avec une édition ou une version de production de
votre application lorsque vous autorisez Amazon à signer votre application en votre nom.
Pour obtenir une clé API
•
Obtenez une clé API en suivant les instructions de la page Obtention d'informations d'identification
OAuth et d'une clé API.
Etape 4 : Obtention d'un ID d'enregistrement
Les étapes suivantes montrent comment utiliser l'exemple d'application Kindle Fire fourni par AWS
afin d'obtenir un ID d'enregistrement d'ADM. Vous pouvez utiliser cet exemple d'application Kindle
Fire pour vous aider à démarrer avec les notifications push Amazon SNS. L'exemple d'application
nécessite que vous ayez inclus le fichier JAR ADM amazon-device-messaging-1.0.1.jar dans
votre environnement de développement. Pour plus d'informations, consultez la page Configuration
d'ADM.
Pour obtenir un ID d'enregistrement d'ADM pour votre application
1.
Téléchargez et décompressez le fichier snsmobilepush.zip.
2.
Importez le dossier KindleMobilePushApp dans votre IDE. Dans Eclipse, cliquez sur Fichier,
Importer, développez le dossier Android, cliquez sur Code Android existant dans l'espace de
travail, cliquez sur Suivant, naviguez jusqu'au dossier KindleMobilePushApp, cliquez sur OK,
puis sur Terminer.
API Version 2010-03-31
47
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Envoi d'un message à une application
Kindle Fire à l'aide d'Amazon SNS et ADM
Une fois que l'exemple d'application Kindle Fire a été importé dans votre IDE, vous devez ajouter
la clé API pour votre application Kindle Fire dans le fichier strings.xml, qui est inclus dans
l'exemple d'application Kindle Fire.
3.
Ajoutez la clé API au fichier strings.xml. Dans votre IDE, le fichier est inclus dans le dossier
values, qui est un sous-dossier de res. Vous ajoutez la chaîne à l'élément suivant :
<string name="api_key"></string>
4.
Exécutez l'application pour afficher l'ID d'enregistrement en tant que sortie sur le système de
journalisation Android. Si vous utilisez Eclipse avec le plug-in Android ADT, vous pouvez voir
l'ID d'enregistrement dans la fenêtre d'affichage LogCat. Par exemple, la sortie contenant l'ID
d'enregistrement se présentera comme suit :
amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3BqnwiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw
Vous devez maintenant disposer des informations nécessaires à partir d'ADM (ID client, code secret
du client, clé API et ID d'enregistrement) pour envoyer des messages de notification push à votre
point de terminaison mobile. Vous pouvez désormais envoyer un message de notification push à
l'application Kindle Fire sur votre appareil à l'aide de la console Amazon SNS ou de l'API Amazon
SNS. Pour utiliser la console Amazon SNS, consultez la page Utilisation de push mobile Amazon
SNS (p. 87). Pour utiliser l'API Amazon SNS, consultez la page Etape 5 : Envoi d'un message de
notification push à une application Kindle Fire à l'aide d'Amazon SNS et ADM (p. 48).
Etape 5 : Envoi d'un message de notification push à
une application Kindle Fire à l'aide d'Amazon SNS et
ADM
Cette section décrit comment utiliser les informations prérequises pour envoyer un message
de notification push à votre application Kindle Fire à l'aide d'Amazon SNS et ADM. Ajoutez les
informations collectées sur les prérequis à l'exemple de fichier AWS SNSMobilePush.java, qui est
inclus dans le fichier snsmobilepush.zip.
Note
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
Pour ajouter l'exemple à Eclipse
1.
Créez un projet Java dans Eclipse (Fichier | Nouveau | Projet Java).
2.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
API Version 2010-03-31
48
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Envoi d'un message à une application
Kindle Fire à l'aide d'Amazon SNS et ADM
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
3.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
AwsCredentials.properties et ajoutez vos informations d'identification de sécurité AWS.
Pour ajouter le kit AWS SDK for Java au chemin de génération
1.
Cliquez avec le bouton droit de la souris sur le dossier du projet Java, cliquez sur Chemin de
génération, puis sur Configurer le chemin de génération...
2.
Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque...
3.
Cliquez sur AWS SDK pour Java, puis sur Suivant, et enfin sur Terminer.
Pour ajouter les informations sur les prérequis au fichier SNSMobilePush.java
1.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
SNSMobilePush.java dans Eclipse.
2.
Supprimez la mise en commentaire de sample.demoKindleAppNotification();. Il doit
ressembler à l'exemple ci-dessous.
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.
Recherchez la méthode demoKindleAppNotification et entrez l'ID d'enregistrement que
vous avez reçu d'ADM comme valeur de la chaîne d'ID d'enregistrement. Par exemple, elle doit
ressembler à la ligne suivante :
String registrationId = = "amzn1.admregistration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3BqnwiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw";
4.
Saisissez l'ID client pour votre application. Par exemple, elle doit ressembler à la ligne suivante :
String clientId = "amzn1.application-oa2client.EXAMPLE7423654b79fc9f062fEXAMPLE";
5.
Saisissez le code secret du client pour votre application. Par exemple, elle doit ressembler à la
ligne suivante :
String clientSecret =
"EXAMPLE01658e75ceb7bf9f71939647b1aa105c1c8eaccabaf7d41f68EXAMPLE";
6.
Saisissez un nom pour votre application. Les noms d'application doivent être constitués
uniquement de lettres majuscules et minuscules ASCII, de chiffres, de traits de soulignement,
de traits d'union et de points, et doivent contenir de 1 à 256 caractères. Par exemple, elle doit
ressembler à la ligne suivante :
API Version 2010-03-31
49
Amazon Simple Notification
Service Manuel du développeur
Mise en route avec APNS
String applicationName = "admpushapp";
7.
Exécutez l'application Java. Une sortie similaire à la suivante doit s'afficher dans la fenêtre de
sortie de votre IDE :
===========================================
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
Sur votre appareil Kindle Fire, vous devez voir un message de notification push apparaître dans
l'application Kindle Fire.
Mise en route avec Apple Push Notification
Service
Apple Push Notification Service (APNS) est un service qui vous permet d'envoyer des messages de
notification push à des applications iOS et OS X. Cette section décrit comment obtenir les prérequis
APNS et envoyer un message de notification push à l'aide d'Amazon SNS et APNS.
Rubriques
• Prérequis pour APNS (p. 50)
• Etape 1 : Création d'une application iOS (p. 51)
• Etape 2 : Obtention d'un certificat SSL APNS (p. 51)
• Etape 3 : Obtention de la clé privée d'application (p. 52)
• Etape 4 : Vérification du certificat et de la clé privée d'application (p. 52)
• Etape 5 : Obtention d'un jeton d'appareil (p. 52)
• Etapes suivantes (p. 53)
• Envoi d'un message de notification push à une application iOS à l'aide d'Amazon SNS et
APNS (p. 53)
• Envoi d'un message de notification push à une application iOS VoIP à l'aide d'Amazon SNS et
APNS (p. 55)
• Envoi d'un message de notification push à une application Mac OS X à l'aide d'Amazon SNS et
APNS (p. 56)
Prérequis pour APNS
Pour envoyer des notifications push à des appareils mobiles à l'aide d'Amazon SNS et APNS, vous
devez obtenir les éléments suivants :
• Application iOS inscrite auprès d'APNS
API Version 2010-03-31
50
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Création d'une application iOS
• Certificat SSL APNS
• Clé privée d'application
• Jeton d'appareil
Si ces conditions préalables requises sont déjà remplies, vous pouvez envoyer un message de
notification push à une application iOS à l'aide de la console Amazon SNS ou de l'API Amazon SNS.
Pour plus d'informations sur l'utilisation de la console Amazon SNS, consultez la page Utilisation de
push mobile Amazon SNS (p. 87). Pour plus d'informations sur l'utilisation de l'API Amazon SNS,
consultez la page Envoi d'un message de notification push à une application iOS à l'aide d'Amazon
SNS et APNS (p. 53).
Etape 1 : Création d'une application iOS
Pour démarrer l'envoi d'un message de notification push à une application iOS, vous devez disposer
d'un compte de développeur Apple, créer un identificateur d'application (ID d'application), inscrire votre
appareil iOS et créer un profil iOS Provisioning. Pour plus d'informations, consultez le manuel Local
and Remote Notification Programming Guide dans l'iOS Developer Library.
Note
Si vous n'avez pas encore inscrit une application iOS auprès d'APNS, vous pouvez utiliser
l'exemple d'application iOS fourni par AWS comme modèle pour démarrer. Pour plus
d'informations, consultez Etape 5 : Obtention d'un jeton d'appareil (p. 52).
Etape 2 : Obtention d'un certificat SSL APNS
Amazon SNS nécessite le certificat SSL APNS de l'application au format .pem lors de l'utilisation
de l'API Amazon SNS. Lorsque vous utilisez la console Amazon SNS, vous pouvez télécharger le
certificat au format .p12. Amazon SNS le convertira au format .pem et l'affichera dans la console.
Utilisez l'application Keychain Access sur votre ordinateur Mac pour exporter le certificat SSL APNS.
Pour plus d'informations sur le certificat SSL, consultez la page Provisioning and Development dans le
manuel Apple Local and Push Notification Programming Guide.
Pour télécharger un certificat SSL APNS
1.
Sur le site web Apple Developer, cliquez sur Member Center, puis sur Certificates, Identifiers and
Profiles, et enfin sur Certificates.
2.
Sélectionnez le certificat que vous avez créé pour le développement iOS APNS, cliquez sur
Download, puis enregistrez le fichier, qui aura le type d'extension .cer.
Pour convertir le certificat SSL APNS du format .cer au format .pem
Les étapes suivantes se servent de l'utilitaire openssl.
•
A partir d'une invite de commande, entrez la commande suivante. Remplacez
myapnsappcert.cer par le nom du certificat que vous avez téléchargé depuis le site web Apple
Developer.
openssl x509 -in myapnsappcert.cer -inform DER -out myapnsappcert.pem
Le fichier .pem nouvellement créé sera utilisé pour configurer Amazon SNS pour l'envoi de
messages de notification push mobile.
API Version 2010-03-31
51
Amazon Simple Notification
Service Manuel du développeur
Etape 3 : Obtention de la clé privée d'application
Etape 3 : Obtention de la clé privée d'application
Amazon SNS nécessite une clé privée d'application au format .pem. Utilisez l'application Keychain
Access sur votre ordinateur Mac pour exporter la clé privée d'application.
Pour obtenir la clé privée d'application
La clé privée associée au certificat SSL peut être exportée à partir de l'application Keychain Access sur
votre ordinateur Mac. Cela se fonde sur l'hypothèse que vous avez déjà importé le fichier .cer que vous
avez téléchargé depuis le site web Apple Developer dans Keychain Access. Vous pouvez le faire en
copiant le fichier .cer dans Keychain Access ou en double-cliquant sur le fichier .cer.
1.
Ouvrez Keychain Access, sélectionnez Keys, puis mettez en surbrillance votre clé privée
d'application.
2.
3.
Cliquez sur File, puis sur Export Items... et saisissez un nom dans le champ Save As.
Acceptez le format de fichier .p12 par défaut, puis cliquez sur Save.
Le fichier .p12 sera ensuite converti au format de fichier .pem.
Pour convertir la clé privée d'application du format .p12 au format .pem
•
A partir d'une invite de commande, entrez la commande suivante. Remplacez
myapnsappprivatekey.p12 par le nom de la clé privée que vous avez exportée à partir de
Keychain Access.
openssl pkcs12 -in myapnsappprivatekey.p12 -out myapnsappprivatekey.pem nodes -clcerts
Le fichier .pem nouvellement créé sera utilisé pour configurer Amazon SNS pour l'envoi de
messages de notification push mobile.
Etape 4 : Vérification du certificat et de la clé privée
d'application
Vous pouvez vérifier les fichiers de certificat .pem et de clé privée en les utilisant pour la connexion à
APNS.
Pour vérifier le certificat et la clé privée en se connectant à APNS
•
A partir d'une invite de commande, entrez la commande suivante. Remplacez
myapnsappcert.pem et myapnsappprivatekey.pem par le nom de votre certificat et de votre
clé privée.
openssl s_client -connect gateway.sandbox.push.apple.com:2195 cert myapnsappcert.pem -key myapnsappprivatekey.pem
Etape 5 : Obtention d'un jeton d'appareil
Lorsque vous inscrivez votre application auprès d'APNS pour recevoir des messages de notification
push, un jeton d'appareil (valeur hexadécimale de 64 octets) est généré. Les étapes suivantes
expliquent comment utiliser l'exemple d'application iOS fourni par AWS pour obtenir un jeton
d'appareil auprès d'APNS. Vous pouvez utiliser cet exemple d'application iOS pour démarrer avec les
API Version 2010-03-31
52
Amazon Simple Notification
Service Manuel du développeur
Etapes suivantes
notifications push Amazon SNS. Pour plus d'informations, consultez la page Registering for Remote
Notifications dans le manuel Apple Local and Push Notification Programming Guide.
Pour obtenir un jeton d'appareil auprès d'APNS pour votre application
1.
Téléchargez et décompressez le fichier snsmobilepush.zip.
2.
Accédez au dossier AppleMobilePushApp, puis ouvrez le dossier iOS 7 and earlier ou iOS
8.
Dans Xcode, ouvrez le projet AmazonMobilePush.xcodeproj.
3.
4.
Exécutez l'application dans Xcode. Dans la fenêtre de sortie, vous devez voir s'afficher le jeton
d'appareil, qui se présente comme suit :
Device Token = <examp1e 29z6j5c4 df46f809 505189c4 c83fjcgf 7f6257e9
8542d2jt 3395kj73>
Note
N'incluez pas d'espaces dans le jeton d'appareil lors de son envoi à Amazon SNS.
Etapes suivantes
Vous devez maintenant disposer des informations nécessaires à partir d'APNS (certificat SSL, clé
privée d'application et jeton d'appareil) pour envoyer des messages de notification push à votre point
de terminaison mobile. Vous pouvez désormais envoyer une notification à l'application iOS sur votre
appareil en utilisant la console Amazon SNS ou l'API Amazon SNS.
• Pour envoyer une notification à l'application iOS sur votre appareil à l'aide de la console Amazon
SNS consultez la page Utilisation de push mobile Amazon SNS (p. 87).
• Pour utiliser l'API Amazon SNS, consultez la page Envoi d'un message de notification push à une
application iOS à l'aide d'Amazon SNS et APNS (p. 53).
• Pour envoyer un message de notification push à une application VoIP à l'aide d'Amazon SNS et
APNS, consultez la page Envoi d'un message de notification push à une application iOS VoIP à
l'aide d'Amazon SNS et APNS (p. 55).
• Pour envoyer un message de notification push à une application Mac OS X à l'aide d'Amazon SNS
et APNS, consultez la page Envoi d'un message de notification push à une application Mac OS X à
l'aide d'Amazon SNS et APNS (p. 56).
Envoi d'un message de notification push à une
application iOS à l'aide d'Amazon SNS et APNS
Cette section décrit comment utiliser les informations prérequises avec l'API Amazon SNS pour
envoyer un message de notification push à votre application iOS à l'aide d'Amazon SNS et APNS.
Ajoutez les informations sur les prérequis à l'exemple de fichier AWS SNSMobilePush.java, qui est
inclus dans le fichier snsmobilepush.zip.
Vous pouvez également utiliser la console Amazon SNS. Pour plus d'informations sur l'utilisation de la
console Amazon SNS, consultez la page Utilisation de push mobile Amazon SNS (p. 87).
Note
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
API Version 2010-03-31
53
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à une application iOS
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
Pour ajouter l'exemple à Eclipse
1.
Créez un projet Java dans Eclipse (Fichier | Nouveau | Projet Java).
2.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
3.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
AwsCredentials.properties et ajoutez vos informations d'identification de sécurité AWS.
Pour ajouter le kit AWS SDK for Java au chemin de génération
1.
Cliquez avec le bouton droit de la souris sur le dossier du projet Java, cliquez sur Chemin de
génération, puis sur Configurer le chemin de génération...
2.
Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque...
3.
Cliquez sur AWS SDK pour Java, puis sur Suivant, et enfin sur Terminer.
Pour ajouter les informations sur les prérequis au fichier SNSMobilePush.java
1.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
SNSMobilePush.java dans Eclipse.
2.
En fonction de l'APNS que vous utilisez, supprimez la mise en
commentaire de sample.demoAppleAppNotification(); ou
sample.demoAppleSandboxAppNotification();. Par exemple, si vous utilisez
demoAppleSandboxAppNotification, le fichier doit se présenter comme suit :
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.
Recherchez la méthode demoAppleSandboxAppNotification et saisissez le jeton d'appareil
que vous avez reçu d'APNS comme valeur de la chaîne de jeton d'appareil. Par exemple, elle doit
ressembler à la ligne suivante :
String deviceToken =
"examp1e29z6j5c4df46f809505189c4c83fjcgf7f6257e98542d2jt3395kj73";
4.
Entrez le certificat SSL APNS pour votre application. Vous devez ajouter \n au début de chaque
nouvelle ligne dans votre certificat. Par exemple, elle doit ressembler à la ligne suivante :
String certificate = "-----BEGIN CERTIFICATE----\nMIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
API Version 2010-03-31
54
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à une application VoIP
\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lB
\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN
\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD
\nVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z
\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt
\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ
\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
\nIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9
+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb
\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END CERTIFICATE-----";
5.
Entrez la clé privée pour votre application. Vous devez ajouter \n au début de chaque nouvelle
ligne dans votre certificat. Par exemple, elle doit ressembler à la ligne suivante :
String privateKey = "-----BEGIN RSA PR1VATE KEY----\nMJICiTCHAfICCQD9m7oRw0uXOjANBgkqhkiG7w0BAQUFADCBiDELMAkGA1UEBhMC
\nWVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGx2MQ8wDQYDVQQKEwZBbWF6\nVVMxCzAJBgNVBAgTAldB
FYai3z96EXAMPLE=\n-----END RSA PR1VATE KEY-----";
6.
Saisissez un nom pour votre application. Les noms d'application doivent être constitués
uniquement de lettres majuscules et minuscules ASCII, de chiffres, de traits de soulignement,
de traits d'union et de points, et doivent contenir de 1 à 256 caractères. Par exemple, elle doit
ressembler à la ligne suivante :
String applicationName = "mypushappname";
7.
Exécutez l'application Java. Une sortie similaire à la suivante doit s'afficher dans la fenêtre de
sortie de votre IDE :
===========================================
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
Vous devez voir une notification de message sur votre appareil iOS.
Envoi d'un message de notification push à une
application iOS VoIP à l'aide d'Amazon SNS et
APNS
Pour envoyer un message de notification push à une application VoIP à l'aide d'Amazon SNS et APNS,
vous devez d'abord effectuer les étapes requises détaillées dans Prérequis pour APNS (p. 50).
API Version 2010-03-31
55
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à une application Mac OS X
Note
Si vous ne disposez pas encore d'une application iOS enregistrée auprès d'APNS, vous
pouvez télécharger et utiliser l'exemple de fichier snsmobilepush.zip fourni par AWS comme
modèle pour démarrer. Pour plus d'informations, consultez Etape 5 : Obtention d'un jeton
d'appareil (p. 52).
Pour inscrire votre application mobile auprès d'AWS
1.
Accédez à la page https://console.aws.amazon.com/sns/ et cliquez sur Create platform
application.
2.
Dans la zone Application name, saisissez un nom représentant votre application.
Les noms d'application doivent être constitués uniquement de lettres majuscules et minuscules
ASCII, de chiffres, de traits de soulignement, de traits d'union et de points, et doivent contenir de 1
à 256 caractères.
3.
Dans le champ Push Notification Platform, sélectionnez Apple Development ou Apple Production.
4.
Dans le champ Push Certification Type, sélectionnez VoIP Push Certificate.
5.
Sélectionnez le certificat chiffré avec un mot de passe et la clé privée, tels qu'ils ont été exportés à
partir de Keychain Access sur votre ordinateur Mac au format de fichier .p12.
6.
Entrez votre mot de passe, puis cliquez sur Create Platform Application.
Envoi d'un message de notification push à une
application Mac OS X à l'aide d'Amazon SNS et
APNS
Pour envoyer un message de notification push à une application Mac OS X à l'aide d'Amazon
SNS et APNS, vous devez d'abord effectuer les étapes requises détaillées dans Prérequis pour
APNS (p. 50).
Note
Si vous ne disposez pas encore d'une application Mac OS X enregistrée auprès d'APNS, vous
pouvez télécharger et utiliser un exemple d'application comme PushyMac, qui est disponible
sur le site web Apple Developer.
Pour inscrire votre application mobile auprès d'AWS
1.
Accédez à la page https://console.aws.amazon.com/sns/ et cliquez sur Create platform
application.
2.
Dans la zone Application name, saisissez un nom représentant votre application.
Les noms d'application doivent être constitués uniquement de lettres majuscules et minuscules
ASCII, de chiffres, de traits de soulignement, de traits d'union et de points, et doivent contenir de 1
à 256 caractères.
3.
Dans le champ Push Notification Platform, sélectionnez Apple Development ou Apple Production.
4.
Dans le champ Push Certification Type, sélectionnez MacOS Push Certificate.
5.
Sélectionnez le certificat chiffré avec un mot de passe et la clé privée, tels qu'ils ont été exportés à
partir de Keychain Access sur votre ordinateur Mac au format de fichier .p12.
6.
Entrez votre mot de passe, puis cliquez sur Create Platform Application.
API Version 2010-03-31
56
Amazon Simple Notification
Service Manuel du développeur
Mise en route avec Baidu
Mise en route avec Baidu Cloud Push
Baidu Cloud Push est un service de cloud chinois. Baidu vous permet d'envoyer des messages de
notification push à des appareils mobiles. Cette section décrit comment obtenir les prérequis Baidu et
envoyer un message de notification push à l'aide d'Amazon SNS et de Baidu.
Rubriques
• Prérequis pour Baidu (p. 57)
• Etape 1 : Création d'un compte Baidu (p. 57)
• Etape 2 : Inscription en tant que développeur Baidu (p. 59)
• Etape 3 : Création d'un projet Baidu Cloud Push (p. 63)
• Etape 4 : Téléchargement et installation de l'application de démonstration Android à partir de
Baidu (p. 66)
• Etape 5 : Obtention d'un ID d'utilisateur et d'un ID de canal à partir de Baidu (p. 70)
• Etape 6 : Envoi d'un message de notification push à un point de terminaison mobile à l'aide
d'Amazon SNS et de Baidu (p. 70)
Prérequis pour Baidu
Pour envoyer un message de notification push à des appareils mobiles à l'aide d'Amazon SNS et de
Baidu, vous avez besoin des éléments suivants :
• Compte Baidu
• Inscription en tant que développeur Baidu
• Projet Baidu Cloud Push
• Clé API et clé secrète provenant d'un projet Baidu Cloud Push
• ID utilisateur et ID de canal Baidu
• Application de démonstration Android
Si ces conditions préalables sont déjà remplies, vous pouvez envoyer un message de notification push
à un point de terminaison mobile à l'aide de l'API Amazon SNS. Pour plus d'informations sur l'utilisation
de l'API Amazon SNS, consultez la page Etape 6 : Envoi d'un message de notification push à un point
de terminaison mobile à l'aide d'Amazon SNS et de Baidu (p. 70).
Etape 1 : Création d'un compte Baidu
Afin d'utiliser Baidu, vous devez d'abord créer un compte.
Important
Pour créer un compte Baidu, il convient d'effectuer une étape de vérification au cours de
laquelle vous devez saisir des caractères en chinois simplifié. Le moyen le plus simple
d'accomplir cette tâche est de vous faire assister d'une personne capable de lire le chinois.
Une autre option consiste à utiliser Amazon Mechanical Turk pour la création du compte
Baidu. Une fois que le compte et le mot de passe sont créés pour Baidu, vous pouvez
vous connecter et changer le mot de passe sans avoir besoin de saisir des caractères en
chinois simplifié. Pour plus d'informations sur Mechanical Turk, consultez le manuel Amazon
Mechanical Turk Requester User Interface.
Pour créer un compte Baidu
1.
Sur le portail Baidu, dans l'angle supérieur droit, cliquez sur 注册 (Inscription).
API Version 2010-03-31
57
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Création d'un compte Baidu
2.
Entrez une adresse e-mail, un mot de passe et un code de vérification, puis cliquez sur 注册
(Inscription).
Vous devriez alors voir s'afficher une page similaire à la suivante, qui vous informe qu’un e-mail
d'activation a été envoyé à l'adresse e-mail que vous avez saisie.
3.
Connectez-vous à votre compte de messagerie, ouvrez l'e-mail d'activation que vous avez reçu de
Baidu, puis cliquez sur le lien fourni :
API Version 2010-03-31
58
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Inscription en tant que développeur Baidu
4.
Après avoir cliqué sur le lien fourni dans l'e-mail d'activation envoyé par Baidu, vous devez saisir
le code de vérification (caractères en chinois simplifié).
Une fois que vous avez créé un compte Baidu, vous pouvez vous inscrire en tant que
développeur.
Etape 2 : Inscription en tant que développeur Baidu
Vous devez vous inscrire en tant que développeur Baidu pour utiliser le service de notification push de
Baidu.
Pour vous inscrire en tant que développeur Baidu
1.
Sur le portail Baidu, cliquez sur 更多 (Suite).
API Version 2010-03-31
59
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Inscription en tant que développeur Baidu
2.
Cliquez sur 百度开放云平台 (Plateforme Open Cloud de Baidu).
3.
Sur la page suivante, à proximité de l'angle supérieur droit, cliquez sur 开发者服务 (Services de
développeur).
4.
Cliquez sur 马上开始 (Démarrer maintenant).
5.
Entrez votre nom, une description et votre numéro de téléphone portable pour recevoir un SMS de
vérification, puis cliquez sur 发送验证码 (Envoyer un code de vérification).
API Version 2010-03-31
60
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Inscription en tant que développeur Baidu
Vous devez ensuite recevoir un SMS contenant un numéro de vérification, similaire au message
suivant :
6.
Terminez l'inscription du développeur en saisissant le numéro de vérification, puis cliquez sur 提交
(Soumettre) au bas de la page.
API Version 2010-03-31
61
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Inscription en tant que développeur Baidu
Une fois l'inscription réussie, les éléments suivants doivent s'afficher :
Après votre inscription en tant que développeur Baidu, vous pouvez passer à l’étape suivante pour
créer un projet Baidu Cloud Push. Cela suppose que vous soyez toujours connecté. Si vous n’êtes
pas connecté, vous pouvez utiliser la procédure de connexion suivante.
Pour vous connecter à Baidu
1.
Sur le portail Baidu, dans l'angle supérieur droit, cliquez sur 登录 (Connexion).
API Version 2010-03-31
62
Amazon Simple Notification
Service Manuel du développeur
Etape 3 : Création d'un projet Baidu Cloud Push
2.
Saisissez votre nom d'utilisateur Baidu (adresse e-mail) et votre mot de passe, puis cliquez sur 登
录 (Connexion).
Etape 3 : Création d'un projet Baidu Cloud Push
Lorsque vous créez un projet Baidu Cloud Push, vous recevez votre ID d'application, la clé API et la
clé secrète.
Pour créer un projet Baidu Cloud Push
1.
Sur le portail Baidu, cliquez sur 更多 (Suite).
2.
Cliquez sur 百度开放云平台 (Plateforme Open Cloud de Baidu).
API Version 2010-03-31
63
Amazon Simple Notification
Service Manuel du développeur
Etape 3 : Création d'un projet Baidu Cloud Push
3.
Sur la page suivante, à proximité de l'angle supérieur droit, cliquez sur 开发者服务 (Services de
développeur).
4.
Cliquez sur 云推送 (Cloud Push).
5.
Cliquez sur 管理控制台 (Console de gestion).
6.
Cliquez sur 管理控制台 (Console de gestion) pour saisir des informations pour un projet Android.
API Version 2010-03-31
64
Amazon Simple Notification
Service Manuel du développeur
Etape 3 : Création d'un projet Baidu Cloud Push
7.
Cliquez sur 创建工程 (Créer un projet).
8.
Entrez un nom d'application, puis cliquez sur 创建 (Créer).
API Version 2010-03-31
65
Amazon Simple Notification
Service Manuel du développeur
Etape 4 : Téléchargement et installation
de l'application de démonstration Android
9.
Une fois le projet terminé, une page similaire à la suivante s'affiche. Elle contient votre ID
d'application, la clé API et la clé secrète. Notez la clé API et la clé secrète, car vous en aurez
besoin ultérieurement.
Etape 4 : Téléchargement et installation de
l'application de démonstration Android à partir de
Baidu
Baidu génère une application de démonstration Android que vous pouvez télécharger et installer sur
votre appareil mobile.
Pour télécharger et installer l'application de démonstration Android à partir de Baidu
1.
A partir de la page qui affiche l'ID d'application, la clé API et la clé secrète, cliquez sur 云推送
(Cloud Push).
API Version 2010-03-31
66
Amazon Simple Notification
Service Manuel du développeur
Etape 4 : Téléchargement et installation
de l'application de démonstration Android
2.
Cliquez sur 推送设置 (Paramètres Push).
3.
A l'aide de la notation de nom de domaine inversée, entrez un nom de package dans la zone 应用
包名 (Nom du package de l'application).
4.
Cliquez sur 保存设置 (Enregistrer les paramètres).
API Version 2010-03-31
67
Amazon Simple Notification
Service Manuel du développeur
Etape 4 : Téléchargement et installation
de l'application de démonstration Android
Vous devez ensuite voir s'afficher le message 保存成功!(Enregistrement réussi !).
5.
Cliquez ensuite sur 快速示例 (Exemple rapide).
Une page similaire à celle présentée ci-dessous doit alors s'afficher.
API Version 2010-03-31
68
Amazon Simple Notification
Service Manuel du développeur
Etape 4 : Téléchargement et installation
de l'application de démonstration Android
6.
Sur l'appareil mobile Android à l'aide duquel effectuer le test, scannez l'icône de code QR via un
analyseur de code, tel que QR Droid, pour obtenir un lien vers une application de démonstration
fournie par Baidu.
Note
Vous pouvez également télécharger l'application de démonstration en cliquant sur 下载
Android示例 (Télécharger un exemple Android).
L'application Baidu Push Demo est incluse dans le package PushDemo.zip téléchargé.
Vous pouvez utiliser l'application de démonstration comme exemple pour la création
de votre propre application à utiliser avec Baidu. En outre, le fichier jar de service
push (pushservice-4.0.0.jar) provenant de Baidu est inclus dans le package
PushDemo.zip. Vous devez utiliser le fichier jar de Baidu pour créer une application.
7.
Cliquez sur le lien que vous recevez après l'analyse du code. Cette opération va télécharger
l'application de démonstration fournie par Baidu sur votre appareil mobile.
8.
Une fois le téléchargement terminé, installez l'application de démonstration sur votre appareil
mobile. L'application Push Demo suivante doit maintenant apparaître comme installée :
API Version 2010-03-31
69
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Obtention d'un ID utilisateur et d'un ID de canal
Etape 5 : Obtention d'un ID d'utilisateur et d'un ID de
canal à partir de Baidu
Baidu génère un ID utilisateur et un ID de canal dont vous aurez besoin pour envoyer un message de
notification push à l'aide de Baidu.
Pour obtenir l'ID utilisateur et l'ID de canal à partir de Baidu
1.
Ouvrez Push Demo puis, dans l'angle inférieur droit, cliquez sur 无账号绑定 (Relier sans compte
Baidu).
Vous devriez ensuite voir s'afficher un écran similaire au suivant avec les ID userId et channelId.
2.
Notez les valeurs de userId et channelId, car vous allez les utiliser à l’étape suivante.
Note
Pour obtenir un exemple de code Java utilisé pour récupérer l'ID utilisateur et l'ID de
canal, consultez la méthode onBind dans le fichier MyPushMessageReceiver.java
de l'application Push Demo de Baidu. Pour en savoir plus, consultez le guide
d'intégration Android. Pour traduire ce guide en français, vous pouvez coller l'URL http://
developer.baidu.com/wiki/index.php?title=docs/cplat/push/guide dans Bing Translator, puis
cliquer sur Traduire.
Etape 6 : Envoi d'un message de notification push
à un point de terminaison mobile à l'aide d'Amazon
SNS et de Baidu
Cette section décrit comment envoyer un message de notification push à votre point de
terminaison mobile. Ajoutez les informations collectées sur les prérequis à l'exemple de fichier
AWS SNSMobilePush.java, qui est inclus dans le fichier snsmobilepush.zip. Le fichier
SNSMobilePush.java contient des exemples de création d'un point de terminaison mobile et
d'utilisation d'attributs de message pour structurer le message. Pour obtenir plus d'informations
ainsi que des exemples de création de points de terminaison mobiles et d'utilisation d'attributs de
message avec Baidu, consultez les pages Création d'un point de terminaison Amazon SNS avec
Baidu (p. 72) et Utilisation d'attributs de message pour structurer le message (p. 74).
API Version 2010-03-31
70
Note
Amazon Simple Notification
Service Manuel du développeur
Etape 6 : Envoi d'un message de notification
push à un point de terminaison mobile
à l'aide d'Amazon SNS et de Baidu
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
Pour ajouter l'exemple à Eclipse
1.
Dans Eclipse, créez un projet Java (Fichier | Nouveau | Projet Java).
2.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
3.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
AwsCredentials.properties et ajoutez vos informations d'identification de sécurité AWS.
Pour ajouter le kit AWS SDK for Java au chemin de génération
1.
Cliquez avec le bouton droit de la souris sur le dossier du projet Java, cliquez sur Chemin de
génération, puis sur Configurer le chemin de génération...
2.
Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque...
3.
Cliquez sur AWS SDK pour Java, puis sur Suivant, et enfin sur Terminer.
Pour ajouter les informations sur les prérequis au fichier SNSMobilePush.java
1.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le
fichier SNSMobilePush.java dans Eclipse et supprimez la mise en commentaire de
sample.demoBaiduAppNotification();. Il doit ressembler à l'exemple ci-dessous.
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.
Recherchez la méthode demoBaiduAppNotification, puis entrez l'ID utilisateur et l'ID de canal
que vous avez reçus de Baidu comme valeurs des chaînes userId et channelId. Par exemple, elle
doit ressembler à la ligne suivante :
String userId = "EXAMPLEkLMchcX0v3xOxWVhG6TfdBp...KT2TGkvnKyTvLuSpzK_qsHgxVB_UpmcUa7Gl6g3EXAMPLE";
String channelId = "EXAMPLE<channelId>EXAMPLE";
3.
Entrez la clé secrète de votre application. Par exemple, elle doit ressembler à la ligne suivante :
API Version 2010-03-31
71
Amazon Simple Notification
Service Manuel du développeur
Etape 6 : Envoi d'un message de notification
push à un point de terminaison mobile
à l'aide d'Amazon SNS et de Baidu
String secretKey = "EXAMPLE<secretkey>EXAMPLE";
4.
Entrez la clé API pour votre application. Par exemple, elle doit ressembler à la ligne suivante :
String apiKey = "EXAMPLExV2lcV2zEKTLNYs625zfk2jh4EXAMPLE";
5.
Saisissez un nom pour votre application. Les noms d'application doivent être constitués
uniquement de lettres majuscules et minuscules ASCII, de chiffres, de traits de soulignement,
de traits d'union et de points, et doivent contenir de 1 à 256 caractères. Par exemple, elle doit
ressembler à la ligne suivante :
String applicationName = "baidupushapp";
6.
Exécutez l'application. Une sortie similaire à la suivante doit s'afficher dans la fenêtre de sortie de
votre IDE :
===========================================
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": "defaultchannel-msg-key"),("AWS.SNS.MOBILE.BAIDU.DeployStatus": "1"),
("AWS.SNS.MOBILE.BAIDU.MessageType": "0")}
Published!
{MessageId=56a3a3e6-4b4b-59b4-8d1d-eff592c0ffa1}
Sur votre appareil Android, vous devez voir un message de notification push similaire au suivant
apparaître dans l'application Android :
Création d'un point de terminaison Amazon SNS avec Baidu
Cette section fournit des informations supplémentaires et des exemples sur la façon de créer
un point de terminaison Amazon SNS à utiliser avec Baidu. Vous créez un point de terminaison
Amazon SNS, en utilisant une combinaison de l'ID utilisateur et de l'ID de canal reçus de Baidu, qui
API Version 2010-03-31
72
Amazon Simple Notification
Service Manuel du développeur
Etape 6 : Envoi d'un message de notification
push à un point de terminaison mobile
à l'aide d'Amazon
SNS
et de
représentent l'application et l'appareil
mobile. Le
point
de Baidu
terminaison est ensuite utilisé par Amazon
SNS pour publier des messages de notification à l'aide du service de notification push de Baidu, dans
l'application située sur l'appareil mobile.
L'exemple Java suivant montre comment créer un point de terminaison Amazon SNS pour un appareil
mobile et une application 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();
// 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:uswest-2:123456789012:app/BAIDU/TestApp");
String endpointArn =
snsClient.createPlatformEndpoint(createPlatformEndpointRequest);
Prenez en considération les éléments suivants lorsque vous utilisez l'API Amazon SNS pour créer un
point de terminaison à utiliser avec Baidu :
• Dans CreateEndpointRequest, le champ du jeton de plateforme doit contenir l'ID de canal
(channelId).
• Si vous spécifiez l'attribut de point de terminaison « Token » dans le mappage d'attributs, ce champ
doit également contenir l'ID de canal.
• L'ID de canal doit également être spécifié sous forme d'attribut de point de terminaison avec le nom
« ChannelId ».
• La valeur de l'attribut de point de terminaison « ChannelId » et le champ du jeton de plateforme et/
ou l'attribut de point de terminaison « Token » doivent être identiques pour que la création de la
demande aboutisse.
• L'ID utilisateur doit être spécifié sous forme d'attribut de point de terminaison avec le nom « UserId ».
• Pour une réponse positive, la demande doit contenir des valeurs UserId et ChannelId valides dans
les attributs. En outre, le paramètre ChannelId entré à l'aide de setPlatformToken(String), qui fait
partie de CreatePlatformEndpointRequest, doit être identique au paramètre ChannelId spécifié dans
le mappage d'attributs.
API Version 2010-03-31
73
Amazon Simple Notification
Service Manuel du développeur
Etape 6 : Envoi d'un message de notification
push à un point de terminaison mobile
à l'aide d'Amazon SNS et de Baidu
Utilisation d'attributs de message pour structurer le message
Cette section fournit des informations supplémentaires et des exemples pour l'utilisation d'attributs de
message afin de structurer un message et d'envoyer un message de notification push à un point de
terminaison mobile.
L'exemple Java suivant montre comment envoyer un message de notification push à un point de
terminaison mobile et comment utiliser les attributs de message facultatifs pour structurer le message.
Si un attribut n'est pas envoyé, une valeur par défaut est automatiquement définie à sa place.
Note
Le message de notification push ne peut pas dépasser 256 octets, qui représente la taille
maximale autorisée par Baidu.
Map<String, MessageAttributeValue> messageAttributes = new HashMap<String,
MessageAttributeValue>();
// Insert your desired value of Deploy Status here. 1 = DEV, 2 = PROD
messageAttributes.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 NOTIFICATION
messageAttributes.put("AWS.SNS.MOBILE.BAIDU.MessageType", new
MessageAttributeValue().withDataType("String").withStringValue("1"));
// Insert your desired value of Message Key
messageAttributes.put("AWS.SNS.MOBILE.BAIDU.MessageKey", new
MessageAttributeValue().withDataType("String").withStringValue("testmessage"));
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);
Prenez en considération les éléments suivants lorsque vous utilisez les attributs de message facultatifs
pour structurer le message :
• AWS.SNS.MOBILE.BAIDU.DeployStatus
Valeurs possibles (par défaut = 1) :
1 – signale la notification comme envoyée dans un environnement de développement
2 – signale la notification comme envoyée dans un environnement de production
• AWS.SNS.MOBILE.BAIDU.MessageType
Valeurs possibles (par défaut = 1) :
0 – génère un message dans l'application
API Version 2010-03-31
74
Amazon Simple Notification
Service Manuel du développeur
Mise en route avec GCM
1 – génère une notification d'alerte. Les notifications d'alerte peuvent uniquement être au format
suivant :
{"title":"<TITLE>","description":"<DESCRIPTION>"}
<TITLE> et <DESCRIPTION> correspondent au titre et à la description souhaités pour la notification
d'alerte. Si le format JSON du message est incorrect, la demande échoue.
• AWS.SNS.MOBILE.BAIDU.MessageKey
Identificateur de message court, que vous pouvez attacher à votre message.
Mise en route avec Google Cloud Messaging for
Android
Google Cloud Messaging for Android (GCM) est un service qui vous permet d'envoyer des messages
de notification push à une application Android. Cette section décrit comment obtenir les prérequis GCM
et envoyer un message de notification push à un point de terminaison mobile.
Rubriques
• Prérequis pour GCM (p. 75)
• Etape 1 : Création d'un projet d'API Google et activation du service GCM (p. 75)
• Etape 2 : Obtention de la clé API de serveur (p. 76)
• Etape 3 : Obtention d'un ID d'enregistrement de GCM (p. 76)
• Etape 4 : Envoi d'un message de notification push à un point de terminaison mobile à l'aide de
GCM (p. 78)
Prérequis pour GCM
Pour envoyer des messages de notification push à une application Android, vous avez besoin des
éléments suivants :
• Application Android inscrite auprès de GCM
• ID d'enregistrement
• Clé API de serveur (jeton d'authentification de l'expéditeur)
Si ces conditions préalables sont déjà remplies, vous pouvez soit utiliser la console Amazon SNS pour
envoyer un message de notification push au point de terminaison mobile, soit utiliser l'API Amazon
SNS. Pour plus d'informations sur l'utilisation de la console Amazon SNS, consultez la page Utilisation
de push mobile Amazon SNS (p. 87). Pour plus d'informations sur l'utilisation de l'API Amazon SNS,
consultez la page Etape 4 : Envoi d'un message de notification push à un point de terminaison mobile
à l'aide de GCM (p. 78).
Etape 1 : Création d'un projet d'API Google et
activation du service GCM
Pour envoyer un message de notification push à une application Android, vous devez disposer d'un
projet d'API Google et activer le service GCM.
API Version 2010-03-31
75
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Obtention de la clé API de serveur
Pour créer un projet d'API Google et activer le service GCM
1.
Si vous ne disposez pas encore d'un projet d'API Google, consultez la section Création d'un projet
d'API Google dans la documentation pour les développeurs Android.
Note
Si vous n'avez pas encore inscrit une application Android auprès de GCM, vous pouvez
utiliser l'exemple d'application Android fourni par AWS comme modèle pour démarrer.
Pour plus d'informations, consultez Etape 3 : Obtention d'un ID d'enregistrement de
GCM (p. 76).
2.
Sur le site web Console des API Google, vérifiez que vous disposez d'un projet d'API Google.
3.
Cliquez sur Services et assurez-vous que Google Cloud Messaging for Android est activé.
Etape 2 : Obtention de la clé API de serveur
Pour communiquer avec GCM en votre nom, Amazon SNS utilise votre clé API de serveur. Cette clé
sera utilisée dans une étape ultérieure pour envoyer une notification push à un point de terminaison
mobile.
Pour obtenir la clé API de serveur
1.
Sur le site web Console des API Google, cliquez sur API Access et notez la clé API de serveur
portant l'étiquette Key for server apps (with IP locking).
2.
Si vous n'avez pas encore créé de clé API de serveur, cliquez sur Create new Server key. Cette
clé sera utilisée ultérieurement dans cette section pour envoyer une notification push à un point de
terminaison mobile.
Etape 3 : Obtention d'un ID d'enregistrement de
GCM
Lorsque vous inscrivez votre application auprès de GCM pour recevoir des messages de notification
push, un ID d'enregistrement est généré. Amazon SNS utilise cette valeur pour déterminer vers quelle
application et quel appareil associé envoyer des notifications push mobile.
Les étapes suivantes montrent comment utiliser l'exemple d'application Android fourni par AWS afin
d'obtenir un ID d'enregistrement de GCM. Vous pouvez utiliser cet exemple d'application Android
pour démarrer avec les notifications push Amazon SNS. Cet exemple d'application nécessite le kit
de développement logiciel (SDK) Android, le SDK des Services Google Play et le package Android
Support Library. Pour plus d'informations sur ces kits de développement logiciel, consultez les
pages Obtention du SDK Android et Configuration du SDK des Services Google Play. Pour plus
d'informations sur le package Android Support Library, consultez la page Support Library Setup.
Note
L'exemple d'application Android fourni est compatible avec des appareils physiques exécutant
Android version 2.3 ou ultérieure et avec des appareils virtuels exécutant Google API 17 ou
ultérieure.
API Version 2010-03-31
76
Amazon Simple Notification
Service Manuel du développeur
Etape 3 : Obtention d'un ID d'enregistrement de GCM
Pour obtenir un ID d'enregistrement de GCM pour votre application
1.
Téléchargez et décompressez le fichier snsmobilepush.zip.
2.
Importez le dossier AndroidMobilePushApp dans votre IDE. Dans Eclipse, cliquez sur Fichier,
Importer, développez le dossier Android, cliquez sur Code Android existant dans l'espace de
travail, cliquez sur Suivant, naviguez jusqu'au dossier AndroidMobilePushApp, cliquez sur OK,
puis sur Terminer.
Une fois que l'exemple d'application Android a été importé dans votre IDE, vous devez ajouter
le numéro de votre projet d'API Google au fichier strings.xml, qui est inclus dans l'exemple
d'application Android.
3.
Ajoutez le numéro de votre projet d'API Google au fichier strings.xml. Dans votre IDE, le fichier
est inclus dans le dossier values, qui est un sous-dossier de res. La chaîne se présente comme
suit :
<string name="project_number">012345678912</string>
4.
Ajoutez google-play-services.jar, android-support-v4.jar et android.jar au
chemin de génération Java. Sélectionnez google-play-services.jar et android-supportv4.jar pour l'exportation, mais pas android.jar.
5.
Exécutez l'application pour afficher l'ID d'enregistrement en tant que sortie sur le système de
journalisation Android. Si vous utilisez Eclipse avec le plug-in Android ADT, vous pouvez voir
l'ID d'enregistrement dans la fenêtre d'affichage LogCat. Par exemple, la sortie contenant l'ID
d'enregistrement se présente comme suit :
06-05 11:50:43.587: V/Registration(14146): Registered,
registrationId: = Examplei7fFachkJ1xjlqT64RaBkcGHochmf1VQAr9kIBJtKjp7fedYPzEwT_Pq3Tu0lroqro1cwWJUvgkcPPYcaXCpPWmG3BqnwiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw, error =
null, unregistered = null
L'application installée s'affiche sur votre appareil Android :
API Version 2010-03-31
77
Amazon Simple Notification
Service Manuel du développeur
Etape 4 : Envoi d'un message à un point
de terminaison mobile à l'aide de GCM
Vous devez maintenant avoir un ID d'enregistrement, une clé API de serveur et une application
Android inscrite auprès de GCM. Vous pouvez désormais envoyer une notification à l'application
Android sur votre appareil en utilisant la console Amazon SNS ou l'API Amazon SNS. Pour utiliser
la console Amazon SNS, consultez la page Utilisation de push mobile Amazon SNS (p. 87). Pour
utiliser l'API Amazon SNS, consultez la page Etape 4 : Envoi d'un message de notification push à un
point de terminaison mobile à l'aide de GCM (p. 78).
Etape 4 : Envoi d'un message de notification push à
un point de terminaison mobile à l'aide de GCM
Cette section décrit comment envoyer un message de notification push à votre point de terminaison
mobile. Ajoutez les informations collectées sur les prérequis à l'exemple de fichier AWS
SNSMobilePush.java, qui est inclus dans le fichier snsmobilepush.zip.
Note
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
Pour ajouter l'exemple à Eclipse
1.
Dans Eclipse, créez un projet Java (Fichier | Nouveau | Projet Java).
2.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
3.
Dans le dossier SNSSamples/src/com/amazonaws/sns/samples/mobilepush, ouvrez le fichier
AwsCredentials.properties et ajoutez vos informations d'identification de sécurité AWS.
Pour ajouter le kit AWS SDK for Java au chemin de génération
1.
Cliquez avec le bouton droit de la souris sur le dossier du projet Java, cliquez sur Chemin de
génération, puis sur Configurer le chemin de génération...
2.
Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque...
3.
Cliquez sur AWS SDK pour Java, puis sur Suivant, et enfin sur Terminer.
API Version 2010-03-31
78
Amazon Simple Notification
Service Manuel du développeur
Etape 4 : Envoi d'un message à un point
de terminaison mobile à l'aide de GCM
Pour ajouter les informations sur les prérequis au fichier SNSMobilePush.java
1.
Dans le dossier SNSSamples/src/com/amazonaws/sns/samples/mobilepush, ouvrez le
fichier SNSMobilePush.java dans Eclipse et supprimez la mise en commentaire de
sample.demoAndroidAppNotification();. Il doit ressembler à l'exemple ci-dessous.
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.
Recherchez la méthode demoAndroidAppNotification et entrez l'ID d'enregistrement que
vous avez reçu de GCM comme valeur de la chaîne d'ID d'enregistrement. Par exemple, elle doit
ressembler à la ligne suivante :
String registrationId = = "EXAMPLEkLMchcX0v3xOxWVhG6TfdBp...KT2TGkvnKyTvLuSpzK_qsHgxVB_UpmcUa7Gl6g3EXAMPLE";
3.
Entrez la clé API pour votre application. Par exemple, elle doit ressembler à la ligne suivante :
String serverAPIKey = "EXAMPLExV2lcV2zEKTLNYs625zfk2jh4EXAMPLE";
4.
Saisissez un nom pour votre application. Les noms d'application doivent être constitués
uniquement de lettres majuscules et minuscules ASCII, de chiffres, de traits de soulignement,
de traits d'union et de points, et doivent contenir de 1 à 256 caractères. Par exemple, elle doit
ressembler à la ligne suivante :
String applicationName = "gcmpushapp";
5.
Exécutez l'application. Une sortie similaire à la suivante doit s'afficher dans la fenêtre de sortie de
votre IDE :
===========================================
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
API Version 2010-03-31
79
Amazon Simple Notification
Service Manuel du développeur
Mise en route avec MPNS
Sur votre appareil Android, vous devez voir un message de notification push similaire au suivant
apparaître dans l'application Android :
Mise en route avec MPNS
Microsoft Push Notification Service for Windows Phone (MPNS) est un service qui vous permet
d'envoyer des messages de notification push à des applications Windows Phone 7+ et Windows
Phone 8. 0. Cette section décrit comment obtenir les prérequis MPNS et envoyer un message de
notification push à l'aide d'Amazon SNS et de MPNS. Vous pouvez envoyer à la fois des messages de
notification push authentifiés et non authentifiés avec MPNS. Pour améliorer la sécurité et éviter les
limitations imposées par MPNS, vous devez envoyer des messages de notification push authentifiés.
Rubriques
• Prérequis pour MPNS (p. 80)
• Etape 1 : Configuration de votre application Windows Phone pour la réception de messages de
notification push (p. 81)
• Etape 2 : Obtention d'une URI de notification push à partir de MPNS (p. 81)
• Etape 3 : Création d'un compte de développeur Windows (p. 81)
• Etape 4 : Téléchargement d'un certificat TLS (p. 81)
• Etape 5 : Envoi d'un message de notification push à une application Windows Phone à l'aide
d'Amazon SNS et de MPNS (p. 81)
Prérequis pour MPNS
Pour envoyer un message de notification push non authentifié à une application Windows Phone à
l'aide d'Amazon SNS et de MPNS, vous avez besoin des éléments suivants :
• Application Windows Phone configurée pour utiliser MPNS
• URI de notification push provenant de MPNS
Pour envoyer un message de notification push authentifié à une application Windows Phone à l'aide
d'Amazon SNS et de MPNS, vous avez également besoin des éléments suivants :
• URI de notification push HTTPS provenant de MPNS
• Inscription en tant que développeur d'applications Windows
• Certificat TLS (Transport Layer Security)
API Version 2010-03-31
80
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Configuration de votre application Windows
Phone pour la réception de messages de notification push
Si ces conditions préalables requises sont déjà remplies, vous pouvez envoyer un message de
notification push à une application Windows Phone à l'aide de la console Amazon SNS ou de l'API
Amazon SNS. Pour plus d'informations sur l'utilisation de la console Amazon SNS, consultez la page
Utilisation de push mobile Amazon SNS (p. 87). Pour plus d'informations sur l'utilisation de l'API
Amazon SNS, consultez la page Etape 5 : Envoi d'un message de notification push à une application
Windows Phone à l'aide d'Amazon SNS et de MPNS (p. 81).
Etape 1 : Configuration de votre application
Windows Phone pour la réception de messages de
notification push
Pour envoyer un message de notification push à votre application Windows Phone, vous devez activer
l'application pour le service MPNS. Pour plus d'informations, consultez la page Configuration de votre
application pour la réception de notifications push pour Windows Phone 8.
Etape 2 : Obtention d'une URI de notification push à
partir de MPNS
Pour créer un point de terminaison mobile avec Amazon SNS, vous avez besoin d'une URI de
notification push provenant de MPNS. Vous pouvez obtenir une URI de notification push HTTP ou
HTTPS à partir de MPNS. Pour améliorer la sécurité et éviter les limitations imposées par MPNS, vous
devez vous procurer une URI de notification push HTTPS pour envoyer des messages authentifiés.
Pour plus d'informations sur l'obtention d'une URI de notification push HTTPS, consultez la page
Configuration d'un service web authentifié pour l'envoi de notifications push pour Windows Phone 8.
Etape 3 : Création d'un compte de développeur
Windows
Pour envoyer des messages authentifiés à l'aide de MPNS, vous devez créer un compte de
développeur Windows. Pour plus d'informations sur l'ouverture d'un compte de développeur Windows,
consultez la page Ouverture d'un compte de développeur.
Etape 4 : Téléchargement d'un certificat TLS
Pour envoyer des messages authentifiés à l'aide de MPNS, vous devez télécharger un certificat TLS
obtenu à partir de l'une des autorités de certification (CA) de confiance pour Windows Phone sur votre
compte de développeur Windows. Vous devez également soumettre à Amazon SNS la chaîne de
certificats TLS complète et la clé privée associée. Cela permet d'établir une connexion sécurisée à
MPNS avec Amazon SNS en votre nom. Amazon SNS requiert le format .pem pour le certificat TLS
et la clé privée. Vous pouvez utiliser différents utilitaires, comme openssl, pour convertir et exporter
des certificats. Pour plus d'informations, consultez les pages Configuration d'un service web authentifié
pour l'envoi de notifications push pour Windows Phone et Certificats racines SSL pour Windows Phone
OS 7.1. Pour plus d'informations sur openssl, consultez le site http://www.openssl.org/.
Etape 5 : Envoi d'un message de notification push à
une application Windows Phone à l'aide d'Amazon
SNS et de MPNS
Cette section décrit comment utiliser les informations prérequises avec l'API Amazon SNS pour
envoyer un message de notification push à votre application Windows Phone à l'aide d'Amazon
API Version 2010-03-31
81
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Envoi d'un message de notification
push à une application Windows Phone
à l'aide
d'Amazon
SNS et de
SNS et de MPNS. Ajoutez les
informations
collectées
surMPNS
les prérequis à l'exemple de fichier AWS
SNSMobilePush.java, qui est inclus dans le fichier snsmobilepush.zip.
Vous pouvez également utiliser la console Amazon SNS. Cependant, pour envoyer des notifications
toast, vous devez utiliser l'API Amazon SNS. Pour plus d'informations sur l'utilisation de la console
Amazon SNS, consultez la page Utilisation de push mobile Amazon SNS (p. 87).
Note
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
Pour ajouter l'exemple à Eclipse
1.
Dans Eclipse, créez un projet Java (Fichier | Nouveau | Projet Java).
2.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
3.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
AwsCredentials.properties et ajoutez vos informations d'identification de sécurité AWS.
Pour ajouter le kit AWS SDK for Java au chemin de génération
1.
Cliquez avec le bouton droit de la souris sur le dossier du projet Java, cliquez sur Chemin de
génération, puis sur Configurer le chemin de génération...
2.
Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque...
3.
Cliquez sur AWS SDK pour Java, puis sur Suivant, et enfin sur Terminer.
Pour ajouter les informations sur les prérequis au fichier SNSMobilePush.java
1.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le
fichier SNSMobilePush.java dans Eclipse et supprimez la mise en commentaire de
sample.demoMPNSAppNotification();. Il doit ressembler à l'exemple ci-dessous.
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.
Recherchez la méthode demoMPNSAppNotification et entrez l'URI de notification que vous
avez reçue de MPNS comme valeur pour la chaîne notificationChannelURI.
3.
Saisissez un nom pour votre application. Les noms d'application doivent être constitués
uniquement de lettres majuscules et minuscules ASCII, de chiffres, de traits de soulignement,
API Version 2010-03-31
82
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Envoi d'un message de notification
push à une application Windows Phone
à l'aide
SNS etde
de1MPNS
de traits d'union et de points,
etd'Amazon
doivent contenir
à 256 caractères. Par exemple, elle doit
ressembler à la ligne suivante :
String applicationName = "mpnspushapp";
4.
Entrez le certificat TLS MPNS au format de fichier .pem. Vous devez inclure la chaîne de
certificats complète, en commençant par le certificat CA racine en haut et en terminant par le
certificat émis en bas. Vous devez ajouter \n au début de chaque nouvelle ligne dans votre
certificat. Par exemple, elle doit ressembler à la ligne suivante :
String certificateChain = "-----BEGIN CERTIFICATE----\nMIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
\nVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6\nb24xFDASBgNVBAsTC0lB
\nBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN
\nMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD
\nVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z
\nb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt
\nYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ
\n21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
\nrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
\nIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4\nnUhVVxYUntneD9+h8Mg9
+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
\nFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb
\nNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=\n-----END CERTIFICATE-----";
5.
Entrez la clé privée pour le certificat TLS MPNS au format de fichier .pem. Vous devez ajouter
\n au début de chaque nouvelle ligne dans votre certificat. Par exemple, elle doit ressembler à la
ligne suivante :
String privateKey = "-----BEGIN RSA PR1VATE KEY----\nMJICiTCHAfICCQD9m7oRw0uXOjANBgkqhkiG7w0BAQUFADCBiDELMAkGA1UEBhMC
\nWVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGx2MQ8wDQYDVQQKEwZBbWF6\nVVMxCzAJBgNVBAgTAldB
FYai3z96EXAMPLE=\n-----END RSA PR1VATE KEY-----";
6.
Exécutez l'application. Une sortie similaire à la suivante doit s'afficher dans la fenêtre de sortie de
votre IDE :
===========================================
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}
API Version 2010-03-31
83
Amazon Simple Notification
Service Manuel du développeur
Mise en route avec WNS
Sur votre appareil Windows Phone, vous devez voir un message de notification push s'afficher
dans l'application.
Mise en route avec WNS
Windows Push Notification Services (WNS) est un service qui vous permet d'envoyer des messages
de notification push et des mises à jour vers des applications Windows 8 (et versions ultérieures) et
Windows Phone 8.1 (et versions ultérieures). Cette section décrit comment obtenir les prérequis WNS
et envoyer un message de notification push à l'aide d'Amazon SNS et de WNS.
Rubriques
• Prérequis pour WNS (p. 84)
• Etape 1 : Configuration de votre application pour la réception de messages de notification
push (p. 84)
• Etape 2 : Obtention d'une URI de notification push à partir de WNS (p. 85)
• Etape 3 : Obtention d'un identificateur de sécurité du package à partir de WNS (p. 85)
• Etape 4 : Obtention d'une clé secrète à partir de WNS (p. 85)
• Etape 5 : Envoi d'un message de notification push à une application à l'aide d'Amazon SNS et de
WNS (p. 85)
Prérequis pour WNS
Pour envoyer des messages de notification push à des appareils Windows à l'aide d'Amazon SNS et
de WNS, vous avez besoin des éléments suivants :
• Applications Windows 8 (et versions ultérieures) ou Windows Phone 8.1 configurées pour utiliser
WNS
• URI de notification push provenant de WNS
• Identificateur de sécurité du package
• Clé secrète
Si ces conditions préalables requises sont déjà remplies, vous pouvez envoyer un message de
notification push à une application à l'aide de la console Amazon SNS ou de l'API Amazon SNS.
Pour plus d'informations sur l'utilisation de la console Amazon SNS, consultez la page Utilisation
de push mobile Amazon SNS (p. 87). Pour plus d'informations sur l'utilisation de l'API Amazon
SNS, consultez la page Etape 5 : Envoi d'un message de notification push à une application à l'aide
d'Amazon SNS et de WNS (p. 85).
Etape 1 : Configuration de votre application pour la
réception de messages de notification push
Pour envoyer un message de notification push à votre application, vous devez activer l'application pour
le service WNS. Pour plus d'informations, consultez la page Services de notification Windows Push.
API Version 2010-03-31
84
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Obtention d'une URI de
notification push à partir de WNS
Etape 2 : Obtention d'une URI de notification push à
partir de WNS
Pour créer un point de terminaison mobile avec Amazon SNS, vous avez besoin d'une URI de
notification push provenant de WNS. Pour plus d'informations, consultez la page Services de
notification Windows Push.
Etape 3 : Obtention d'un identificateur de sécurité du
package à partir de WNS
Pour créer un point de terminaison mobile avec Amazon SNS, vous avez besoin d'un identificateur
de sécurité du package provenant de WNS. Pour plus d'informations, consultez la page Services de
notification Windows Push.
Etape 4 : Obtention d'une clé secrète à partir de
WNS
Pour créer un point de terminaison mobile avec Amazon SNS, vous avez besoin d'une clé secrète
provenant de WNS. Pour plus d'informations, consultez la page Services de notification Windows
Push.
Etape 5 : Envoi d'un message de notification push à
une application à l'aide d'Amazon SNS et de WNS
Cette section décrit comment utiliser les informations prérequises pour envoyer un message de
notification push à votre application à l'aide d'Amazon SNS et de WNS. Ajoutez les informations
collectées sur les prérequis à l'exemple de fichier AWS SNSMobilePush.java, qui est inclus dans le
fichier snsmobilepush.zip.
Note
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
Pour ajouter l'exemple à Eclipse
1.
Dans Eclipse, créez un projet Java (Fichier | Nouveau | Projet Java).
2.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
3.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le fichier
AwsCredentials.properties et ajoutez vos informations d'identification de sécurité AWS.
API Version 2010-03-31
85
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Envoi d'un message de notification push à
une application à l'aide d'Amazon SNS et de WNS
Pour ajouter le kit AWS SDK for Java au chemin de génération
1.
Cliquez avec le bouton droit de la souris sur le dossier du projet Java, cliquez sur Chemin de
génération, puis sur Configurer le chemin de génération...
2.
Cliquez sur l'onglet Bibliothèques, puis sur Ajouter une bibliothèque...
3.
Cliquez sur AWS SDK pour Java, puis sur Suivant, et enfin sur Terminer.
Pour ajouter les informations sur les prérequis au fichier SNSMobilePush.java
1.
Dans le dossier SNSSamples\src\com\amazonaws\sns\samples\mobilepush, ouvrez le
fichier SNSMobilePush.java dans Eclipse et supprimez la mise en commentaire de
sample.demoWNSAppNotification();. Il doit ressembler à l'exemple ci-dessous.
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.
Recherchez la méthode demoWNSAppNotification et entrez les valeurs de chaîne pour l'URI
de notification push, l'identificateur de sécurité du package et la clé secrète.
3.
Saisissez un nom pour votre application. Les noms d'application doivent être constitués
uniquement de lettres majuscules et minuscules ASCII, de chiffres, de traits de soulignement,
de traits d'union et de points, et doivent contenir de 1 à 256 caractères. Par exemple, elle doit
ressembler à la ligne suivante :
String applicationName = "wnspushapp";
4.
Exécutez l'application. Une sortie similaire à la suivante doit s'afficher dans la fenêtre de sortie de
votre IDE :
===========================================
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}
Sur votre appareil Windows, vous devez voir un message de notification push s'afficher dans
l'application.
API Version 2010-03-31
86
Amazon Simple Notification
Service Manuel du développeur
Utilisation de push mobile Amazon SNS
Utilisation de push mobile Amazon SNS
Cette section décrit comment utiliser AWS Management Console avec les informations décrites dans
la section Prérequis (p. 42) pour inscrire votre application mobile auprès d'AWS, ajouter des jetons
d'appareil (également appelés ID d'enregistrement), envoyer directement un message à un appareil
mobile et envoyer un message à des appareils abonnés à une rubrique Amazon SNS.
Rubriques
• Inscription de votre application mobile auprès d'AWS (p. 87)
• Ajout de jetons d'appareil ou d'ID d'enregistrement (p. 89)
• Création d'un point de terminaison de plateforme et gestion des jetons d'appareil (p. 92)
• Envoi d'un message directement à un appareil mobile (p. 97)
• Envoi de messages à des appareils mobiles abonnés à une rubrique (p. 97)
• Envoi de charges utiles personnalisées propres à une plateforme dans des messages à
destination d'appareils mobiles (p. 98)
Inscription de votre application mobile auprès
d'AWS
Pour qu'Amazon SNS envoie des messages de notification à des points de terminaison mobiles, que
ce soit directement ou avec des abonnements à une rubrique, vous devez commencer par inscrire
l'application auprès d'AWS. Pour inscrire votre application mobile auprès d'AWS, entrez un nom
représentant votre application, sélectionnez la plateforme qui sera prise en charge et fournissez vos
informations d'identification pour la plateforme de service de notification. Une fois que l'application est
inscrite auprès d'AWS, l’étape suivante consiste à créer un point de terminaison pour l'application et
l'appareil mobile. Le point de terminaison est ensuite utilisé par Amazon SNS pour l'envoi de messages
de notification à l'application et à l'appareil.
Pour inscrire votre application mobile auprès d'AWS
1.
Accédez à la page https://console.aws.amazon.com/sns/v2/home et cliquez sur Create platform
application.
2.
Dans la zone Application name, saisissez un nom représentant votre application.
Les noms d'application doivent être constitués uniquement de lettres majuscules et minuscules
ASCII, de chiffres, de traits de soulignement, de traits d'union et de points, et doivent contenir de 1
à 256 caractères.
3.
Dans la zone Push notification platform, sélectionnez la plateforme auprès de laquelle l'application
est inscrite, puis entrez les informations d'identification appropriées.
Note
Si vous utilisez l'une des plateformes APNS, vous pouvez alors sélectionner Choose file
pour télécharger le fichier .p12 (exporté à partir de Keychain Access) vers Amazon SNS.
Pour obtenir des instructions détaillées sur l'obtention des informations suivantes, consultez la
page Mise en route avec Amazon Device Messaging (p. 45), Mise en route avec Apple Push
Notification Service (p. 50), Mise en route avec Baidu Cloud Push (p. 57), Mise en route
avec Google Cloud Messaging for Android (p. 75), Mise en route avec MPNS (p. 80) ou
Mise en route avec WNS (p. 84).
API Version 2010-03-31
87
Amazon Simple Notification
Service Manuel du développeur
Inscription de votre application mobile auprès d'AWS
Plateforme
Informations d'identification
ADM
ID client – Accédez à la page Amazon Mobile
App Distribution Portal, cliquez sur Apps and
Services, puis sur le nom de votre application
Kindle Fire et enfin sur Security Profile.
Clé secrète du client – Accédez à la page
Amazon Mobile App Distribution Portal, cliquez
sur Apps and Services, puis sur le nom de
votre application Kindle Fire et enfin sur
Security Profile.
APNS
Certificat – Sélectionnez le certificat chiffré
avec un mot de passe et la clé privée, tels
qu'ils ont été exportés à partir de Keychain
Access sur votre ordinateur Mac au format de
fichier .p12.
Mot de passe du certificat – Saisissez le mot
de passe.
APNS_SANDBOX
Certificat – Identique au précédent pour APNS.
Mot de passe du certificat – Identique au
précédent pour APNS.
APNS_VOIP
Certificat – Identique au précédent pour APNS.
Mot de passe du certificat – Identique au
précédent pour APNS.
APNS_VOIP_SANDBOX
Certificat – Identique au précédent pour APNS.
Mot de passe du certificat – Identique au
précédent pour APNS.
MACOS
Certificat – Identique au précédent pour APNS.
Mot de passe du certificat – Identique au
précédent pour APNS.
MACOS_SANDBOX
Certificat – Identique au précédent pour APNS.
Mot de passe du certificat – Identique au
précédent pour APNS.
Baidu
Clé API – Entrez la clé API que vous avez
reçue après la création d'un projet Baidu
Cloud Push, comme décrit dans la section
Etape 3 : Création d'un projet Baidu Cloud
Push (p. 63).
Clé secrète du client – Entrez la clé secrète
que vous avez reçue après la création d'un
projet Baidu Cloud Push, comme décrit dans
la section Etape 3 : Création d'un projet Baidu
Cloud Push (p. 63).
API Version 2010-03-31
88
Amazon Simple Notification
Service Manuel du développeur
Ajout de jetons d'appareil ou d'ID d'enregistrement
Plateforme
Informations d'identification
GCM
Clé API – Accédez à la console des API
Google, cliquez sur API Access et notez la
clé API du serveur avec l'étiquette Key for
server apps (with IP locking). Si vous n'avez
pas encore créé de clé API de serveur, cliquez
sur Create new Server key...
MPNS
Certificat – Entrez le certificat TLS pour
votre compte de développeur Windows,
comme décrit dans la section Etape 4 :
Téléchargement d'un certificat TLS (p. 81).
Clé privée – Entrez la clé privée pour le
certificat TLS, comme décrit dans la section
Etape 4 : Téléchargement d'un certificat
TLS (p. 81).
WNS
Clé secrète du client – Entrez la clé secrète
du client, comme décrit dans la section
Authentification à l'aide du service de
notification Windows Push (WNS).
Identificateur de sécurité du package (SID)
– Entrez le SID, comme décrit dans la
section Authentification à l'aide du service de
notification Windows Push (WNS).
4.
Une fois que vous avez saisi ces informations, cliquez sur Add New App.
L'application est alors inscrite auprès d'Amazon SNS, ce qui crée un objet d'application pour la
plateforme sélectionnée et renvoie le PlatformApplicationArn correspondant.
Ajout de jetons d'appareil ou d'ID d'enregistrement
Lors de l'inscription initiale d'une application et d'un appareil mobile auprès d'un service de notification,
tel qu'Apple Push Notification Service (APNS) et Google Cloud Messaging for Android (GCM),
des jetons d'appareil ou ID d'enregistrement sont renvoyés par le service de notification. Lorsque
vous ajoutez les jetons d'appareil ou ID d'enregistrement à Amazon SNS, ils sont utilisés avec l'API
PlatformApplicationArn pour créer un point de terminaison pour l'application et l'appareil.
Lorsqu'Amazon SNS crée le point de terminaison, un paramètre EndpointArn est renvoyé. Le
paramètre EndpointArn permet à Amazon SNS de savoir vers quels application et appareil mobile
envoyer le message de notification.
Vous pouvez ajouter des jetons d'appareil et ID d'enregistrement à Amazon SNS à l'aide des
méthodes suivantes :
• Ajout manuel d'un jeton unique à AWS à l'aide d'AWS Management Console
• Migration de jetons existants vers AWS à partir d'un fichier CSV à l'aide d'AWS Management
Console
• Téléchargement de plusieurs jetons à l'aide de l'API CreatePlatformEndpoint
API Version 2010-03-31
89
Amazon Simple Notification
Service Manuel du développeur
Ajout de jetons d'appareil ou d'ID d'enregistrement
• Enregistrement de jetons à partir des appareils qui installeront vos applications ultérieurement
Pour ajouter manuellement un jeton d'appareil ou un ID d'enregistrement
1.
Accédez à la page https://console.aws.amazon.com/sns/v2/home, cliquez sur Apps, cliquez sur
votre application, puis sur Add Endpoints.
2.
Dans la zone Endpoint Token, saisissez l'ID de jeton ou d'enregistrement, en fonction du service
de notification choisi. Par exemple, avec ADM et GCM, vous devez entrer l'ID d'enregistrement.
3.
(Facultatif) Dans la zone User Data, entrez des informations arbitraires à associer au point de
terminaison. Amazon SNS n'utilise pas ces données. Les données doivent être au format UTF-8 et
inférieures à 2 Ko.
4.
Enfin, cliquez sur Add Endpoints.
Une fois le point de terminaison créé, vous pouvez soit envoyer des messages directement à
un appareil mobile, soit envoyer des messages à des appareils mobiles qui sont abonnés à une
rubrique.
Pour migrer des jetons existants vers AWS à partir d'un fichier CSV
Vous pouvez migrer des jetons existants qui se trouvent dans un fichier CSV. Le fichier CSV ne
peut pas dépasser 2 Mo. Lors de la migration de plusieurs jetons, il est recommandé d'utiliser l'API
CreatePlatformEndpoint. Chaque jeton du fichier CSV doit être suivi d'une nouvelle ligne. Par
exemple, votre fichier CSV doit se présenter comme suit :
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,SimpleDataNoQuotes
amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN-KMTlmMWxwRkxMaDNST2luZz06,"The following line has no user data"
amzn1.adm-registration.v1.XpvSSUk0Rc3hTVVV--TOKEN--KMTlmMWxwRkxMaDNST2luZz07
APBTKzPGlCyT6E6oOfpdwLpcRNxQp5vCPFiFeru9oZylc22HvZSwQTDgmmw9WdNlXMerUPxmpX0w1,"Different
token style"
1.
Accédez à la page https://console.aws.amazon.com/sns/v2/home, cliquez sur Apps, cliquez sur
votre application, puis sur Add Endpoints.
2.
Cliquez sur Migrate existing tokens over to AWS, sur Choose File, sélectionnez votre fichier CSV,
puis cliquez sur Add Endpoints.
Pour télécharger plusieurs jetons à l'aide de l'API CreatePlatformEndpoint
Les étapes suivantes montrent comment utiliser l'exemple d'application Java (package bulkupload)
fourni par AWS pour télécharger plusieurs jetons (jetons d'appareil ou ID d'enregistrement) vers
Amazon SNS. Vous pouvez utiliser cet exemple d'application pour vous familiariser avec le
téléchargement des jetons existants.
API Version 2010-03-31
90
Amazon Simple Notification
Service Manuel du développeur
Ajout de jetons d'appareil ou d'ID d'enregistrement
Note
Les étapes suivantes utilisent l'IDE Eclipse Java. Elles partent du principe que vous avez
installé le kit AWS SDK for Java et que vous disposez des informations d'identification de
sécurité AWS pour votre compte AWS. Pour de plus amples informations, veuillez consulter la
page AWS SDK for Java. Pour plus de détails sur les informations d'identification, consultez la
section Comment puis-je obtenir les informations d'identification de sécurité ? du manuel AWS
General Reference.
1.
Téléchargez et décompressez le fichier snsmobilepush.zip.
2.
Créez un projet Java dans Eclipse.
3.
Importez le dossier SNSSamples dans le répertoire de niveau supérieur du projet Java
nouvellement créé. Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet
Java, puis cliquez sur Importer. Développez Général, cliquez sur Système de fichiers, puis sur
Suivant, naviguez jusqu'au dossier SNSSamples, cliquez sur OK, puis sur Terminer.
4.
Téléchargez une copie de la bibliothèque OpenCSV et ajoutez-la au chemin de génération du
package bulkupload.
5.
Ouvrez le fichier BulkUpload.properties contenu dans le package bulkupload.
6.
Ajoutez les éléments suivants au fichier BulkUpload.properties :
• L'ApplicationArn auquel vous souhaitez ajouter des points de terminaison.
• Le chemin d'accès absolu de l'emplacement du fichier CSV contenant les jetons.
• Les noms des fichiers CSV (par exemple, goodTokens.csv et badTokens.csv) qui seront
créés pour consigner les jetons analysés correctement par Amazon SNS et ceux qui ont
échoué.
• (Facultatif) Les caractères qui spécifient le délimiteur et la citation dans le fichier CSV contenant
les jetons.
• (Facultatif) Le nombre de threads à utiliser pour créer simultanément des points de terminaison.
La valeur par défaut est 1.
Le fichier BulkUpload.properties terminé doit se présenter comme suit :
applicationarn:arn:aws:sns:us-west-2:111122223333:app/GCM/gcmpushapp
csvfilename:C:\\mytokendirectory\\mytokens.csv
goodfilename:C:\\mylogfiles\\goodtokens.csv
badfilename:C:\\mylogfiles\\badtokens.csv
delimiterchar:'
quotechar:"
numofthreads:5
7.
Exécutez l'application BatchCreatePlatformEndpointSample.java pour télécharger les jetons vers
Amazon SNS.
Dans cet exemple, les points de terminaison créés pour les jetons qui ont été téléchargés
correctement vers Amazon SNS. sont consignés dans goodTokens.csv, tandis que les jetons
incorrects sont consignés dans badTokens.csv. En outre, des journaux STD OUT doivent être
écrits sur la console d'Eclipse, avec un contenu similaire au suivant :
<1>[SUCCESS] The endpoint was created with Arn arn:aws:sns:uswest-2:111122223333:app/GCM/gcmpushapp/165j2214-051z-3176b586-138o3d420071
API Version 2010-03-31
91
Amazon Simple Notification
Service Manuel du développeur
Création d'un point de terminaison de
plateforme et gestion des jetons d'appareil
<2>[ERROR: MALFORMED CSV FILE] Null token found in /mytokendirectory/
mytokens.csv
Pour enregistrer des jetons à partir des appareils qui installeront vos applications
ultérieurement
Vous pouvez utiliser l'une des deux options suivantes :
• Use the Amazon Cognito service : votre application mobile aura besoin d'informations d'identification
pour créer les points de terminaison associés à votre application de plateforme Amazon SNS.
Nous vous conseillons d'utiliser des informations d'identification temporaires qui expirent après une
période donnée. Pour la plupart des scénarios, nous recommandons d'utiliser Amazon Cognito pour
créer des informations d'identification de sécurité temporaires. Pour plus d'informations, consultez
la page Création d'informations d'identification de sécurité temporaires pour des applications
mobiles à l'aide de fournisseurs d'identité. Si vous souhaitez être informé lorsqu'une application
s'enregistre auprès d'Amazon SNS, vous pouvez vous inscrire pour recevoir un événement Amazon
SNS, qui fournira le nouvel ARN de point de terminaison. Vous pouvez également utiliser l'API
ListEndpointByPlatformApplication pour obtenir la liste complète des points de terminaison
inscrits auprès d'Amazon SNS.
• Use a proxy server : si votre infrastructure d'application est déjà configurée pour que vos
applications mobiles soient appelées et inscrites à chaque installation, vous pouvez continuer
à utiliser cette configuration. Votre serveur se comporte comme un proxy et transmet le jeton
d'appareil aux notifications push mobile Amazon SNS, ainsi que des données utilisateur que vous
souhaitez stocker. Dans cette optique, le serveur proxy se connecte à Amazon SNS à l'aide de
vos informations d'identification AWS et utilise l'appel d'API CreatePlatformEndpoint pour
télécharger les informations de jeton. L'ARN de point de terminaison nouvellement créé est renvoyé
et votre serveur peut le stocker pour les appels de publication suivants envoyés à Amazon SNS.
Création d'un point de terminaison de plateforme et
gestion des jetons d'appareil
Lorsqu'une application et un appareil mobile s'inscrivent auprès d'un service de notification push,
ce dernier renvoie un jeton d'appareil. Amazon SNS utilise le jeton d'appareil pour créer un point
de terminaison mobile, auquel il peut envoyer directement des messages de notification push.
Pour plus d'informations, consultez Prérequis (p. 42) et Etapes détaillées push mobile Amazon
SNS (p. 43).
Cette section décrit l'approche recommandée pour la création d'un point de terminaison de plateforme
et la gestion des jetons d'appareil.
Rubriques
• Création d'un point de terminaison de plate-forme (p. 92)
• Pseudo-code (p. 93)
• Exemple Java (p. 94)
• Dépannage (p. 96)
Création d'un point de terminaison de plate-forme
Pour envoyer des notifications à une application à l'aide d'Amazon SNS, le jeton d'appareil de cette
application doit d'abord être inscrit auprès d'Amazon SNS grâce à l'appel de l'action de création
d'un point de terminaison de plateforme. Cette action utilise l'ARN (Amazon Resource Name) de
API Version 2010-03-31
92
Amazon Simple Notification
Service Manuel du développeur
Création d'un point de terminaison de
plateforme et gestion des jetons d'appareil
l'application de plateforme et le jeton d'appareil en tant que paramètres et renvoie l'ARN du point de
terminaison de plateforme créé.
L'action de création de point de terminaison de plateforme effectue les opérations suivantes :
• Si le point de terminaison de plateforme existe déjà, ne le recréez pas. Renvoyez à l'appelant l'ARN
du point de terminaison de plateforme existant.
• Si le point de terminaison de plateforme existe déjà avec le même jeton d'appareil, mais des
paramètres différents, ne le recréez pas. Envoyez une exception à l'appelant.
• Si le point de terminaison de plateforme n'existe pas, créez-le. Renvoyez à l'appelant l'ARN du point
de terminaison de plateforme nouvellement créé.
Vous ne devez pas appeler l'action de création de point de terminaison de plateforme à chaque
démarrage d'une application, car cette approche ne fournit pas toujours un point de terminaison en
état de fonctionnement. Cela peut se produire, par exemple, lorsqu'une application est désinstallée et
réinstallée sur le même appareil et que son point de terminaison existe déjà mais est désactivé. Un
processus d'inscription réussi doit effectuer les opérations suivantes :
1. S'assurer qu'un point de terminaison de plateforme existe pour cette combinaison applicationappareil.
2. Vérifier que le jeton d'appareil dans le point de terminaison de plateforme est le jeton d'appareil
valide le plus récent.
3. S'assurer que le point de terminaison de plateforme est activé et prêt à être utilisé.
Pseudo-code
Le pseudo-code suivant décrit une pratique recommandée pour la création d'un point de terminaison
de plateforme en état de fonctionnement, actuel et activé dans une large gamme de conditions de
démarrage. Cette approche fonctionne s'il s'agit de l'inscription initiale de l'application, si le point de
terminaison de plateforme pour cette application existe déjà et si le point de terminaison de plateforme
est activé, possède le jeton d'appareil correct, etc. Il n'est pas risqué de l'appeler plusieurs fois d'affilée,
car il ne créera pas de points de terminaison de plateforme en double ou ne modifiera pas un point de
terminaison de plateforme existant s'il est déjà à jour et activé.
retrieve the latest device token from the mobile operating system
if (the platform endpoint ARN is not stored)
# this is a first-time registration
call create platform endpoint
store the returned platform endpoint ARN
endif
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 ARN
else
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
endif
endif
API Version 2010-03-31
93
Amazon Simple Notification
Service Manuel du développeur
Création d'un point de terminaison de
plateforme et gestion des jetons d'appareil
Cette approche peut servir chaque fois que l'application veut s'inscrire ou se réinscrire. Elle peut
également être utilisée lors de la notification d'une modification du jeton d'appareil à Amazon SNS.
Dans ce cas, il vous suffit d'appeler l'action avec la dernière valeur de jeton d'appareil. Voici quelques
points à prendre en compte à propos de cette approche :
• Il existe deux cas dans lesquels elle peut appeler l'action de création de point de terminaison de
plateforme. Elle peut être appelée au tout début, lorsque l'application ne connaît pas son propre
ARN de point de terminaison de plateforme, comme cela se produit lors d'une inscription initiale. Elle
est également appelée si l'action initiale d'obtention des attributs de point de terminaison échoue
avec une exception introuvable, comme cela se produit si l'application connaît son ARN de point de
terminaison, mais qu'il a été supprimé.
• L'action d'obtention d'attributs de point de terminaison est appelée pour vérifier l’état du point de
terminaison de plateforme, même si ce dernier vient d’être créé. Cela se produit lorsque le point de
terminaison de plateforme existe déjà mais est désactivé. Dans ce cas, l'action de création de point
de terminaison de plateforme réussit, mais n'active pas le point de terminaison de plateforme. Vous
devez donc vérifier l’état du point de terminaison de plateforme avant d'indiquer la réussite.
Exemple Java
Voici une implémentation du pseudo-code précédent 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;
API Version 2010-03-31
94
Amazon Simple Notification
Service Manuel du développeur
Création d'un point de terminaison de
plateforme et gestion des jetons d'appareil
}
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;
}
API Version 2010-03-31
95
Amazon Simple Notification
Service Manuel du développeur
Création d'un point de terminaison de
plateforme et gestion des jetons d'appareil
/**
* @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,
// 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;
}
}
Il est intéressant de noter à propos de cette implémentation la façon dont
InvalidParameterException est traité dans la méthode createEndpoint. Amazon SNS rejette
les demandes de création de point de terminaison de plateforme lorsqu’un point de terminaison de
plateforme existant comporte le même jeton d'appareil et un champ CustomUserData non nul,
car l'alternative consiste à remplacer (et donc à perdre) le champ CustomUserData. La méthode
createEndpoint dans le code précédent capture l'exception InvalidParameterException
renvoyée par Amazon SNS, vérifie si elle a été renvoyée pour ce motif particulier et, si tel est le cas,
extrait l'ARN du point de terminaison de plateforme existant à partir de l'exception. Cette opération
aboutit, dans la mesure où il existe un point de terminaison de plateforme avec le jeton d'appareil
correct.
Pour plus d'informations, consultez Utilisation d'API push mobile Amazon SNS (p. 108).
Dépannage
Appel répété de la création du point de terminaison de plateforme avec un
jeton d'appareil obsolète
En particulier pour les points de terminaison GCM, vous pouvez penser qu'il est préférable de stocker
le premier jeton d'appareil émis par l'application, puis d'appeler la création du point de terminaison de
plateforme avec ce jeton d'appareil à chaque démarrage de l'application. Cela peut sembler correct
dans la mesure où l'application n'a pas à gérer l’état du jeton d'appareil et où Amazon SNS met
automatiquement à jour le jeton d'appareil à l'aide de sa valeur la plus récente. Cependant, cette
solution présente un certain nombre de problèmes graves :
• Amazon SNS s'appuie sur les commentaires de GCM pour mettre à jour les jetons d'appareil qui
ont expiré à l'aide des nouveaux jetons d'appareil. GCM conserve des informations sur les anciens
jetons d'appareil pendant un certain temps, mais pas indéfiniment. Une fois que GCM a oublié la
connexion entre l'ancien jeton d'appareil et le nouveau, Amazon SNS ne peut plus mettre à jour le
jeton d'appareil stocké dans le point de terminaison de plateforme avec la valeur correcte ; au lieu de
cela, il désactive simplement le point de terminaison de plateforme.
• L'application de plateforme contient plusieurs points de terminaison de plateforme correspondant au
même jeton d'appareil.
• Amazon SNS impose une limite au nombre de points de terminaison de plateforme qui peuvent
être créés en commençant par le même jeton d'appareil. Enfin, la création de nouveaux points de
API Version 2010-03-31
96
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message directement à un appareil mobile
terminaison échoue avec une exception de paramètre non valide et le message d'erreur suivant :
« This endpoint is already registered with a different token ».
Réactivation d'un point de terminaison de plateforme associé à un jeton
d'appareil non valide
Lorsqu'une plateforme mobile (telle qu'APNS ou GCM) informe Amazon SNS que le jeton d'appareil
utilisé dans la demande de publication n'est pas valide, Amazon SNS désactive le point de terminaison
de plateforme associé à ce jeton d'appareil. Amazon SNS rejettera ensuite les publications ultérieures
dans ce jeton d'appareil. Bien que vous puissiez penser qu'il est préférable de simplement réactiver
le point de terminaison de plateforme et de continuer la publication, dans la plupart des cas, cela ne
fonctionnera pas : les messages qui sont publiés ne sont pas diffusés et le point de terminaison de
plateforme est à nouveau désactivé peu de temps après.
En effet, cela vient du fait que le jeton d'appareil associé au point de terminaison de plateforme est
réellement non valide. Les diffusions à ce point de terminaison ne peuvent pas réussir, car il ne
correspond plus à aucune application installée. Lors de la prochaine publication, la plateforme mobile
informera à nouveau Amazon SNS que le jeton d'appareil n'est pas valide et Amazon SNS désactivera
à nouveau le point de terminaison de plateforme.
Pour réactiver un point de terminaison de plateforme désactivé, ce dernier doit être associé à un jeton
d'appareil valide (avec un appel d'action de définition d'attributs de point de terminaison), puis activé.
Les diffusions à ce point de terminaison de plateforme ne réussiront qu'à ce moment-là. La seule
fois où la réactivation d'un point de terminaison de plateforme fonctionne sans mise à jour de son
jeton d'appareil est lorsqu'un jeton d'appareil associé à ce point de terminaison qui était non valide
redevient valide. Cela peut se produire, par exemple, lorsqu'une application a été désinstallée, puis
réinstallée sur le même appareil mobile et reçoit le même jeton d'appareil. L'approche présentée cidessus effectue cette opération, en s'assurant de ne réactiver un point de terminaison de plateforme
qu'après avoir vérifié que le jeton d'appareil qui lui est associé est le dernier en date disponible.
Envoi d'un message directement à un appareil
mobile
Vous pouvez envoyer des messages de notification push Amazon SNS directement à un point de
terminaison, qui représente une application et un appareil mobile, en procédant comme suit.
Pour envoyer directement un message
1.
Accédez à la page https://console.aws.amazon.com/sns/v2/home.
2.
Dans le volet de gauche Navigation, cliquez sur Apps, puis sur l'application à laquelle vous
souhaitez envoyer un message.
Sur l'écran Application Details, sélectionnez Endpoint Actions, puis cliquez sur Publish.
Dans la boîte de dialogue Publish, entrez le message qui s'affichera dans l'application sur
l'appareil mobile, puis cliquez sur Publish.
3.
4.
Le message de notification sera ensuite envoyé d'Amazon SNS au service de notification de
plateforme, qui le transmettra ensuite à l'application.
Envoi de messages à des appareils mobiles
abonnés à une rubrique
Vous pouvez également utiliser Amazon SNS pour envoyer des messages à des points de terminaison
mobiles abonnés à une rubrique. Le concept est le même que l'abonnement d'autres types de point
API Version 2010-03-31
97
Amazon Simple Notification
Service Manuel du développeur
Envoi de charges utiles personnalisées propres
à une plateforme à des appareils mobiles
de terminaison (Amazon SQS, HTTP/S, e-mail et SMS) à une rubrique, comme décrit dans la page
Présentation d'Amazon Simple Notification Service (p. 1). La différence réside dans le fait qu'Amazon
SNS communique à l'aide des services de notification, afin que les points de terminaison mobiles
abonnés reçoivent les notifications envoyées à la rubrique.
Pour envoyer à des points de terminaison abonnés à une rubrique
1.
Suivez les étapes décrites dans la section Abonnement à une rubrique (p. 6). Il vous suffit
de sélectionner Application dans le menu déroulant Protocol, puis de saisir l'ARN du point de
terminaison mobile dans la zone Endpoint.
2.
Exécutez la procédure de publication des messages dans une rubrique, décrite sur la page
Publication dans une rubrique (p. 7). Tous les points de terminaison mobiles qui sont abonnés à la
rubrique recevront alors le message.
Envoi de charges utiles personnalisées propres à
une plateforme dans des messages à destination
d'appareils mobiles
Vous pouvez utiliser les API ou la console Amazon SNS pour envoyer des charges utiles
personnalisées propres à une plateforme dans des messages à destination d'appareils mobiles.
Les sections suivantes décrivent l'utilisation de la console Amazon SNS pour créer et envoyer des
charges utiles personnalisées propres à une plateforme pour chacun des services de notification pris
en charge. Pour plus d'informations sur l'utilisation des API Amazon SNS, consultez la page Utilisation
d'API push mobile Amazon SNS (p. 108) et l'exemple de fichier AWS SNSMobilePush.java, qui est
inclus dans le fichier snsmobilepush.zip.
Données de message au format JSON
Lors de l'envoi de charges utiles propres à une plateforme dans des messages à l'aide de la console
Amazon SNS, les données doivent être des chaînes de paires clé-valeur au format JSON avec
guillemets d'échappement. L'exemple suivant, notamment la mise en forme et les espaces pour
faciliter la lecture, illustre un exemple de message personnalisé pour la plateforme GCM avec une
paire clé-valeur dans le corps du message et au format JSON.
{
"GCM":"{
"data":{
"message":"Check out these awesome deals!",
"url":"www.amazon.com"
}
}"
}
Lors de l'envoi de messages à l'aide de la console, les guillemets doivent contenir une séquence
d’échappement (\ "), comme le montre l'exemple suivant.
{
"GCM":"{
\"data\":{
API Version 2010-03-31
98
Amazon Simple Notification
Service Manuel du développeur
Envoi de charges utiles personnalisées propres
à une plateforme à des appareils mobiles
\"message\":\"Check out these awesome deals!\",
\"url\":\"www.amazon.com\"
}
}"
}
Lorsqu'il est saisi dans la console Amazon SNS, l'exemple doit se présenter comme suit :
{
"GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":
\"www.amazon.com\"}}"
}
Paires clé-valeur spécifiques à une plateforme
Outre l'envoi de données personnalisées sous forme de paires clé-valeur, vous pouvez également
envoyer des paires clé-valeur spécifiques à une plateforme au sein de la charge utile JSON. Par
exemple, si vous souhaitez inclure les paramètres GCM time_to_live et collapse_key après les
paires clé-valeur de données personnalisées incluses dans le paramètre GCM data, la charge utile
JSON sans guillemets d’échappement se présente comme suit :
{
"GCM":"{
"data":{
"message":"Check out these awesome deals!",
"url":"www.amazon.com"
},
"time_to_live": 3600,
"collapse_key": "deals"
}"
}
Lorsqu'il est saisi dans la console Amazon SNS, l'exemple doit être semblable au suivant :
{
"GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":
\"www.amazon.com\"},\"time_to_live\": 3600,\"collapse_key\":\"deals\"}"
}
Pour une liste des paires clé-valeur prises en charge dans chacun des services de notification push
pris en charge dans Amazon SNS, consultez les liens suivants :
• APNS – Apple Push Notification Service
• GCM – HTTP Connection Server Reference
• ADM – Envoi d'un message
API Version 2010-03-31
99
Amazon Simple Notification
Service Manuel du développeur
Attributs d'application pour l’état de diffusion du message
Messages envoyés à une application sur plusieurs plateformes
Pour envoyer un message à une application installée sur les appareils de plusieurs plateformes,
comme GCM et APNS, vous devez commencer par abonner les points de terminaison mobiles à une
rubrique dans Amazon SNS, puis publier le message dans la rubrique. L'exemple suivant montre un
message à envoyer aux points de terminaison mobiles abonnés sur APNS, GCM et 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\" }}"
}
Utilisation des attributs d'application Amazon SNS
pour l’état de diffusion du message
Amazon Simple Notification Service (Amazon SNS) prend en charge la consignation de l’état
de diffusion des messages de notification push. Une fois que vous avez configuré les attributs
d'application, les entrées de journal seront envoyées à CloudWatch Logs pour les messages envoyés
aux points de terminaison mobiles à partir d'Amazon SNS. La consignation de l'état de diffusion du
message permet de fournir des informations opérationnelles plus précises, par exemple :
• Savoir si un message de notification push a été diffusé au service de notification push à partir
d'Amazon SNS.
• Identifier la réponse envoyée par le service de notification push à Amazon SNS.
• Déterminer la durée de conservation du message (la durée entre l'horodatage de publication et juste
avant sa remise à un service de notification push).
Pour configurer les attributs d'application pour l’état de diffusion du message, vous pouvez utiliser
AWS Management Console, les kits de développement logiciel (SDK) AWS ou l'API de requête.
Rubriques
• Configuration des attributs de l'état de diffusion du message avec AWS Management
Console (p. 101)
• Exemples de CloudWatch pour l'état de diffusion du message Amazon SNS (p. 101)
• Configuration des attributs de l'état de diffusion du message avec les kits de développement
logiciel AWS (p. 102)
• Codes de réponse de la plateforme (p. 103)
API Version 2010-03-31
100
Amazon Simple Notification
Service Manuel du développeur
Configuration des attributs de l'état de diffusion
du message avec AWS Management Console
Configuration des attributs de l'état de diffusion du
message avec AWS Management Console
Vous pouvez configurer les attributs de l'état de diffusion du message avec AWS Management
Console.
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de gauche Navigation, cliquez sur Apps, puis sur l'application contenant les points
de terminaison pour lesquels vous voulez recevoir des CloudWatch Logs.
3.
Cliquez sur Application Actions, puis sur Delivery Status.
4.
Dans la boîte de dialogue Delivery Status, cliquez sur Create IAM Roles.
Vous serez ensuite redirigé vers la console IAM.
5.
Cliquez sur Allow pour permettre à Amazon SNS d'accéder en écriture aux CloudWatch Logs en
votre nom.
6.
Maintenant, de retour dans la boîte de dialogue Delivery Status, saisissez un nombre dans le
champ Percentage of Success to Sample (0-100) pour indiquer le pourcentage de messages
envoyés pour lequel vous souhaitez recevoir des CloudWatch Logs.
Note
Une fois que vous avez configuré les attributs d'application pour l'état de diffusion du
message, toutes les diffusions de message ayant échoué génèrent des CloudWatch Logs.
7.
Enfin, cliquez sur Save Configuration. Vous êtes maintenant en mesure d'afficher et d'analyser
les CloudWatch Logs contenant l'état de diffusion du message. Pour plus d'informations sur
l'utilisation de CloudWatch, consultez la Documentation CloudWatch.
Exemples de CloudWatch pour l'état de diffusion du
message Amazon SNS
Une fois que vous avez configuré les attributs de l'état de diffusion du message pour un point de
terminaison d'application, des CloudWatch Logs sont générés. Les exemples de journaux, au format
JSON, se présentent comme suit :
SUCCESS
{
"status": "SUCCESS",
"notification": {
"timestamp": "2015-01-26 23:07:39.54",
"messageId": "9655abe4-6ed6-5734-89f7-e6a6a42de02a"
},
"delivery": {
"statusCode": 200,
"dwellTimeMs": 65,
"token": "Examplei7fFachkJ1xjlqT64RaBkcGHochmf1VQAr9kIBJtKjp7fedYPzEwT_Pq3Tu0lroqro1cwWJUvgkcPPYcaXCpPWmG3BqnwiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw",
"attempts": 1,
"providerResponse": "{\"multicast_id\":5138139752481671853,\"success
\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":
\"0:1422313659698010%d6ba8edff9fd7ecd\"}]}",
API Version 2010-03-31
101
Amazon Simple Notification
Service Manuel du développeur
Configuration des attributs de l'état de diffusion du
message avec les kits de développement logiciel AWS
"destination": "arn:aws:sns:us-east-1:111122223333:endpoint/GCM/
GCMPushApp/c23e42de-3699-3639-84dd-65f84474629d"
}
}
ÉCHEC
{
"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"
}
}
Pour obtenir une liste des codes de réponse du service de notification push, consultez la page Codes
de réponse de la plateforme (p. 103).
Configuration des attributs de l'état de diffusion du
message avec les kits de développement logiciel
AWS
Les kits de développement logiciel (SDK) AWS fournissent des API dans plusieurs langages pour
utiliser les attributs de l’état de diffusion du message avec Amazon SNS.
L'exemple Java suivant montre comment utiliser l'API SetPlatformApplicationAttributes
pour configurer les attributs d'application pour l'état de diffusion des messages de notification
push. Vous pouvez utiliser les attributs suivants pour l’état de diffusion du message :
SuccessFeedbackRoleArn, FailureFeedbackRoleArn et SuccessFeedbackSampleRate.
Les attributs SuccessFeedbackRoleArn et FailureFeedbackRoleArn sont utilisés pour
permettre à Amazon SNS d'accéder en écriture aux CloudWatch Logs en votre nom. L'attribut
SuccessFeedbackSampleRate permet de spécifier le pourcentage de la fréquence d'échantillonnage
(0-100) des messages diffusés avec succès. Une fois que vous avez configuré l'attribut
FailureFeedbackRoleArn, toutes les diffusions de message qui ont échoué génèrent des
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");
API Version 2010-03-31
102
Amazon Simple Notification
Service Manuel du développeur
Codes de réponse de la plateforme
attributes.put("SuccessFeedbackSampleRate", "5");
setPlatformApplicationAttributesRequest.withAttributes(attributes);
setPlatformApplicationAttributesRequest.setPlatformApplicationArn("arn:aws:sns:uswest-2:111122223333:app/GCM/GCMPushApp");
sns.setPlatformApplicationAttributes(setPlatformApplicationAttributesRequest);
Pour plus d'informations sur le SDK pour Java, consultez le manuel Mise en route avec le kit AWS
SDK for Java.
Codes de réponse de la plateforme
Voici une liste de liens pour les codes de réponse du service de notification push :
Service de notification en mode push
Codes de réponse
Amazon Device Messaging (ADM)
Consultez la section « Response Format » dans
le document Sending a Message via Amazon
Device Messaging.
Apple Push Notification Service (APNS)
Consultez Codes in error-response packet dans
l'iOS Developer Library
Google Cloud Messaging for Android (GCM)
Consultez la page Downstream message
error response codes dans le document GCM
Connection Server Reference.
Microsoft Push Notification Service for Windows
Phone (MPNS)
Consultez la page Push Notification Service
response codes.
Windows Push Notification Services (WNS)
Consultez la section « Response codes » dans
Push notification service request and response
headers.
Notifications d’événements d'application
Amazon SNS prend en charge le déclenchement de notifications lorsque certains événements
d'application se produisent. Vous pouvez ensuite effectuer une action par programmation sur cet
événement. Votre application doit inclure la prise en charge d'un service de notification push tel
qu'Apple Push Notification Service (APNS), Google Cloud Messaging for Android (GCM) ou Windows
Push Notification Services (WNS). Définissez les notifications d’événements d'application à l'aide de
la console Amazon SNS, de l'interface de ligne de commande AWS ou des kits de développement
logiciel AWS.
Rubriques
• Evénements d'application disponibles (p. 103)
• Envoi de notifications d’événements d'application (p. 104)
Evénements d'application disponibles
Les notifications d’événements d'application suivent la création, la suppression et la mise à jour de
points de terminaison de plateforme individuels, ainsi que les échecs de diffusion. Le nom d'attribut
pour chaque événement d'application est le suivant :
API Version 2010-03-31
103
Amazon Simple Notification
Service Manuel du développeur
Envoi de notifications d’événements d'application
Nom d'attribut
Description
EventEndpointCreated
Une notification est déclenchée lorsqu'un nouveau point de terminaison
de plateforme est ajouté à votre application.
EventEndpointDeleted
Une notification est déclenchée lorsque n'importe quel point de
terminaison de plateforme associé à votre application est supprimé.
EventEndpointUpdated
Une notification est déclenchée lorsque n'importe quel attribut des points
de terminaison de plateforme associés à votre application est modifié.
EventDeliveryFailure
Une notification est déclenchée lorsqu'une diffusion vers n'importe quel
point de terminaison de plateforme associé à votre application fait l'objet
d'une erreur permanente.
Note
Pour suivre les échecs de diffusion du côté application de
plateforme, abonnez-vous aux événements d’état de diffusion du
message pour l'application. Pour plus d'informations, consultez
la page Utilisation des attributs d'application Amazon SNS pour
l'état de diffusion du message.
Chacun des attributs précédents peut être associé à une application. L'application peut ensuite
recevoir ces notifications d’événements.
Envoi de notifications d’événements d'application
Pour envoyer des notifications d’événements d'application, spécifiez une rubrique qui recevra les
notifications pour chaque type d’événement. Lorsqu'Amazon SNS envoie les notifications, la rubrique
peut les acheminer à des points de terminaison qui effectueront l'action par programmation.
Important
Des applications à volume élevé créeront un grand nombre de notifications d’événements
d'application (par exemple, des dizaines de milliers), qui envahiront les points de terminaison
destinés à une utilisation humaine, tels que les adresses e-mail, les numéros de téléphone
et les applications mobiles. Respectez les consignes suivantes lorsque vous envoyez des
notifications d’événements d'application à une rubrique :
• Chaque rubrique qui reçoit des notifications doit contenir uniquement des abonnements pour
des points de terminaison par programmation, tels que des points de terminaison HTTP ou
HTTPS, des files d'attente Amazon SQS ou des fonctions AWS Lambda.
• Pour réduire le volume de traitement qui est déclenché par les notifications, limitez les
abonnements de chaque rubrique à un petit nombre (par exemple, cinq ou moins).
Vous pouvez envoyer des notifications d’événements d'application à l'aide de la console Amazon SNS
de l'AWS Command Line Interface (AWS CLI) ou des kits de développement logiciel AWS.
AWS Management Console
1.
2.
3.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
Dans le volet de navigation du service, sélectionnez Applications.
Choisissez le nom de l'application pour laquelle vous souhaitez envoyer des notifications
d’événements.
API Version 2010-03-31
104
Amazon Simple Notification
Service Manuel du développeur
Envoi de notifications d’événements d'application
4.
Choisissez Actions, Configure events.
5.
Pour chacun des événements pour lesquels vous souhaitez envoyer des notifications
d’événements, tapez l'ARN de la rubrique Amazon SNS qui recevra les notifications.
6.
Choisissez Save configuration. Les notifications d’événements sont définies.
AWS CLI
Exécutez la commande set-platform-application-attributes.
L'exemple suivant définit la même rubrique Amazon SNS pour les quatre événements d'application :
aws sns set-platform-application-attributes
--platform-application-arn arn:aws:sns:us-east-1:12345EXAMPLE:app/GCM/
MyGCMPlatformApplication
--attributes EventEndpointCreated="arn:aws:sns:useast-1:12345EXAMPLE:MyGCMPlatformApplicationEvents",
EventEndpointDeleted="arn:aws:sns:useast-1:12345EXAMPLE:MyGCMPlatformApplicationEvents",
EventEndpointUpdated="arn:aws:sns:useast-1:12345EXAMPLE:MyGCMPlatformApplicationEvents",
EventDeliveryFailure="arn:aws:sns:useast-1:12345EXAMPLE:MyGCMPlatformApplicationEvents"
Kits SDK AWS
Appelez l'une des API suivantes, en fonction de votre plateforme ou langage de programmation cible :
Langage de
programmation ou
plateforme
Liens de référence d'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
Windows PowerShell
Set-SNSPlatformApplicationAttributes
API Version 2010-03-31
105
Amazon Simple Notification
Service Manuel du développeur
Durée de vie Amazon SNS
Utilisation de l'attribut de message de durée de
vie (TTL) Amazon SNS pour les notifications push
mobile
Amazon Simple Notification Service (Amazon SNS) prend en charge la définition d'un attribut de
message de durée de vie (TTL) pour les messages de notification push mobile. Elle vient s'ajouter
à la fonction existante de définition de la durée de vie dans le corps du message Amazon SNS pour
les services de notification push mobile qui la prennent en charge, tels qu'Amazon Device Messaging
(ADM) et Google Cloud Messaging for Android (GCM).
L'attribut de message TTL est utilisé pour spécifier des métadonnées d'expiration relatives à un
message. Cela vous permet d'indiquer le temps mis par le service de notification push, tel qu'Apple
Push Notification Service (APNS) ou GCM, pour diffuser le message au point de terminaison. Si, pour
une raison quelconque (telle que la mise hors tension de l'appareil mobile), le message ne peut pas
être diffusé dans la durée de vie spécifiée, il est supprimé et aucune autre tentative de diffusion n'est
effectuée. Pour spécifier la durée de vie dans des attributs de message, vous pouvez utiliser AWS
Management Console, les kits de développement logiciel (SDK) AWS ou l'API de requête.
Rubriques
• Attributs de message TTL pour les services de notification push (p. 106)
• Ordre de priorité pour déterminer la durée de vie (p. 107)
• Spécification de la durée de vie avec AWS Management Console (p. 107)
• Spécification de la durée de vie avec les kits de développement logiciel (SDK) AWS (p. 107)
Attributs de message TTL pour les services de
notification push
Voici une liste des attributs de message TTL pour les services de notification push qui permettent de
définir quand utiliser les SDK AWS ou l'API de requête :
Service de notification en mode push
Attribut de message TTL
Amazon Device Messaging (ADM)
AWS.SNS.MOBILE.ADM.TTL
Apple Push Notification Service (APNS)
AWS.SNS.MOBILE.APNS.TTL
Apple Push Notification Service Sandbox
(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
Chaque service de notification push gère la durée de vie différemment. Amazon SNS offre une vue
récapitulative de la durée de vie de tous les services de notification push, ce qui facilite la spécification
de la durée de vie. Lorsque vous utilisez AWS Management Console pour indiquer la durée de vie (en
secondes), il vous suffit d'entrer la valeur TTL une fois pour qu'Amazon SNS calcule ensuite la durée
de vie pour chacun des services de notification push sélectionnés lors de la publication du message.
API Version 2010-03-31
106
Amazon Simple Notification
Service Manuel du développeur
Ordre de priorité pour déterminer la durée de vie
La durée de vie est relative à l'heure de publication. Avant de remettre un message de notification
push à un service de notification push spécifique, Amazon SNS calcule la durée de conservation (la
durée entre l'horodatage de publication et juste avant sa remise à un service de notification push) pour
la notification push et transmet la durée de vie restante au service de notification push spécifique.
Si la durée de vie est inférieure à la durée de conservation, Amazon SNS ne tente pas d'effectuer la
publication.
Si vous spécifiez une durée de vie pour un message de notification push, la valeur TTL doit être un
nombre entier positif, à moins que la valeur 0 n'ait une signification spécifique pour le service de
notification push — comme c'est le cas pour APNS et GCM. Si la valeur TTL est définie sur 0 et que
le service de notification push n'a pas de signification spécifique pour 0, Amazon SNS supprime
le message. Pour plus d'informations sur la définition du paramètre TTL sur 0 lors de l'utilisation
d'APNS, consultez le Tableau A-3 Identificateurs d'élément pour les notifications à distance dans la
documentation Binary Provider API. Pour plus d'informations sur la définition du paramètre TTL sur 0
lors de l'utilisation de GCM, consultez la page Durée de vie d'un message.
Ordre de priorité pour déterminer la durée de vie
La priorité utilisée par Amazon SNS pour déterminer la durée de vie pour un message de notification
push se fonde sur l'ordre suivant, où le plus petit nombre a la priorité la plus élevée :
1. Durée de vie de l'attribut de message
2. Durée de vie du corps du message
3. Durée de vie par défaut du service de notification push (varie selon le service)
4. Durée de vie par défaut Amazon SNS (4 semaines)
Si vous définissez des valeurs de durée de vie différentes (une dans les attributs de message et une
autre dans le corps du message) pour le même message, Amazon SNS modifie la durée de vie dans
le corps du message pour qu'elle corresponde à celle spécifiée dans l'attribut du message.
Spécification de la durée de vie avec AWS
Management Console
Vous pouvez spécifier la durée de vie avec AWS Management Console.
1.
2.
3.
4.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
Dans le volet de gauche Navigation, cliquez sur Apps, puis sur l'application contenant les points
de terminaison dont vous souhaitez définir la durée de vie lors de la publication d'un message.
Sélectionnez les points de terminaison dans lesquels publier un message, cliquez sur Endpoint
Actions, puis sur Publish.
Dans la boîte de dialogue Publish, saisissez le nombre de secondes pour le champ Time to Live
(TTL), puis cliquez sur Publish Message.
Spécification de la durée de vie avec les kits de
développement logiciel (SDK) AWS
Les SDK AWS fournissent des API dans plusieurs langages pour utiliser la durée de vie avec Amazon
SNS.
Pour plus d'informations sur le SDK pour Java, consultez le manuel Mise en route avec le kit AWS
SDK for Java.
API Version 2010-03-31
107
Amazon Simple Notification
Service Manuel du développeur
API push mobile Amazon SNS
L'exemple Java suivant montre comment configurer un attribut de message TTL et publier le message
dans un point de terminaison, qui, dans cet exemple, est inscrit auprès de 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);
Pour plus d'informations sur l'utilisation des attributs de message avec Amazon SNS, consultez la page
Utilisation d'attributs de message Amazon SNS (p. 201).
Utilisation d'API push mobile Amazon SNS
Pour utiliser les API push mobile Amazon SNS, vous devez d'abord satisfaire les conditions préalables
requises pour le service de notification push, tel qu'Apple Push Notification Service (APNS) ou Google
Cloud Messaging for Android (GCM). Pour obtenir plus d'informations sur les prérequis, consultez la
page Prérequis (p. 42).
Pour envoyer un message de notification push à une application mobile et un appareil à l'aide
des API, vous devez d'abord utiliser l'action CreatePlatformApplication, qui renvoie un
attribut PlatformApplicationArn. L'attribut PlatformApplicationArn est ensuite utilisé par
CreatePlatformEndpoint, qui renvoie un attribut EndpointArn. Vous pouvez alors utiliser l'attribut
EndpointArn avec l'action Publish pour envoyer un message de notification à une application
mobile et un appareil, ou vous pouvez utiliser l'attribut EndpointArn avec l'action Subscribe pour
l'abonnement à une rubrique. Pour plus d'informations, consultez Etapes détaillées push mobile
Amazon SNS (p. 43).
Les API push mobile Amazon SNS sont les suivantes :
CreatePlatformApplication
Crée un objet d'application de plateforme pour l'un des services de notification push pris en
charge, tels qu'APNS et GCM, auxquels les appareils et les applications mobiles peuvent
s'inscrire. Renvoie un attribut PlatformApplicationArn, qui est utilisé par l'action
CreatePlatformEndpoint.
CreatePlatformEndpoint
Crée un point de terminaison pour un appareil et une application mobile sur l'un des
services de notification push pris en charge. CreatePlatformEndpoint utilise l'attribut
PlatformApplicationArn renvoyé par l'action CreatePlatformApplication. L'attribut
EndpointArn, qui est renvoyé lors de l'utilisation de CreatePlatformEndpoint, est ensuite
utilisé avec l'action Publish pour envoyer un message de notification à une application mobile et
un appareil.
API Version 2010-03-31
108
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
CreateTopic
Crée une rubrique dans laquelle des messages peuvent être publiés.
DeleteEndpoint
Supprime le point de terminaison pour un appareil et une application mobile sur l'un des services
de notification push pris en charge.
DeletePlatformApplication
Supprime un objet d'application de plateforme.
DeleteTopic
Supprime une rubrique et tous ses abonnements.
GetEndpointAttributes
Récupère les attributs de point de terminaison pour un appareil et une application mobile.
GetPlatformApplicationAttributes
Récupère les attributs de l'objet d'application de plateforme.
ListEndpointsByPlatformApplication
Répertorie les points de terminaison et leurs attributs pour des appareils et des applications
mobiles dans un service de notification push pris en charge.
ListPlatformApplications
Répertorie les objets d'application de plateforme pour les services de notification push pris en
charge.
Publish
Envoie un message de notification à tous les points de terminaison abonnés à une rubrique.
SetEndpointAttributes
Définit les attributs d'un point de terminaison pour un appareil et une application mobile.
SetPlatformApplicationAttributes
Définit les attributs de l'objet d'application de plateforme.
Subscribe
Prépare l'abonnement d'un point de terminaison en lui envoyant un message de confirmation.
Pour créer réellement un abonnement, le propriétaire du point de terminaison doit appeler l'action
ConfirmSubscription avec le jeton provenant du message de confirmation.
Désabonnement
Supprime un abonnement.
Erreurs d'API pour push mobile Amazon SNS
Les erreurs qui sont renvoyées par les API Amazon SNS pour push mobile sont répertoriées dans le
tableau suivant. Pour plus d'informations sur les API Amazon SNS pour push mobile, consultez la page
Utilisation d'API push mobile Amazon SNS (p. 108).
Erreur
Description
Code d'état HTTPS
Action qui renvoie cette
erreur
Application Name is
null string
Le nom d'application
requis est défini sur
null.
400
CreatePlatformApplication
Platform Name is null
string
Le nom de plateforme
requis est défini sur
null.
400
CreatePlatformApplication
Platform Name is
invalid
Une valeur non valide
ou hors plage a été
fournie pour le nom de
plateforme.
400
CreatePlatformApplication
API Version 2010-03-31
109
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
APNS — Principal is
not a valid certificate
Un certificat non
400
valide a été fourni
pour le mandataire
APNS, qui est le
certificat SSL. Pour
plus d'informations,
consultez la section
CreatePlatformApplication
dans le manuel
Amazon Simple
Notification Service API
Reference.
CreatePlatformApplication
APNS — Principal is
a valid cert but not in
a .pem format
Un certificat valide
qui n'est pas au
format .pem a
été fourni pour le
mandataire APNS, qui
est le certificat SSL.
400
CreatePlatformApplication
APNS — Prinicipal is
an expired certificate
Un certificat arrivé à
expiration a été fourni
pour le mandataire
APNS, qui est le
certificat SSL.
400
CreatePlatformApplication
APNS — Principal is
not an Apple issued
certificate
Un certificat non émis
par Apple a été fourni
pour le mandataire
APNS qui est le
certificat SSL.
400
CreatePlatformApplication
APNS — Principal is
not provided
Le mandataire APNS,
400
qui est le certificat SSL,
n'a pas été fourni.
CreatePlatformApplication
APNS — Credential is
not provided
L'information
400
d'identification APNS,
qui est la clé privée, n'a
pas été fournie. Pour
plus d'informations,
consultez la section
CreatePlatformApplication
dans le manuel
Amazon Simple
Notification Service API
Reference.
CreatePlatformApplication
APNS — Credential
are not in a valid .pem
format
L'information
d'identification APNS,
qui est la clé privée,
n'est pas dans un
format .pem valide.
CreatePlatformApplication
400
API Version 2010-03-31
110
Action qui renvoie cette
erreur
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
GCM — serverAPIKey
is not provided
L'information
400
d'identification GCM,
qui est la clé API, n'a
pas été fournie. Pour
plus d'informations,
consultez la section
CreatePlatformApplication
dans le manuel
Amazon Simple
Notification Service API
Reference.
CreatePlatformApplication
GCM — serverAPIKey
is empty
L'information
d'identification GCM,
qui est la clé API, est
vide.
400
CreatePlatformApplication
GCM — serverAPIKey
is a null string
L'information
d'identification GCM,
qui est la clé API, est
null.
400
CreatePlatformApplication
GCM — serverAPIKey
is invalid
L'information
d'identification GCM,
qui est la clé API, n'est
pas valide.
400
CreatePlatformApplication
ADM — clientsecret is
not provided
Le code secret du
client requis n'est pas
fourni.
400
CreatePlatformApplication
ADM — clientsecret is
a null string
La chaîne requise pour
le code secret du client
est null.
400
CreatePlatformApplication
ADM — client_secret is
empty string
La chaîne requise pour
le code secret du client
est vide.
400
CreatePlatformApplication
ADM — client_secret is
not valid
La chaîne requise pour
le code secret du client
n'est pas valide.
400
CreatePlatformApplication
ADM — client_id is
empty string
La chaîne requise pour
l'ID client est vide.
400
CreatePlatformApplication
ADM — clientId is not
provided
La chaîne requise pour
l'ID client n'est pas
fournie.
400
CreatePlatformApplication
ADM — clientid is a
null string
La chaîne requise pour
l'ID client est null.
400
CreatePlatformApplication
ADM — client_id is not
valid
La chaîne requise pour
l'ID client n'est pas
valide.
400
CreatePlatformApplication
API Version 2010-03-31
111
Action qui renvoie cette
erreur
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
Action qui renvoie cette
erreur
EventEndpointCreated
has invalid ARN format
Le format d'ARN pour
EventEndpointCreated
n'est pas valide.
400
CreatePlatformApplication
EventEndpointDeleted
has invalid ARN format
Le format d'ARN pour
EventEndpointDeleted
n'est pas valide.
400
CreatePlatformApplication
EventEndpointUpdated
has invalid ARN format
Le format d'ARN pour
EventEndpointUpdated
n'est pas valide.
400
CreatePlatformApplication
EventDeliveryAttemptFailure
Le format d'ARN pour
400
has invalid ARN format EventDeliveryAttemptFailure
n'est pas valide.
CreatePlatformApplication
EventDeliveryFailure
has invalid ARN format
Le format d'ARN pour
EventDeliveryFailure
n'est pas valide.
400
CreatePlatformApplication
EventEndpointCreated
is not an existing Topic
La rubrique
EventEndpointCreated
n'existe pas.
400
CreatePlatformApplication
EventEndpointDeleted
is not an existing Topic
La rubrique
EventEndpointDeleted
n'existe pas.
400
CreatePlatformApplication
EventEndpointUpdated
is not an existing Topic
La rubrique
EventEndpointUpdated
n'existe pas.
400
CreatePlatformApplication
EventDeliveryAttemptFailure
La rubrique
400
is not an existing Topic EventDeliveryAttemptFailure
n'existe pas.
CreatePlatformApplication
EventDeliveryFailure is
not an existing Topic
La rubrique
EventDeliveryFailure
n'existe pas.
400
CreatePlatformApplication
Platform ARN is invalid
L'ARN de plateforme
n'est pas valide.
400
SetPlatformAttributes
Platform ARN is valid
but does not belong to
the user
L'ARN de plateforme
est valide, mais
n'appartient pas à
l'utilisateur.
400
SetPlatformAttributes
API Version 2010-03-31
112
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
APNS — Principal is
not a valid certificate
Un certificat non
400
valide a été fourni
pour le mandataire
APNS, qui est le
certificat SSL. Pour
plus d'informations,
consultez la section
CreatePlatformApplication
dans le manuel
Amazon Simple
Notification Service API
Reference.
SetPlatformAttributes
APNS — Principal is
a valid cert but not in
a .pem format
Un certificat valide
qui n'est pas au
format .pem a
été fourni pour le
mandataire APNS, qui
est le certificat SSL.
400
SetPlatformAttributes
APNS — Prinicipal is
an expired certificate
Un certificat arrivé à
expiration a été fourni
pour le mandataire
APNS, qui est le
certificat SSL.
400
SetPlatformAttributes
APNS — Principal is
not an Apple issued
certificate
Un certificat non émis
par Apple a été fourni
pour le mandataire
APNS qui est le
certificat SSL.
400
SetPlatformAttributes
APNS — Principal is
not provided
Le mandataire APNS,
400
qui est le certificat SSL,
n'a pas été fourni.
SetPlatformAttributes
APNS — Credential is
not provided
L'information
400
d'identification APNS,
qui est la clé privée, n'a
pas été fournie. Pour
plus d'informations,
consultez la section
CreatePlatformApplication
dans le manuel
Amazon Simple
Notification Service API
Reference.
SetPlatformAttributes
APNS — Credential
are not in a valid .pem
format
L'information
d'identification APNS,
qui est la clé privée,
n'est pas dans un
format .pem valide.
SetPlatformAttributes
400
API Version 2010-03-31
113
Action qui renvoie cette
erreur
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
GCM — serverAPIKey
is not provided
L'information
400
d'identification GCM,
qui est la clé API, n'a
pas été fournie. Pour
plus d'informations,
consultez la section
CreatePlatformApplication
dans le manuel
Amazon Simple
Notification Service API
Reference.
SetPlatformAttributes
GCM — serverAPIKey
is a null string
L'information
d'identification GCM,
qui est la clé API, est
null.
400
SetPlatformAttributes
ADM — clientId is not
provided
La chaîne requise pour
l'ID client n'est pas
fournie.
400
SetPlatformAttributes
ADM — clientid is a
null string
La chaîne requise pour
l'ID client est null.
400
SetPlatformAttributes
ADM — clientsecret is
not provided
Le code secret du
client requis n'est pas
fourni.
400
SetPlatformAttributes
ADM — clientsecret is
a null string
La chaîne requise pour
le code secret du client
est null.
400
SetPlatformAttributes
EventEndpointUpdated
has invalid ARN format
Le format d'ARN pour
EventEndpointUpdated
n'est pas valide.
400
SetPlatformAttributes
EventEndpointDeleted
has invalid ARN format
Le format d'ARN pour
EventEndpointDeleted
n'est pas valide.
400
SetPlatformAttributes
EventEndpointUpdated
has invalid ARN format
Le format d'ARN pour
EventEndpointUpdated
n'est pas valide.
400
SetPlatformAttributes
EventDeliveryAttemptFailure
Le format d'ARN pour
400
has invalid ARN format EventDeliveryAttemptFailure
n'est pas valide.
SetPlatformAttributes
EventDeliveryFailure
has invalid ARN format
Le format d'ARN pour
EventDeliveryFailure
n'est pas valide.
400
SetPlatformAttributes
EventEndpointCreated
is not an existing Topic
La rubrique
EventEndpointCreated
n'existe pas.
400
SetPlatformAttributes
API Version 2010-03-31
114
Action qui renvoie cette
erreur
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
Action qui renvoie cette
erreur
EventEndpointDeleted
is not an existing Topic
La rubrique
EventEndpointDeleted
n'existe pas.
400
SetPlatformAttributes
EventEndpointUpdated
is not an existing Topic
La rubrique
EventEndpointUpdated
n'existe pas.
400
SetPlatformAttributes
EventDeliveryAttemptFailure
La rubrique
400
is not an existing Topic EventDeliveryAttemptFailure
n'existe pas.
SetPlatformAttributes
EventDeliveryFailure is
not an existing Topic
La rubrique
EventDeliveryFailure
n'existe pas.
400
SetPlatformAttributes
Platform ARN is invalid
L'ARN de plateforme
n'est pas valide.
400
GetPlatformApplicationAttributes
Platform ARN is valid
but does not belong to
the user
L'ARN de plateforme
est valide, mais
n'appartient pas à
l'utilisateur.
403
GetPlatformApplicationAttributes
Token specified is
invalid
Le jeton spécifié n'est
pas valide.
400
ListPlatformApplications
Platform ARN is invalid
L'ARN de plateforme
n'est pas valide.
400
ListEndpointsByPlatformApplicati
Platform ARN is valid
but does not belong to
the user
L'ARN de plateforme
est valide, mais
n'appartient pas à
l'utilisateur.
404
ListEndpointsByPlatformApplicati
Token specified is
invalid
Le jeton spécifié n'est
pas valide.
400
ListEndpointsByPlatformApplicati
Platform ARN is invalid
L'ARN de plateforme
n'est pas valide.
400
DeletePlatformApplication
Platform ARN is valid
but does not belong to
the user
L'ARN de plateforme
est valide, mais
n'appartient pas à
l'utilisateur.
403
DeletePlatformApplication
Platform ARN is invalid
L'ARN de plateforme
n'est pas valide.
400
CreatePlatformEndpoint
Platform ARN is valid
but does not belong to
the user
L'ARN de plateforme
est valide, mais
n'appartient pas à
l'utilisateur.
404
CreatePlatformEndpoint
Token is not specified
Le jeton n'est pas
spécifié.
400
CreatePlatformEndpoint
API Version 2010-03-31
115
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
Action qui renvoie cette
erreur
Token is not of correct
length
La longueur du jeton
est incorrecte.
400
CreatePlatformEndpoint
Customer User data is
too large
Les données utilisateur
du client ne doivent
pas dépasser
2 048 octets en
encodage UTF-8.
400
CreatePlatformEndpoint
Endpoint ARN is invalid L'ARN du point de
terminaison n'est pas
valide.
400
DeleteEndpoint
Endpoint ARN is valid
but does not belong to
the user
403
DeleteEndpoint
Endpoint ARN is invalid L'ARN du point de
terminaison n'est pas
valide.
400
SetEndpointAttributes
Endpoint ARN is valid
but does not belong to
the user
L'ARN du point de
terminaison est valide,
mais n'appartient pas à
l'utilisateur.
403
SetEndpointAttributes
Token is not specified
Le jeton n'est pas
spécifié.
400
SetEndpointAttributes
Token is not of correct
length
La longueur du jeton
est incorrecte.
400
SetEndpointAttributes
Customer User data is
too large
Les données utilisateur
du client ne doivent
pas dépasser
2 048 octets en
encodage UTF-8.
400
SetEndpointAttributes
Endpoint ARN is invalid L'ARN du point de
terminaison n'est pas
valide.
400
GetEndpointAttributes
Endpoint ARN is valid
but does not belong to
the user
L'ARN du point de
terminaison est valide,
mais n'appartient pas à
l'utilisateur.
403
GetEndpointAttributes
Target ARN is invalid
L'ARN cible n'est pas
valide.
400
Publish
Target ARN is valid but
does not belong to the
user
L'ARN cible est valide,
mais n'appartient pas à
l'utilisateur.
403
Publish
Message format is
invalid
Le format du message
n'est pas valide.
400
Publish
L'ARN du point de
terminaison est valide,
mais n'appartient pas à
l'utilisateur.
API Version 2010-03-31
116
Amazon Simple Notification
Service Manuel du développeur
Erreurs d'API
Erreur
Description
Code d'état HTTPS
Action qui renvoie cette
erreur
Message size is larger
than supported by
protocol/end-service
La taille du message
est supérieure à la
taille prise en charge
par le protocole/service
final.
400
Publish
API Version 2010-03-31
117
Amazon Simple Notification
Service Manuel du développeur
Envoi de messages Amazon SNS à
des files d'attente Amazon SQS
Amazon SNS travaille en étroite collaboration avec Amazon Simple Queue Service (Amazon
SQS). Les deux services offrent différents avantages aux développeurs. Amazon SNS permet
aux applications d'envoyer des messages à caractère urgent à plusieurs abonnés par le biais d'un
mécanisme « push », qui évite d'avoir à rechercher ou « interroger » périodiquement des mises à
jour. Amazon SQS est un service de mise en file d'attente des messages utilisé par les applications
distribuées pour échanger des messages via un modèle d'interrogation. Il peut être utilisé pour
séparer les éléments d'envoi et de réception, sans — qu'il soit nécessaire que tous les éléments
soient disponibles simultanément. En utilisant Amazon SNS et Amazon SQS ensemble, les messages
peuvent être envoyés aux applications qui exigent une notification immédiate d'un évènement et ils
peuvent également rester dans une file d'attente Amazon SQS, afin que d'autres applications puissent
les traiter ultérieurement.
Lorsque vous abonnez une file d'attente Amazon SQS à une rubrique Amazon SNS et que vous
publiez un message dans cette rubrique, Amazon SNS envoie un message Amazon SQS à la file
d'attente abonnée. Le message Amazon SQS contient l'objet et le message ayant été publiés dans
la rubrique, ainsi que les métadonnées relatives au message, dans un document JSON. Le message
Amazon SQS se présentera comme le document JSON suivant.
{
"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:uswest-2:123456789012:MyTopic:c7fe3a54-ab0e-4ec2-88e0-db410a0f2bee"
API Version 2010-03-31
118
Amazon Simple Notification
Service Manuel du développeur
Etape 1. Obtention de l'ARN de
la file d'attente et de la rubrique
}
Note
Au lieu de suivre les étapes ci-dessous, vous pouvez maintenant abonner une file d'attente
Amazon SQS à une rubrique Amazon SNS à l'aide de la console Amazon SQS, ce qui
simplifie le processus. Pour plus d'informations, consultez la page Abonnement d'une file
d'attente à une rubrique Amazon SNS.
Pour permettre à une rubrique Amazon SNS d'envoyer des messages à une file d'attente Amazon
SQS, procédez comme suit :
1. Obtenez l'Amazon Resource Name (ARN) de la file d'attente à laquelle vous souhaitez envoyer des
messages et de la rubrique à laquelle vous souhaitez abonner la file d'attente. (p. 119)
2. Accordez l'autorisation sqs:SendMessage à la rubrique Amazon SNS afin qu’elle puisse envoyer
des messages à la file d'attente. (p. 120)
3. Abonnez la file d'attente à la rubrique Amazon SNS. (p. 121)
4. Accordez aux utilisateurs IAM ou aux comptes AWS les autorisations appropriées pour effectuer
une publication dans la rubrique Amazon SNS et lire des messages à partir de la file d'attente
Amazon SQS. (p. 121)
5. Testez la procédure en publiant un message dans la rubrique et en lisant le message à partir de la
file d'attente. (p. 124)
Pour savoir comment configurer une rubrique pour envoyer des messages à une file d'attente située
dans un autre compte AWS, consultez la page Envoi de messages Amazon SNS à une file d'attente
Amazon SQS d'un autre compte (p. 125).
Pour obtenir un modèle AWS CloudFormation créant une rubrique qui envoie des messages à deux
files d'attente, consultez la page Utilisation d'un modèle AWS CloudFormation pour créer une rubrique
qui envoie des messages à des files d'attente Amazon SQS (p. 128).
Etape 1. Obtention de l'ARN de la file d'attente et
de la rubrique
Lorsque vous abonnez une file d'attente à votre rubrique, vous avez besoin d'une copie de l'ARN de la
file d'attente. De même, lorsque vous accordez à la rubrique l'autorisation d'envoyer des messages à
la file d'attente, vous avez besoin d'une copie de l'ARN de la rubrique.
Pour obtenir l'ARN de la file d'attente, vous pouvez utiliser la console Amazon SQS ou l'action d'API
GetQueueAttributes.
Pour obtenir l'ARN de la file d'attente à partir de la console Amazon SQS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SQS à l'adresse
https://console.aws.amazon.com/sqs/.
2.
Cochez la case correspondant à la file d'attente dont vous souhaitez obtenir l'ARN.
3.
Sur l'onglet Details, copiez la valeur de l'ARN afin que vous puissiez l'utiliser pour l'abonnement à
la rubrique Amazon SNS.
Pour obtenir l'ARN de la rubrique, vous pouvez utiliser la console Amazon SNS, la commande sns-gettopic-attributes, ou l'action d'API GetQueueAttributes.
API Version 2010-03-31
119
Amazon Simple Notification
Service Manuel du développeur
Etape 2. Autorisation d'envoi de messages à la file
d'attente Amazon SQS pour la rubrique Amazon SNS
Pour obtenir l'ARN de la rubrique à partir de la console Amazon SNS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation, sélectionnez la rubrique dont vous souhaitez obtenir l'ARN.
3.
Dans le panneau Topic Details, copiez la valeur du champ Topic ARN afin de pouvoir l'utiliser pour
accorder à la rubrique Amazon SNS l'autorisation d'envoyer des messages à la file d'attente.
Etape 2. Autorisation d'envoi de messages à
la file d'attente Amazon SQS pour la rubrique
Amazon SNS
Pour qu'une rubrique Amazon SNS soit en mesure d'envoyer des messages à une file d'attente, vous
devez définir une stratégie sur la file d'attente qui permet à la rubrique Amazon SNS d'effectuer l'action
sqs:SendMessage.
Avant d'abonner une file d'attente à une rubrique, vous avez besoin d'une rubrique et d'une file
d'attente. Si vous n'avez pas encore créé de rubrique ou de file d'attente, faites-le maintenant. Pour
plus d'informations, consultez Création d'une rubrique et Création d'une file d'attente dans le Amazon
Simple Queue Service Manuel du développeur.
Pour définir une stratégie sur une file d'attente, vous pouvez utiliser la console Amazon SQS ou l'action
d'API SetQueueAttributes. Avant de commencer, assurez-vous que vous disposez de l'ARN de la
rubrique que vous souhaitez autoriser à envoyer des messages à la file d'attente.
Pour définir une stratégie SendMessage sur une file d'attente à l'aide de la console Amazon
SQS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SQS à l'adresse
https://console.aws.amazon.com/sqs/.
2.
Cochez la case de la file d'attente dont vous souhaitez définir la stratégie, cliquez sur l'onglet
Permissions, puis cliquez sur Add a Permission.
3.
Dans la boîte de dialogue Add a Permission, sélectionnez Allow pour Effect, Everybody (*) pour
Principal, puis SendMessage dans la liste déroulante Actions.
4.
Ajoutez une condition qui autorise l'action pour la rubrique. Cliquez sur Add Conditions (optional),
sélectionnez ArnEquals pour Condition, aws:SourceArn pour Key, puis collez l'ARN de la rubrique
dans le champ Value. Cliquez sur Add Condition. La nouvelle condition doit apparaître au bas de
la zone (vous devrez peut-être faire défiler vers le bas pour la voir).
5.
Cliquez sur Add Permission.
Si vous voulez créer le document de stratégie vous-même, vous devez créer une stratégie semblable à
la suivante. La stratégie permet à MyTopic d'envoyer des messages à MyQueue.
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"MySQSPolicy001",
"Effect":"Allow",
"Principal":"*",
"Action":"sqs:SendMessage",
API Version 2010-03-31
120
Amazon Simple Notification
Service Manuel du développeur
Etape 3. Abonnement de la file
d'attente à la rubrique Amazon SNS
"Resource":"arn:aws:sqs:us-east-1:123456789012:MyQueue",
"Condition":{
"ArnEquals":{
"aws:SourceArn":"arn:aws:sns:us-east-1:123456789012:MyTopic"
}
}
}
]
}
Etape 3. Abonnement de la file d'attente à la
rubrique Amazon SNS
Pour envoyer des messages à une file d'attente via une rubrique, vous devez abonner la file d'attente
à la rubrique Amazon SNS. Spécifiez la file d'attente à l'aide de son ARN. Pour vous abonner à une
rubrique, vous pouvez utiliser la console Amazon SNS, la commande sns-subscribe, ou l'action d'API
Subscribe. Avant de commencer, assurez-vous que vous disposez de l'ARN de la file d'attente que
vous souhaitez abonner.
Pour abonner une file d'attente à une rubrique à l'aide de la console Amazon SNS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation, sélectionnez la rubrique.
3.
Cliquez sur Create Subscription, sélectionnez Amazon SQS pour Protocol, collez l'ARN de la file
d'attente à laquelle vous souhaitez que la rubrique envoie des messages dans le champ Endpoint,
puis cliquez sur Subscribe.
4.
Pour le message Subscription request received!, cliquez sur Close.
Lorsque l'abonnement est confirmé, le champ Subscription ID de votre nouvel abonnement affiche
son ID d'abonnement. Si le propriétaire de la file d'attente crée l'abonnement, ce dernier est
automatiquement confirmé et l'abonnement doit être actif presque immédiatement.
En général, vous abonnez votre propre file d'attente à votre propre rubrique dans votre propre
compte. Cependant, vous pouvez également abonner une file d'attente d'un autre compte à votre
rubrique. Si l'utilisateur qui crée l'abonnement n'est pas le propriétaire de la file d'attente (par
exemple, si un utilisateur du compte A abonne une file d'attente du compte B à une rubrique du
compte A), l'abonnement doit être confirmé. Pour plus d'informations sur l'abonnement d'une
file d'attente d'un autre compte et la confirmation de l'abonnement, consultez la page Envoi de
messages Amazon SNS à une file d'attente Amazon SQS d'un autre compte (p. 125).
Etape 4. Autorisations d'accès aux actions
appropriées de la rubrique et de la file d'attente
pour des utilisateurs
Vous devez utiliser AWS Identity and Access Management (IAM) pour autoriser uniquement les
utilisateurs appropriés à effectuer une publication dans la rubrique Amazon SNS et à lire/supprimer
des messages à partir de la file d'attente Amazon SQS. Pour plus d'informations sur le contrôle des
actions sur les rubriques et les files d'attente pour les utilisateurs IAM, consultez Contrôle de l'accès
API Version 2010-03-31
121
Amazon Simple Notification
Service Manuel du développeur
Ajout d'une stratégie à un utilisateur ou un groupe IAM
des utilisateurs à votre compte AWS et Contrôle de l'accès des utilisateurs à votre compte AWS dans
le Amazon Simple Queue Service Manuel du développeur.
Il existe deux façons de contrôler l'accès à une rubrique ou une file d'attente :
• Ajoutez une stratégie à un utilisateur ou un groupe IAM (p. 122). La façon la plus simple d'accorder
à des utilisateurs des autorisations d'accès à des rubriques ou des files d'attente consiste à créer
un groupe et à lui ajouter la stratégie appropriée, puis à ajouter des utilisateurs à ce groupe. Il est
beaucoup plus facile d'ajouter ou de supprimer des utilisateurs dans un groupe que de suivre les
stratégies que vous définissez pour des utilisateurs individuels.
• Ajoutez une stratégie à une rubrique ou une file d'attente (p. 123). Si vous souhaitez accorder des
autorisations d'accès à une rubrique ou une file d'attente à un autre compte AWS, la seule façon de
procéder consiste à ajouter une stratégie dont le mandataire est le compte AWS auquel vous voulez
octroyer des autorisations.
Vous devez utiliser la première méthode dans la plupart des cas (appliquer des stratégies à des
groupes et gérer les autorisations accordées aux utilisateurs en ajoutant ou supprimant les utilisateurs
appropriés dans les groupes). Si vous avez besoin d'accorder des autorisations à un utilisateur d'un
autre compte, vous devez utiliser la seconde méthode.
Ajout d'une stratégie à un utilisateur ou un groupe
IAM
Si vous avez ajouté la stratégie suivante à un utilisateur ou un groupe IAM, vous devez accorder à cet
utilisateur ou aux membres de ce groupe l'autorisation d'effectuer l'action sns:Publish sur la rubrique
MyTopic.
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"AllowPublishToMyTopic",
"Effect":"Allow",
"Action":"sns:Publish",
"Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic"
}
]
}
Si vous avez ajouté la stratégie suivante à un utilisateur ou un groupe IAM, vous devez accorder à cet
utilisateur ou aux membres de ce groupe l'autorisation d'effectuer les actions sqs:ReceiveMessage
et sqs:DeleteMessage sur les files d'attente MyQueue1 et MyQueue2.
{
"Version":"2012-10-17",
"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"
],
API Version 2010-03-31
122
Amazon Simple Notification
Service Manuel du développeur
Ajout d'une stratégie à une rubrique ou une file d'attente
}
]
}
Ajout d'une stratégie à une rubrique ou une file
d'attente
Les exemples de stratégies suivants montrent comment accorder à un autre compte des autorisations
d'accès à une rubrique et une file d'attente.
Note
Lorsque vous accordez à un autre compte AWS l'accès à une ressource de votre compte,
vous permettez également aux utilisateurs IAM disposant d'autorisations d'accès de niveau
administrateur (accès générique) d'accéder à cette ressource. Tous les autres utilisateurs IAM
de l'autre compte se voient automatiquement refuser l'accès à votre ressource. Si vous voulez
accorder à des utilisateurs IAM spécifiques de ce compte AWS l'accès à votre ressource, le
compte ou un utilisateur IAM disposant d'un accès de niveau administrateur doit déléguer
des autorisations pour la ressource à ces utilisateurs IAM. Pour plus d'informations sur la
délégation entre comptes, consultez la page Activation d'accès entre comptes dans le manuel
Using IAM Guide.
Si vous avez ajouté la stratégie suivante à une rubrique MyTopic dans le compte 123456789012, vous
devez accorder au compte 111122223333 l'autorisation d'effectuer l'action sns:Publish sur cette
rubrique.
{
"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 vous avez ajouté la stratégie suivante à une file d'attente MyQueue dans le compte
123456789012, vous devez accorder au compte 111122223333 l'autorisation d'effectuer les actions
sqs:ReceiveMessage et sqs:DeleteMessage sur cette file d'attente.
{
"Version":"2012-10-17",
"Id":"MyQueuePolicy",
"Statement":[
{
"Sid":"Allow-Processing-Of-Messages-for-Queue",
"Effect":"Allow",
"Principal":{
"AWS":"111122223333"
},
API Version 2010-03-31
123
Amazon Simple Notification
Service Manuel du développeur
Etape 5. Test
"Action":[
"sqs:DeleteMessage",
"sqs:ReceiveMessage"
],
"Resource":[
"arn:aws:sns:us-east-1:123456789012:MyQueue",
]
}
]
}
Etape 5. Test
Vous pouvez tester les abonnements d'une rubrique à une file d'attente en effectuant une publication
dans la rubrique et en affichant le message que la rubrique envoie à la file d'attente.
Pour effectuer une publication dans une rubrique à l'aide de la console Amazon SNS
1.
En utilisant les informations d'identification du compte AWS ou de l'utilisateur IAM disposant d'une
autorisation de publication dans la rubrique, connectez-vous à AWS Management Console et
ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
2.
3.
Dans le volet de navigation, sélectionnez la rubrique et cliquez sur Publish to Topic.
Dans la zone Subject, entrez un objet (par exemple, Test de la publication dans la
file d'attente). Dans la zone Message, saisissez du texte (par exemple, Bonjour !), puis
cliquez sur Publish Message. Le message suivant s'affiche : Your message has been successfully
published.
Pour afficher le message à partir de la rubrique à l'aide de la console Amazon SQS
1.
2.
A l'aide des informations d'identification du compte AWS ou de l'utilisateur IAM disposant
des autorisations permettant d'afficher des messages dans la file d'attente, connectezvous à AWS Management Console et ouvrez la console Amazon SQS à l'adresse https://
console.aws.amazon.com/sqs/.
Cochez la case correspondant à la file d'attente qui est abonnée à la rubrique.
3.
Dans la zone de liste déroulante Queue Action, sélectionnez View/Delete Messages, puis cliquez
sur Start Polling for Messages. Un message de type Notification s'affiche.
4.
Dans la colonne Body, cliquez sur More Details. La zone Message Details contient un document
JSON qui comporte l'objet et le message que vous avez publiés dans la rubrique. Le message se
présente comme le document JSON suivant.
{
"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",
API Version 2010-03-31
124
Amazon Simple Notification
Service Manuel du développeur
Envoi de messages à une file d'attente d'un autre compte
"UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?
Action=Unsubscribe&SubscriptionArn=arn:aws:sns:uswest-2:123456789012:MyTopic:c7fe3a54-ab0e-4ec2-88e0-db410a0f2bee"
}
5.
Cliquez sur Close. Vous venez d'effectuer une publication dans une rubrique qui envoie des
messages de notification à une file d'attente.
Envoi de messages Amazon SNS à une file
d'attente Amazon SQS d'un autre compte
Vous pouvez publier une notification dans une rubrique Amazon SNS avec un ou plusieurs
abonnements à des files d'attente Amazon SQS d'un autre compte. Configurez la rubrique et les files
d'attente de la même manière que vous le feriez s'ils se trouvaient dans le même compte (voir Envoi
de messages Amazon SNS à des files d'attente Amazon SQS (p. 118)). La seule différence réside
dans le traitement de la confirmation d'abonnement, qui varie selon le mode d'abonnement de la file
d'attente à la rubrique.
Rubriques
• Création de l'abonnement par le propriétaire de la file d'attente (p. 125)
• Création de l'abonnement par un utilisateur qui n'est pas le propriétaire de la file
d'attente (p. 126)
Création de l'abonnement par le propriétaire de la
file d'attente
Lorsque le propriétaire de la file d'attente crée l'abonnement, ce dernier ne requiert pas de
confirmation. La file d'attente commence à recevoir des notifications de la rubrique dès que l'action
Subscribe est terminée. Pour permettre au propriétaire de la file d'attente de s'abonner à la rubrique
du propriétaire de la rubrique, ce dernier doit accorder au propriétaire de la file d'attente l'autorisation
d'appeler l'action Subscribe sur la rubrique. Lorsqu'elle est ajoutée à la rubrique MyTopic du
compte 123456789012, la stratégie suivante donne au compte 111122223333 l'autorisation d'appeler
sns:Subscribe sur MyTopic dans le compte 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"
}
]
}
Une fois que cette stratégie a été définie sur MyTopic, un utilisateur peut se connecter à la console
Amazon SNS avec les informations d'identification du compte 111122223333 pour s'abonner à la
rubrique.
API Version 2010-03-31
125
Amazon Simple Notification
Service Manuel du développeur
Création de l'abonnement par un utilisateur
qui n'est pas le propriétaire de la file d'attente
Pour ajouter un abonnement de file d'attente Amazon SQS à une rubrique d'un autre compte à
l'aide de la console Amazon SQS
1.
A l'aide des informations d'identification du compte AWS contenant la file d'attente ou d'un IAM
utilisateur de ce compte, connectez-vous à AWS Management Console et ouvrez la console
Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
2.
Assurez-vous que vous disposez des ARN pour la rubrique et la file d'attente. Vous en aurez
besoin lors de la création de l'abonnement.
3.
Vérifiez que vous avez défini l'autorisation sqs:SendMessage sur la file d'attente afin qu’elle
puisse recevoir des messages de la rubrique. Pour plus d'informations, consultez Etape 2.
Autorisation d'envoi de messages à la file d'attente Amazon SQS pour la rubrique Amazon
SNS (p. 120).
4.
Dans le volet de navigation, sélectionnez SNS Dashboard.
5.
Dans SNS Dashboard, dans la section Additional Actions, cliquez sur Create New Subscription.
6.
Dans la zone Topic ARN, entrez l'ARN de la rubrique.
7.
Pour Protocol, sélectionnez Amazon SQS.
8.
Dans la zone Endpoint, sélectionnez l'ARN de la file d'attente.
9.
Cliquez sur Subscribe.
10. Pour le message Subscription request received!, remarquez le texte vous demandant de confirmer
l'abonnement. Etant donné que vous êtes le propriétaire de la file d'attente, l'abonnement n'a
pas besoin d’être confirmé. Cliquez sur Close. Vous avez terminé le processus d'abonnement et
les messages de notification publiés dans la rubrique peuvent désormais être envoyés à la file
d'attente.
L'utilisateur peut également se servir de la clé d'accès et de la clé secrète du compte
AWS 111122223333 pour émettre la commande sns-subscribe ou appeler l'action d'API Subscribe
pour abonner une file d'attente Amazon SQS à MyTopic dans le compte 123456789012. La commande
sns-subscribe suivante abonne la file d'attente MyQ du compte 111122223333 à la rubrique MyTopic
du compte 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
Pour effectuer des envois, la file d'attente doit disposer d'autorisations pour Amazon SNS.
Création de l'abonnement par un utilisateur qui n'est
pas le propriétaire de la file d'attente
Lorsqu'un utilisateur qui n'est pas le propriétaire de la file d'attente crée l'abonnement (par exemple,
lorsque le propriétaire de la rubrique dans le compte A ajoute un abonnement pour une file d'attente du
compte B), l'abonnement doit être confirmé.
Important
Avant de vous abonner à la rubrique, vérifiez que vous avez défini l'autorisation
sqs:SendMessage sur la file d'attente afin qu’elle puisse recevoir des messages de la
rubrique. Voir Etape 2. Autorisation d'envoi de messages à la file d'attente Amazon SQS pour
la rubrique Amazon SNS (p. 120).
API Version 2010-03-31
126
Amazon Simple Notification
Service Manuel du développeur
Création de l'abonnement par un utilisateur
qui n'est pas le propriétaire de la file d'attente
Lorsque l'utilisateur appelle l'action Subscribe, un message de type SubscriptionConfirmation
est envoyé à la file d'attente et l'abonnement s'affiche dans la console Amazon SNS avec son ID
d'abonnement défini sur Pending Confirmation. Pour confirmer l'abonnement, un utilisateur capable de
lire des messages dans la file d'attente doit accéder à l'URL spécifiée dans la valeur SubscribeURL
du message. Aucune notification publiée dans la rubrique n'est envoyée à la file d'attente, tant que
l'abonnement n'est pas confirmé. Pour confirmer un abonnement, vous pouvez utiliser la console
Amazon SQS ou l'action d'API ReceiveMessage.
Pour confirmer un abonnement à l'aide de la console Amazon SQS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SQS à l'adresse
https://console.aws.amazon.com/sqs/.
2.
Sélectionnez la file d'attente comportant un abonnement à la rubrique en attente.
3.
Dans la zone de liste déroulante Queue Action, sélectionnez View/Delete Messages, puis cliquez
sur Start Polling for Messages. Un message de type SubscriptionConfirmation s'affiche.
4.
Dans la colonne Body, cliquez sur More Details.
5.
Dans la zone de texte, recherchez la valeur SubscribeURL et copiez l'URL. Elle sera similaire à
l'URL suivante.
https://sns.us-west-2.amazonaws.com/?
Action=ConfirmSubscription&TopicArn=arn:aws:sns:uswest-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805d352fe148e56f8cff30f0
API Version 2010-03-31
127
6.
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'un modèle AWS CloudFormation
pour créer une rubrique qui envoie des
à des
files
d'attente
Amazon
SQSpour y accéder. Vous verrez une
Dans un navigateurmessages
web, collez
l'URL
dans
la barre
d'adresse
réponse similaire au document XML suivant.
<ConfirmSubscriptionResponse xmlns="http://sns.amazonaws.com/
doc/2010-03-31/">
<ConfirmSubscriptionResult>
<SubscriptionArn>arn:aws:sns:us-west-2:123456789012:MyTopic:c7fe3a54ab0e-4ec2-88e0-db410a0f2bee</SubscriptionArn>
</ConfirmSubscriptionResult>
<ResponseMetadata>
<RequestId>dd266ecc-7955-11e1-b925-5140d02da9af</RequestId>
</ResponseMetadata>
</ConfirmSubscriptionResponse>
Si vous affichez l'abonnement à la rubrique dans la console Amazon SNS, vous verrez alors que
l'ARN de l'abonnement remplace le message Pending Confirmation dans la colonne Subscription
ID. La file d'attente abonnée est prête à recevoir des messages de la rubrique.
Utilisation d'un modèle AWS CloudFormation pour
créer une rubrique qui envoie des messages à
des files d'attente Amazon SQS
AWS CloudFormation vous permet d'utiliser un fichier de modèle pour créer et configurer
simultanément un ensemble de ressources AWS en tant qu’unité unique. Cette section comporte un
exemple de modèle qui simplifie le déploiement de rubriques qui effectuent des publications dans des
files d'attente. Les modèles exécutent automatiquement les étapes de configuration en créant deux
files d'attente et une rubrique avec des abonnements aux files d'attente, en ajoutant une stratégie aux
files d'attente afin que la rubrique puisse leur envoyer des messages, et en créant des utilisateurs et
des groupes IAM pour contrôler l'accès à ces ressources.
Pour plus d'informations sur le déploiement de ressources AWS à l'aide d'un modèle AWS
CloudFormation, consultez la page Mise en route dans le Guide de l'utilisateur AWS CloudFormation.
Utilisation d'un modèle AWS CloudFormation pour
configurer des rubriques et des files d'attente dans
un compte AWS
Le modèle d'exemple crée une rubrique Amazon SNS qui permet d'envoyer des messages à deux files
d'attente Amazon SQS avec les autorisations appropriées pour permettre aux membres d'un groupe
IAM d'effectuer une publication dans la rubrique et à un autre, de lire les messages en attente. Le
modèle crée également des utilisateurs IAM qui sont ajoutés à chaque groupe.
Vous pouvez télécharger ce modèle (https://s3.amazonaws.com/cloudformation-templates-us-east-1/
SNSToSQS.template) à partir de la page Modèles AWS CloudFormation.
MySNSTopic est configuré pour effectuer une publication dans deux points de terminaison abonnés,
qui sont deux files d'attente Amazon SQS (MyQueue1 et MyQueue2). MyPublishTopicGroup est
un groupe IAM dont les membres sont autorisés à effectuer une publication dans MySNSTopic
à l'aide de l'action d'API Publish ou de la commande sns-publish. Le modèle crée les utilisateurs
IAM MyPublishUser et MyQueueUser, et leur affecte des profils de connexion et des clés d'accès.
L'utilisateur qui crée une pile avec ce modèle spécifie les mots de passe des profils de connexion en
tant que paramètres d'entrée. Le modèle crée des clés d'accès pour les deux utilisateurs IAM avec
API Version 2010-03-31
128
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'un modèle AWS CloudFormation
pour configurer des rubriques et des
files d'attente dans
un compte AWS
MyPublishUserKey et MyQueueUserKey.
AddUserToMyPublishTopicGroup
ajoute MyPublishUser à
MyPublishTopicGroup afin que l'utilisateur dispose des autorisations affectées au groupe.
MyRDMessageQueueGroup est un groupe IAM dont les membres sont autorisés à lire et supprimer
des messages dans les deux files d'attente Amazon SQS à l'aide des actions d'API ReceiveMessage
et DeleteMessage. AddUserToMyQueueGroup ajoute MyQueueUser à MyRDMessageQueueGroup
afin que l'utilisateur dispose des autorisations affectées au groupe. MyQueuePolicy autorise
MySNSTopic à publier ses notifications dans les deux files d'attente.
{
"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.",
"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"]},
API Version 2010-03-31
129
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'un modèle AWS CloudFormation
pour configurer des rubriques et des
"Protocol":"sqs"
files d'attente dans un compte AWS
}
]
}
},
"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":{
"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"}
}
API Version 2010-03-31
130
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'un modèle AWS CloudFormation
pour configurer des rubriques et des
files d'attente dans un compte AWS
}
},
"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"}]
}
},
"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"}
}
}
}
API Version 2010-03-31
131
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'un modèle AWS CloudFormation
pour configurer des rubriques et des
files d'attente dans un compte AWS
]
},
"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":{
"Value":{"Fn::Join":[
" ",
[
"ARN:",
{"Fn::GetAtt":["MyQueueUser","Arn"]},
"Access Key:",
{"Ref":"MyQueueUserKey"},
"Secret Key:",
{"Fn::GetAtt":["MyQueueUserKey","SecretAccessKey"]}
]
]}
}
}
API Version 2010-03-31
132
}
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'un modèle AWS CloudFormation
pour configurer des rubriques et des
files d'attente dans un compte AWS
API Version 2010-03-31
133
Amazon Simple Notification
Service Manuel du développeur
Définition des préférences
Envoi de SMS avec Amazon SNS
Vous pouvez utiliser Amazon SNS pour envoyer des messages texte, ou SMS, à des
appareils compatibles SMS. Vous pouvez envoyer un message directement à un numéro
de téléphone (p. 137), ou vous pouvez envoyer un message à plusieurs numéros de
téléphone (p. 140) simultanément en abonnant ces numéros de téléphone à une rubrique et en
envoyant votre message à la rubrique.
Vous pouvez définir des préférences SMS (p. 134) pour votre compte AWS afin d'adapter vos
diffusions SMS à vos cas d'utilisation et votre budget. Par exemple, vous pouvez choisir d'optimiser la
diffusion de vos messages pour réduire les coûts ou améliorer la fiabilité. Vous pouvez aussi spécifier
des limites de dépenses pour les diffusions de messages individuels et des limites de dépenses
mensuelles pour votre compte AWS.
Selon les lois et réglementations locales (par exemple, aux Etats-Unis et au Canada), les destinataires
de SMS peuvent refuser (p. 150), ce qui signifie qu’ils choisissent d'arrêter de recevoir des SMS
provenant de votre compte AWS. Une fois qu’un destinataire refuse, vous pouvez, avec certaines
restrictions, réactiver le numéro de téléphone afin de pouvoir à nouveau lui envoyer des messages.
Amazon SNS prend en charge les SMS dans plusieurs régions et vous pouvez envoyer des messages
dans plus de 200 pays. Pour plus d'informations, consultez Régions et pays pris en charge (p. 153).
Rubriques
• Définition des préférences SMS (p. 134)
• Envoi d'un SMS (p. 137)
• Envoi d'un SMS à plusieurs numéros de téléphone (p. 140)
• Surveillance de l'activité SMS (p. 144)
• Gestion des numéros de téléphone et des abonnements SMS (p. 149)
• Régions et pays pris en charge (p. 153)
Définition des préférences SMS
Utilisez Amazon SNS pour définir des préférences pour les SMS, par exemple l'optimisation de vos
diffusions (coût ou fiabilité), votre limite de dépenses mensuelles, la consignation des diffusions de
messages et l'abonnement à des rapports d'utilisation quotidiens des SMS.
Ces préférences prennent effet pour chaque SMS que vous envoyez depuis votre compte, mais vous
pouvez en remplacer certaines lorsque vous envoyez un message individuel. Pour plus d'informations,
consultez Envoi d'un SMS (p. 137).
Rubriques
API Version 2010-03-31
134
Amazon Simple Notification
Service Manuel du développeur
Définition des préférences (console)
• Définition des préférences (console) (p. 135)
• Définition des préférences (SDK AWS) (p. 136)
Définition des préférences (console)
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la
messagerie SMS (p. 153).
3.
Dans le volet de navigation, sélectionnez Text messaging (SMS).
4.
Sur la page Text messaging (SMS), choisissez Manage text messaging preferences.
5.
Sur la page Text messaging preferences, dans le champ Default message type, sélectionnez le
type de SMS que vous enverrez généralement :
• Promotional (par défaut) – Messages non critiques, tels que les messages marketing. Amazon
SNS optimise la diffusion de messages pour générer le coût le plus bas.
• Transactional – Messages critiques qui prennent en charge les transactions clients, comme des
codes secrets uniques pour Multi-Factor Authentication. Amazon SNS optimise la diffusion de
messages pour obtenir la meilleure fiabilité possible.
Vous pouvez remplacer ce paramètre lorsque vous envoyez un message.
Pour la tarification des messages promotionnels et transactionnels, consultez la page Tarifs SMS
internationaux.
6.
Dans le champ Account spend limit, saisissez le montant maximal (en USD) que vous voulez
dépenser en SMS par mois calendaire. Lorsqu'Amazon SNS détermine que l'envoi d'un SMS
entraînerait un coût supérieur à la limite de vos dépenses pour ce mois, Amazon SNS cesse la
publication de SMS en quelques minutes.
Important
Amazon SNS étant un système distribué, il cesse d'envoyer des SMS quelques minutes
après le dépassement de la limite de dépenses. Si vous continuez à envoyer des SMS au
cours de cet intervalle, vous risquez de devoir payer des coûts au-delà de votre limite.
Par défaut, la limite de dépenses est définie sur 1,00 USD. Si vous souhaitez augmenter la limite,
soumettez une demande d'augmentation de la limite SNS. Dans New limit value, saisissez la limite
de dépenses mensuelles que vous souhaitez. Dans le champ Use Case Description, expliquez
que vous demandez une augmentation de la limite de dépenses mensuelles SNS.
7.
Pour le champ IAM role for CloudWatch Logs access, créez un rôle IAM qui autorise Amazon SNS
à écrire des journaux pour les diffusions SMS dans CloudWatch Logs :
a.
Sélectionnez Create IAM role.
b.
Sur la page SNS is requesting permission to use resources in your account, choisissez Allow.
8.
Pour Default percentage of success to sample, spécifiez le pourcentage de diffusions SMS
réussies pour lesquelles Amazon SNS écrira des journaux dans CloudWatch Logs. Par exemple,
pour écrire des journaux uniquement pour les diffusions qui ont échoué, définissez cette valeur
sur 0. Pour écrire des journaux pour 10 % des diffusions qui ont réussi, définissez-la sur 10. Si
vous ne spécifiez pas de pourcentage, Amazon SNS écrit des journaux pour toutes les diffusions
réussies.
9.
Pour Default sender ID, saisissez un ID personnalisé contenant 11 caractères alphanumériques
au maximum, dont au moins une lettre et aucun espace. L'ID expéditeur s'affiche en tant
API Version 2010-03-31
135
Amazon Simple Notification
Service Manuel du développeur
Définition des préférences (SDK AWS)
qu'expéditeur du message sur l'appareil de réception. Par exemple, vous pouvez utiliser votre
marque d'entreprise pour faciliter la reconnaissance de la source du message.
La prise en charge des ID expéditeur varie selon les pays. Par exemple, les messages diffusés à
des numéros de téléphone américains n'afficheront pas l'ID expéditeur. Pour les pays qui prennent
en charge les ID expéditeur, consultez la page Régions et pays pris en charge (p. 153).
Si vous ne spécifiez pas d'ID expéditeur, le message affiche un code long comme ID expéditeur
dans les pays pris en charge. Pour les pays qui requièrent un ID expéditeur sous forme
alphabétique, le message affiche NOTICE en tant qu'ID expéditeur.
Vous pouvez remplacer ce paramètre lorsque vous envoyez un message.
10. Pour Reports storage, saisissez le nom du compartiment Amazon S3 qui recevra les rapports
d'utilisation quotidiens des SMS en provenance d'Amazon SNS. Amazon SNS ne crée pas de
rapports d'utilisation quotidiens, sauf si vous spécifiez un compartiment Amazon S3 pour les
recevoir. Pour plus d'informations, consultez Affichage des rapports d'utilisation quotidiens des
SMS (p. 147).
11. Choisissez Update preferences.
Définition des préférences (SDK AWS)
Pour définir vos préférences SMS à l'aide de l'un des SDK AWS, utilisez l'action de ce kit de
développement logiciel qui correspond à la demande SetSMSAttributes dans l'API Amazon SNS.
Cette demande vous permet d'affecter des valeurs aux différents attributs SMS, tels que votre limite de
dépenses mensuelles et votre type de SMS par défaut (promotionnel ou transactionnel). Pour tous les
attributs SMS, consultez la page SetSMSAttributes dans le manuel Amazon Simple Notification Service
API Reference.
Définition des préférences (AWS SDK for Java)
L'exemple suivant utilise la méthode setSMSAttributes de la classe AmazonSNSClient pour définir
des valeurs pour les différents noms d'attributs :
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));
}
}
API Version 2010-03-31
136
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message
Cet exemple définit la valeur pour l'attribut MonthlySpendLimit sur 1,00 USD. Par défaut, c'est le
montant maximal autorisé par Amazon SNS. Si vous souhaitez augmenter cette limite, soumettez
une demande d'augmentation de la limite SNS. Dans New limit value, saisissez la limite de dépenses
mensuelles que vous souhaitez. Dans le champ Use Case Description, expliquez que vous demandez
une augmentation de la limite de dépenses mensuelles SNS.
Pour vérifier que les attributs ont été définis correctement, l'exemple imprime le résultat de la méthode
getSMSAttributes. Lorsque vous exécutez cet exemple, les attributs s'affichent dans la fenêtre de
sortie de la console de votre IDE :
My SMS attributes:
DeliveryStatusSuccessSamplingRate = 10
UsageReportS3Bucket = sns-sms-daily-usage
DefaultSMSType = Transactional
DeliveryStatusIAMRole = arn:aws:iam::123456789012:role/mySnsRole
MonthlySpendLimit = 1
DefaultSenderID = mySenderID
Envoi d'un SMS
Vous pouvez utiliser Amazon SNS pour envoyer des SMS à des appareils compatibles SMS. Vous
pouvez publier des messages directement dans les numéros de téléphone de ces appareils sans avoir
besoin d'abonner ces numéros à une rubrique Amazon SNS.
L'abonnement de numéros de téléphone à une rubrique peut cependant être utile si vous voulez
publier chaque message dans plusieurs numéros de téléphone à la fois. Pour connaître la procédure
de publication d'un SMS dans une rubrique, consultez la page Envoi d'un SMS à plusieurs numéros de
téléphone (p. 140).
Lorsque vous envoyez un message, vous pouvez contrôler si sa diffusion est optimisée en matière
de coût ou de fiabilité, et vous pouvez spécifier un ID expéditeur. Si vous envoyez le message
par programmation à l'aide de l'API Amazon SNS ou des SDK AWS, vous pouvez indiquer un prix
maximum pour la diffusion du message.
Lorsque vous envoyez un SMS, spécifiez le numéro de téléphone au format E.164. E.164 est une
norme pour la structure des numéros de téléphone, qui est utilisée pour les télécommunications
internationales. Les numéros qui respectent ce format peuvent comporter 15 chiffres au maximum
et commencent par le caractère plus (+) et le code pays. Par exemple, un numéro de téléphone
américain au format E.164 apparaît sous la forme +1XXX5550100.
Rubriques
• Envoi d'un message (console) (p. 137)
• Envoi d'un message (SDK AWS) (p. 138)
Envoi d'un message (console)
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la
messagerie SMS (p. 153).
3.
Dans le volet de navigation, sélectionnez Text messaging (SMS).
4.
Sur la page Text messaging (SMS), choisissez Send a text message (SMS). La fenêtre Send text
message (SMS) s'ouvre.
API Version 2010-03-31
137
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message (SDK AWS)
5.
Dans le champ Message type, choisissez l'une des valeurs suivantes :
• Promotional – Messages non critiques, tels que les messages marketing. Amazon SNS optimise
la diffusion de messages pour générer le coût le plus bas.
• Transactional – Messages critiques qui prennent en charge les transactions clients, comme des
codes secrets uniques pour Multi-Factor Authentication. Amazon SNS optimise la diffusion de
messages pour obtenir la meilleure fiabilité possible.
Ce paramètre au niveau du message remplace le type de message par défaut, que vous
définissez sur la page Text messaging preferences.
Pour la tarification des messages promotionnels et transactionnels, consultez la page Tarifs SMS
internationaux.
6.
Dans le champ Number, saisissez le numéro de téléphone auquel vous souhaitez envoyer le
message.
7.
Dans le champ Message, tapez le message à envoyer. Le message peut contenir jusqu'à
160 caractères ASCII (ou 70 caractères Unicode). Si le message dépasse cette longueur, Amazon
SNS le fractionne en plusieurs messages, chacun n'excédant pas la limite de caractères. Les
messages ne sont pas coupés au milieu d'un mot, mais sur la base d'un mot entier.
8.
(Facultatif) Pour Sender ID, saisissez un ID personnalisé contenant 11 caractères
alphanumériques au maximum, dont au moins une lettre et aucun espace. L'ID expéditeur
s'affiche en tant qu'expéditeur du message sur l'appareil de réception. Par exemple, vous pouvez
utiliser votre marque d'entreprise pour faciliter la reconnaissance de la source du message.
La prise en charge des ID expéditeur varie selon les pays. Par exemple, les messages diffusés à
des numéros de téléphone américains n'afficheront pas l'ID expéditeur. Pour les pays qui prennent
en charge les ID expéditeur, consultez la page Régions et pays pris en charge (p. 153).
Si vous ne spécifiez pas d'ID expéditeur, le message affiche un code long comme ID expéditeur
dans les pays pris en charge. Pour les pays qui requièrent un ID expéditeur sous forme
alphabétique, le message affiche NOTICE en tant qu'ID expéditeur.
Cet ID expéditeur au niveau du message remplace l'ID expéditeur par défaut, que vous définissez
sur la page Text messaging preferences.
9.
Choisissez Send text message.
Envoi d'un message (SDK AWS)
Pour envoyer un SMS à l'aide de l'un des SDK AWS, utilisez l'action de ce SDK qui correspond
à la demande Publish dans l'API Amazon SNS. Cette demande vous permet d'envoyer un
SMS directement à un numéro de téléphone. Vous pouvez également utiliser le paramètre
MessageAttributes pour définir les valeurs des noms d'attributs suivants :
AWS.SNS.SMS.SenderID
Un ID personnalisé contenant jusqu'à 11 caractères alphanumériques, dont au moins une lettre
et aucun espace. L'ID expéditeur s'affiche en tant qu'expéditeur du message sur l'appareil
de réception. Par exemple, vous pouvez utiliser votre marque d'entreprise pour faciliter la
reconnaissance de la source du message.
La prise en charge des ID expéditeur varie selon les pays. Par exemple, les messages diffusés à
des numéros de téléphone américains n'afficheront pas l'ID expéditeur. Pour les pays qui prennent
en charge les ID expéditeur, consultez la page Régions et pays pris en charge (p. 153).
Si vous ne spécifiez pas d'ID expéditeur, le message affiche un code long comme ID expéditeur
dans les pays pris en charge. Pour les pays qui requièrent un ID expéditeur sous forme
alphabétique, le message affiche NOTICE en tant qu'ID expéditeur.
API Version 2010-03-31
138
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message (SDK AWS)
Cet attribut au niveau du message remplace l'attribut au niveau du compte DefaultSenderID,
que vous définissez à l'aide de la demande SetSMSAttributes.
AWS.SNS.SMS.MaxPrice
Le montant maximal (en USD) que vous êtes prêt à dépenser pour envoyer le SMS. Amazon SNS
n'envoie pas le message s'il détermine que cette opération générerait un coût dépassant le prix
maximum.
Cet attribut n'a aucun effet si vos coûts SMS du mois actuel ont déjà dépassé la limite définie pour
l'attribut MonthlySpendLimit à l'aide de la demande SetSMSAttributes.
Si vous envoyez le message à une rubrique Amazon SNS, le prix maximum s'applique à chaque
diffusion de message envoyée sur chaque numéro de téléphone abonné à la rubrique.
AWS.SNS.SMS.SMSType
Le type de message que vous envoyez :
• Promotional (par défaut) – Messages non critiques, tels que les messages marketing.
Amazon SNS optimise la diffusion de messages pour générer le coût le plus bas.
• Transactional – Messages critiques qui prennent en charge les transactions clients, comme
des codes secrets uniques pour Multi-Factor Authentication. Amazon SNS optimise la diffusion
de messages pour obtenir la meilleure fiabilité possible.
Cet attribut au niveau du message remplace l'attribut au niveau du compte DefaultSMSType, que
vous définissez à l'aide de la demande SetSMSAttributes.
(Facultatif) Définition d'attributs de message (AWS SDK for
Java)
Vous définissez les valeurs d'attribut du message en créant un mappage qui associe les clés d'attribut
aux objets MessageAttributeValue. Chaque objet MessageAttributeValue est initialisé avec
une valeur d'attribut, et chaque objet déclare le type de données pour la valeur. L'exemple suivant
définit l'ID expéditeur sur « mySenderID », le prix maximum sur 0,50 USD et le type de SMS sur
promotionnel :
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"));
Lorsque vous envoyez un SMS, vous appliquez vos attributs à l'objet PublishRequest.
Envoi d'un message (AWS SDK for Java)
L'exemple suivant utilise la méthode publish de la classe AmazonSNSClient pour envoyer un
message directement à un numéro de téléphone :
public static void main(String[] args) {
AmazonSNSClient snsClient = new AmazonSNSClient();
String message = "My SMS message";
String phoneNumber = "+1XXX5550100";
API Version 2010-03-31
139
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à plusieurs numéros de téléphone
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.
}
Lorsque vous exécutez cet exemple, l'ID message s'affiche dans la fenêtre de sortie de la console de
votre IDE :
{MessageId: 9b888f80-15f7-5c30-81a2-c4511a3f5229}
Envoi d'un SMS à plusieurs numéros de
téléphone
Vous pouvez publier simultanément un seul SMS sur plusieurs numéros de téléphone en abonnant
ces numéros de téléphone à une rubrique. Une rubrique est un canal de communication auquel vous
pouvez ajouter des abonnés. Vous pouvez ensuite publier des messages chez tous les abonnés.
Un abonné recevra tous les messages publiés dans la rubrique jusqu'à ce que vous annuliez
l'abonnement ou qu'il refuse de recevoir des SMS provenant de votre compte.
Rubriques
• Envoi d'un message à une rubrique (console) (p. 140)
• Envoi d'un message à une rubrique (SDK AWS) (p. 141)
Envoi d'un message à une rubrique (console)
Pour créer une rubrique
Procédez comme suit si vous ne disposez pas encore d'une rubrique à laquelle envoyer des SMS.
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la
messagerie SMS (p. 153).
Dans le volet de navigation, sélectionnez Topics.
Sur la page Topics, choisissez Create new topic. La fenêtre Create new topic s'ouvre.
3.
4.
5.
6.
Saisissez un nom dans le champ Topic name.
(Facultatif) Dans le champ Display name, tapez un préfixe personnalisé pour vos SMS. Lorsque
vous envoyez un message à la rubrique, Amazon SNS ajoute le nom d'affichage suivi d'un signe
supérieur (>) et d'un espace. Les noms d'affichage ne sont pas sensibles à la casse et Amazon
SNS les convertit en majuscules. Par exemple, si le nom d'affichage d'une rubrique est MyTopic
et que le message est Hello World!, le message se présente comme suit :
API Version 2010-03-31
140
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à une rubrique (SDK AWS)
MYTOPIC> Hello World!
7.
Choisissez Create topic. Le nom de la rubrique et l'Amazon Resource Name (ARN) sont ajoutés
au tableau de la page Topics.
Pour ajouter des abonnements SMS
Les abonnements vous permettent d'envoyer un SMS à plusieurs destinataires en publiant le message
une seule fois dans votre rubrique.
1.
Sur la page Topics, choisissez l'ARN de la rubrique.
2.
Sur la page des détails de la rubrique, sélectionnez Create Subscription.
3.
Pour Protocol, sélectionnez SMS.
4.
Pour Endpoint, saisissez le numéro de téléphone auquel vous souhaitez envoyer des messages.
5.
Choisissez Create Subscription. Les informations d'abonnement sont ajoutées au tableau
Subscriptions.
Vous pouvez répéter ces étapes pour ajouter davantage de numéros de téléphone. Vous pouvez
également ajouter d'autres types d'abonnements, tels que l'abonnement par e-mail.
Pour envoyer le message
Lorsque vous publiez un message dans une rubrique, Amazon SNS tente de livrer ce message à
chaque numéro de téléphone qui est abonné à la rubrique.
1.
Sur la page des détails de la rubrique, sélectionnez Publish to topic.
2.
Sur la page Publish a message, laissez le champ Subject vide, sauf si votre rubrique contient
des abonnements par e-mail et que vous voulez effectuer une publication à la fois dans des
abonnements par e-mail et par SMS. Le texte que vous saisissez dans le champ Subject est
utilisé en tant que ligne d'objet de l'e-mail.
3.
Tapez un message dans le champ Message.
Un SMS peut contenir jusqu'à 160 caractères ASCII ou 70 caractères Unicode. Tout message
qui dépasse ces longueurs est fractionné en plusieurs messages, chacun n'excédant pas la limite
de caractères. Les messages ne sont pas coupés au milieu d'un mot, mais sur la base d'un mot
entier.
Si votre rubrique possède un nom d'affichage, Amazon SNS l'ajoute au message, augmentant
ainsi sa longueur. La longueur du nom d'affichage représente le nombre de caractères dans le
nom plus deux caractères pour le signe supérieur (>) et l'espace ajoutés par Amazon SNS.
4.
Choisissez Publish message. Amazon SNS envoie le SMS et affiche un message de réussite.
Envoi d'un message à une rubrique (SDK AWS)
Pour envoyer un SMS à une rubrique à l'aide de l'un des SDK AWS, utilisez les actions de ce kit de
développement logiciel qui correspondent aux demandes suivantes dans l'API Amazon SNS :
CreateTopic
Crée une rubrique à laquelle vous pouvez abonner des numéros de téléphone, puis vous permet
de publier simultanément des messages sur l'ensemble de ces numéros en effectuant une
publication dans la rubrique.
Subscribe
Abonne un numéro de téléphone à une rubrique.
API Version 2010-03-31
141
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à une rubrique (SDK AWS)
Publish
Envoie un message à chaque numéro de téléphone abonné à une rubrique.
Vous pouvez utiliser le paramètre MessageAttributes pour définir plusieurs attributs pour le
message (par exemple, le prix maximum). Pour plus d'informations, consultez Envoi d'un message
(SDK AWS) (p. 138).
Création d'une rubrique (AWS SDK for Java)
L'exemple suivant utilise la méthode createTopic de la classe AmazonSNSClient pour créer une
rubrique nommée « 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();
}
L'exemple utilise la méthode getCachedResponseMetadata pour obtenir l'ID de demande.
Lorsque vous exécutez cet exemple, les éléments suivants s'affichent dans la fenêtre de sortie de la
console de votre IDE :
{TopicArn: arn:aws:sns:us-east-1:123456789012:mySNSTopic}
CreateTopicRequest - {AWS_REQUEST_ID=93f7fc90-f131-5ca3-ab18-b741fef918b5}
Ajout d'un abonnement SMS à votre rubrique (AWS SDK for
Java)
L'exemple suivant utilise la méthode subscribe de la classe AmazonSNSClient pour ajouter un
abonnement à une rubrique :
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);
System.out.println("Subscribe request: " +
API Version 2010-03-31
142
Amazon Simple Notification
Service Manuel du développeur
Envoi d'un message à une rubrique (SDK AWS)
snsClient.getCachedResponseMetadata(subscribe));
System.out.println("Subscribe result: " + subscribeResult);
}
Cet exemple crée l'objet subscribeRequest et lui transmet les arguments suivants :
• topicArn : Amazon Resource Name (ARN) de la rubrique à laquelle vous ajoutez un abonnement.
• "sms" : option de protocole pour un abonnement SMS.
• endpoint : numéro de téléphone que vous abonnez à la rubrique.
L'exemple utilise la méthode getCachedResponseMetadata pour obtenir l'ID de la demande
d'abonnement.
Lorsque vous exécutez cet exemple, l'ID de la demande d'abonnement s'affiche dans la fenêtre de la
console de votre IDE :
SubscribeRequest - {AWS_REQUEST_ID=f38fe925-8093-5bd4-9c19-a7c7625de38c}
(Facultatif) Définition d'attributs de message (AWS SDK for
Java)
Vous définissez les valeurs d'attribut du message en créant un mappage qui associe les clés d'attribut
aux objets MessageAttributeValue. Chaque objet MessageAttributeValue est initialisé avec
une valeur d'attribut, et chaque objet déclare le type de données pour la valeur. L'exemple suivant
définit l'ID expéditeur sur « mySenderID », le prix maximum sur 0,50 USD et le type de SMS sur
promotionnel :
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"));
Pour plus d'informations sur les attributs de message, consultez la page Envoi d'un message (SDK
AWS) (p. 138).
Lorsque vous envoyez un SMS, vous appliquez vos attributs à l'objet PublishRequest.
Publication d'un message dans votre rubrique (AWS SDK for
Java)
L'exemple suivant utilise la méthode publish de la classe AmazonSNSClient pour publier un SMS
dans une rubrique :
public static void main(String[] args) {
AmazonSNSClient snsClient = new AmazonSNSClient();
String message = "My SMS message";
Map<String, MessageAttributeValue> smsAttributes =
API Version 2010-03-31
143
Amazon Simple Notification
Service Manuel du développeur
Surveillance de l'activité SMS
new HashMap<String, MessageAttributeValue>();
//<set SMS attributes>
String topicArn = createSNSTopic(snsClient);
//<subscribe to topic>
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 essaie de livrer ce message à chaque numéro de téléphone qui est abonné à la
rubrique.
Cet exemple crée l'objet publishRequest en transmettant l'ARN de la rubrique et le message sous
forme d'arguments. L'objet publishResult capture l'ID message renvoyé par Amazon SNS.
Lorsque vous exécutez cet exemple, l'ID message s'affiche dans la fenêtre de sortie de la console de
votre IDE :
{MessageId: 9b888f80-15f7-5c30-81a2-c4511a3f5229}
Surveillance de l'activité SMS
En surveillant votre activité SMS, vous pouvez garder une trace des numéros de téléphone de
destination, des diffusions ayant réussi ou échoué, des motifs d'échec, des coûts et d'autres
informations. Amazon SNS apporte une aide précieuse en récapitulant les statistiques sur la console,
en envoyant des informations à Amazon CloudWatch et en envoyant des rapports d'utilisation
quotidiens des SMS au compartiment Amazon S3 que vous spécifiez.
Rubriques
• Affichage des statistiques de diffusion SMS (p. 144)
• Affichage des journaux et des métriques Amazon CloudWatch pour les diffusions SMS (p. 145)
• Affichage des rapports d'utilisation quotidiens des SMS (p. 147)
Affichage des statistiques de diffusion SMS
Vous pouvez utiliser la console Amazon SNS pour afficher les statistiques concernant vos diffusions
SMS récentes.
1.
2.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la
messagerie SMS (p. 153).
API Version 2010-03-31
144
Amazon Simple Notification
Service Manuel du développeur
Affichage des journaux et métriques CloudWatch
3.
Dans le volet de navigation, sélectionnez Text messaging (SMS).
4.
Sur la page Text messaging (SMS), dans la section Account stats, affichez les graphiques pour
vos diffusions de messages SMS transactionnels et promotionnels. Chaque graphique présente
les données suivantes pour les 15 jours précédents :
• Delivery rate (pourcentage de diffusions réussies)
• Sent (nombre de tentatives de diffusion)
• Failed (nombre d’échecs de diffusion)
Sur cette page, vous pouvez également cliquer sur le bouton Usage pour accéder au compartiment
Amazon S3 où vous stockez vos rapports d'utilisation quotidiens. Pour plus d'informations, consultez
Affichage des rapports d'utilisation quotidiens des SMS (p. 147).
Affichage des journaux et des métriques Amazon
CloudWatch pour les diffusions SMS
Vous pouvez utiliser Amazon CloudWatch et Amazon CloudWatch Logs pour surveiller vos diffusions
de SMS.
Rubriques
• Affichage des métriques Amazon CloudWatch (p. 145)
• Affichage de CloudWatch Logs (p. 145)
• Exemple de journal pour une diffusion SMS réussie (p. 146)
• Exemple de journal pour une diffusion SMS ayant échoué (p. 146)
• Causes d'échec de la diffusion SMS (p. 147)
Affichage des métriques Amazon CloudWatch
Amazon SNS collecte automatiquement des métriques sur vos diffusions de SMS et les envoie à
Amazon CloudWatch. Vous pouvez utiliser CloudWatch pour surveiller ces métriques et créer des
alarmes pour vous avertir lorsqu'une métrique dépasse un seuil. Pour plus d'informations sur la
surveillance des métriques CloudWatch, la définition d'alarmes CloudWatch et les types de métriques
disponibles, consultez la page Surveillance de Amazon SNS avec CloudWatch (p. 204).
Affichage de CloudWatch Logs
Vous pouvez rassembler des informations sur les diffusions de SMS qui ont réussi et celles qui ont
échoué, en autorisant Amazon SNS à écrire dans Amazon CloudWatch Logs. Pour chaque SMS que
vous envoyez, Amazon SNS écrit un journal qui inclut le prix du message, l'état de réussite ou d’échec,
la cause d'échec (le cas échéant), la durée de conservation du message et d'autres informations.
Pour activer CloudWatch Logs pour vos SMS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la
messagerie SMS (p. 153).
Dans le volet de navigation, sélectionnez Text messaging (SMS).
Sur la page Text messaging (SMS), choisissez Manage text messaging preferences.
3.
4.
5.
Sur la page Text messaging preferences, pour IAM role for CloudWatch Logs access, créez
un rôle IAM qui permet à Amazon SNS d'écrire des journaux pour les diffusions SMS dans
CloudWatch Logs :
API Version 2010-03-31
145
Amazon Simple Notification
Service Manuel du développeur
Affichage des journaux et métriques CloudWatch
a.
Sélectionnez Create IAM role.
b.
Sur la page SNS is requesting permission to use resources in your account, choisissez Allow.
6.
Pour Default percentage of success to sample, spécifiez le pourcentage de diffusions SMS
réussies pour lesquelles Amazon SNS écrira des journaux dans CloudWatch Logs. Par exemple,
pour écrire des journaux uniquement pour les diffusions qui ont échoué, définissez cette valeur
sur 0. Pour écrire des journaux pour 10 % des diffusions qui ont réussi, définissez-la sur 10. Si
vous ne spécifiez pas de pourcentage, Amazon SNS écrit des journaux pour toutes les diffusions
réussies.
7.
Choisissez Update preferences.
Pour plus d'informations sur les autres options de la page Text messaging preferences, consultez la
section Définition des préférences (console) (p. 135).
Exemple de journal pour une diffusion SMS réussie
Le journal de l'état de diffusion pour une diffusion SMS réussie se présente comme l'exemple suivant :
{
"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"
}
Exemple de journal pour une diffusion SMS ayant échoué
Le journal de l'état de diffusion pour une diffusion SMS ayant échoué se présente comme l'exemple
suivant :
{
"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,
API Version 2010-03-31
146
Amazon Simple Notification
Service Manuel du développeur
Affichage des rapports d'utilisation
"dwellTimeMsUntilDeviceAck": 1692
},
"status": "FAILURE"
}
Causes d'échec de la diffusion SMS
La cause d'un échec est fournie avec l'attribut providerResponse. La diffusion des SMS risque
d'échouer pour les raisons suivantes :
• Il est bloqué en tant que courrier indésirable par l'opérateur de téléphonie
• La destination est sur liste noire
• Le numéro de téléphone n'est pas valide
• Le corps du message n'est pas valide
• L'opérateur de téléphonie a bloqué ce message
• L'opérateur de téléphonie est actuellement inaccessible/indisponible
• Le téléphone a bloqué le SMS
• Le téléphone est sur liste noire
• Le téléphone est actuellement inaccessible/indisponible
• Le numéro de téléphone est désactivé
• Cette diffusion entraînerait un dépassement du prix maximum
• Erreur inconnue lors de la tentative d'accès au téléphone
Affichage des rapports d'utilisation quotidiens des
SMS
Vous pouvez surveiller vos diffusions SMS en vous abonnant à des rapports d'utilisation quotidiens
d'Amazon SNS. Chaque jour, Amazon SNS envoie un rapport d'utilisation sous forme de fichier CSV à
un compartiment Amazon S3 que vous spécifiez.
Rubriques
• Informations sur le rapport d'utilisation quotidien (p. 147)
• Abonnement à des rapports d'utilisation quotidiens (p. 148)
Informations sur le rapport d'utilisation quotidien
Le rapport d'utilisation inclut les informations suivantes pour chaque SMS qui a été diffusé avec succès
par votre compte :
• Heure de publication du message (UTC)
• ID de message
• Numéro de téléphone de destination
• Type de message
• Statut de diffusion
• Prix du message (en USD)
• Référence (un message est fractionné en plusieurs parties s'il est trop long pour constituer un seul
message)
• Nombre total de parties
API Version 2010-03-31
147
Amazon Simple Notification
Service Manuel du développeur
Affichage des rapports d'utilisation
Abonnement à des rapports d'utilisation quotidiens
Pour vous abonner à des rapports d'utilisation quotidiens, vous devez créer un compartiment Amazon
S3 avec les autorisations appropriées.
Pour créer un compartiment Amazon S3 pour vos rapports d'utilisation quotidiens
1.
2.
Connectez-vous à AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://
console.aws.amazon.com/s3/.
Choisissez Create Bucket.
3.
Dans le champ Bucket Name, saisissez un nom, tel que sns-sms-daily-usage. Pour plus
d'informations sur les conventions et les restrictions des noms de compartiments, consultez la
page Règles relatives à l'attribution des noms de compartiments dans le manuel Amazon Simple
Storage Service Manuel du développeur.
4.
Sélectionnez Create.
5.
Dans le tableau All Buckets, sélectionnez le compartiment et choisissez Properties.
6.
7.
Dans la section Permissions, choisissez Add bucket policy.
Dans la fenêtre Bucket Policy Editor, indiquez une stratégie qui permet au mandataire du service
Amazon SNS d'écrire dans votre compartiment. Pour obtenir un exemple, consultez Exemple de
stratégie de compartiment (p. 148).
8.
Si vous utilisez l'exemple de stratégie, n'oubliez pas de remplacer my-s3-bucket par le nom de
votre compartiment.
Choisissez Save.
Pour vous abonner à des rapports d'utilisation quotidiens
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
3.
Dans le volet de navigation, sélectionnez Text messaging (SMS).
Sur la page Text messaging (SMS), choisissez Manage text messaging preferences.
4.
Sur la page Text messaging preferences, dans le champ Reports storage, tapez le nom du
compartiment Amazon S3 qui recevra les rapports d'utilisation quotidiens des SMS.
5.
Choisissez Update preferences.
Pour plus d'informations sur les autres options de la page Text messaging preferences, consultez la
section Définition des préférences (console) (p. 135).
Une fois que vous êtes abonné à des rapports d'utilisation quotidiens, vous pouvez afficher les
rapports dans la console Amazon S3. Vous pouvez également accéder à la page Text messaging
(SMS) dans la console Amazon SNS et choisir le bouton Usage.
Exemple de stratégie de compartiment
La stratégie suivante permet au mandataire du service Amazon SNS d'exécuter les actions
s3:PutObject et s3:GetBucketLocation. Vous pouvez utiliser cet exemple lorsque vous créez un
compartiment Amazon S3 pour recevoir les rapports d'utilisation quotidiens des SMS d'Amazon SNS.
{
"Version": "2012-10-17",
"Id": "sns-sms-daily-usage-policy",
"Statement": [
{
"Sid": "AllowPutObject",
API Version 2010-03-31
148
Amazon Simple Notification
Service Manuel du développeur
Gestion des abonnements
"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"
}
]
}
Exemple de rapport d'utilisation quotidien
Une fois que vous êtes abonné à des rapports d'utilisation quotidiens, Amazon SNS place chaque jour
un fichier CSV avec les données d'utilisation à l'emplacement suivant :
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
Chaque fichier peut contenir jusqu'à 50 000 enregistrements. Si les enregistrements d'une journée
dépassent cette limite, Amazon SNS ajoute plusieurs fichiers.
L'illustration suivante présente un exemple de rapport :
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNu
2016-05-10T03:00:29.476Z,96a298ac-1458-4825a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone
carrier,0.90084,1,1
2016-05-10T03:00:29.561Z,1e29d394d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted
by phone carrier,0.34322,1,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by
phone carrier,0.27815,1,1
. . .
Gestion des numéros de téléphone et des
abonnements SMS
Amazon SNS fournit plusieurs options pour gérer les personnes autorisées à recevoir des SMS de
votre compte. A une fréquence limitée, vous pouvez réactiver des numéros de téléphone qui ont refusé
de recevoir des SMS de votre compte. Pour arrêter l'envoi de messages à des abonnements SMS,
vous pouvez supprimer des abonnements ou les rubriques qui effectuent des publications dedans.
Rubriques
• Désactivation de la réception des SMS (p. 150)
• Gestion des numéros de téléphone et des abonnements (console) (p. 150)
API Version 2010-03-31
149
Amazon Simple Notification
Service Manuel du développeur
Désactivation de la réception des SMS
• Gestion des numéros de téléphone et des abonnements (SDK AWS) (p. 151)
Désactivation de la réception des SMS
Selon les lois et réglementations locales en vigueur (par exemple, aux Etats-Unis et au Canada), les
destinataires de SMS peuvent utiliser leurs appareils pour refuser d'en recevoir en répondant STOP ou
ARRET (français) au code long ou court utilisé par Amazon SNS pour diffuser le message. Après avoir
refusé, le destinataire ne recevra plus les SMS envoyés à partir de votre compte AWS, sauf si vous
réactivez le numéro de téléphone.
Si le numéro de téléphone est abonné à une rubrique Amazon SNS, la désactivation ne supprime
pas l'abonnement, mais les SMS ne seront pas diffusés à cet abonnement, sauf si vous réactivez le
numéro de téléphone.
Gestion des numéros de téléphone et des
abonnements (console)
Vous pouvez utiliser la console Amazon SNS pour contrôler quels numéros de téléphone recevront
des SMS de votre compte.
Réactivation d'un numéro de téléphone désactivé
Vous pouvez afficher les numéros de téléphone qui ont refusé de recevoir des SMS de votre compte et
vous pouvez les réactiver pour reprendre l'envoi de messages.
Vous ne pouvez réactiver un numéro de téléphone qu'une fois tous les 30 jours.
1.
2.
3.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
Dans le menu de la console, définissez le sélecteur de région sur une région prenant en charge la
messagerie SMS (p. 153).
Dans le volet de navigation, sélectionnez Text messaging (SMS).
4.
Sur la page Text messaging (SMS), choisissez View opted out phone numbers. La page Opted
out phone numbers affiche les numéros de téléphone désactivés.
5.
Cochez la case correspondant au numéro de téléphone que vous voulez réactiver, puis
sélectionnez Opt in. Le numéro de téléphone n'est plus désactivé et recevra les SMS que vous lui
envoyez.
Suppression d'un abonnement SMS
Supprimez un abonnement SMS pour arrêter l'envoi de SMS à ce numéro de téléphone lorsque vous
effectuez une publication dans vos rubriques.
1.
2.
3.
Dans le volet de navigation, choisissez Subscriptions.
Cochez les cases correspondant aux abonnements à supprimer. Choisissez ensuite Actions, puis
Delete Subscriptions.
Dans la fenêtre Delete, sélectionnez Delete. Amazon SNS supprime l'abonnement et affiche un
message de réussite.
Suppression d'une rubrique
Supprimez une rubrique lorsque vous ne souhaitez plus publier de messages dans ses points de
terminaison abonnés.
API Version 2010-03-31
150
1.
Amazon Simple Notification
Service Manuel du développeur
Gestion des numéros de téléphone
et des abonnements (SDK AWS)
Dans le volet de navigation, sélectionnez Topics.
2.
Cochez les cases correspondant aux rubriques à supprimer. Choisissez ensuite Actions, puis
Delete Topics.
3.
Dans la fenêtre Delete, sélectionnez Delete. Amazon SNS supprime la rubrique et affiche un
message de réussite.
Gestion des numéros de téléphone et des
abonnements (SDK AWS)
Vous pouvez utiliser les kits de développement logiciel (SDK) AWS pour effectuer des demandes par
programme à Amazon SNS et gérer les numéros de téléphone qui peuvent recevoir des SMS de votre
compte.
Affichage de tous les numéros de téléphone désactivés
Pour afficher tous les numéros de téléphone désactivés, soumettez une demande
ListPhoneNumbersOptedOut avec l'API Amazon SNS. Par exemple, à l'aide du kit AWS
SDK for Java, vous pouvez utiliser la méthode listPhoneNumbersOptedOut de la classe
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 renvoie une réponse paginée, si bien que cet exemple répète la demande chaque fois
qu'Amazon SNS renvoie un jeton suivant. Lorsque vous exécutez cet exemple, il affiche la liste de tous
les numéros de téléphone désactivés dans la fenêtre de sortie de la console de votre IDE.
Vérification de la désactivation d'un numéro de téléphone
Pour vérifier si un numéro de téléphone est désactivé, soumettez une demande
CheckIfPhoneNumberIsOptedOut avec l'API Amazon SNS. Par exemple, à l'aide du kit AWS
SDK for Java, vous pouvez utiliser la méthode checkIfPhoneNumberIsOptedOut de la classe
AmazonSNSClient :
CheckIfPhoneNumberIsOptedOutRequest request = new
CheckIfPhoneNumberIsOptedOutRequest().withPhoneNumber(phoneNumber);
System.out.println(snsClient.checkIfPhoneNumberIsOptedOut(request));
API Version 2010-03-31
151
Amazon Simple Notification
Service Manuel du développeur
Gestion des numéros de téléphone
et des abonnements (SDK AWS)
Lorsque vous exécutez cet exemple, un résultat vrai ou faux s'affiche dans la fenêtre de sortie de la
console de votre IDE :
{IsOptedOut: false}
Réactivation d'un numéro de téléphone désactivé
Pour réactiver un numéro de téléphone, soumettez une demande OptInPhoneNumber avec l'API
Amazon SNS. Par exemple, à l'aide du kit AWS SDK for Java, vous pouvez utiliser la méthode
optInPhoneNumber de la classe AmazonSNSClient :
snsClient.optInPhoneNumber(new
OptInPhoneNumberRequest().withPhoneNumber(phoneNumber));
Vous ne pouvez réactiver un numéro de téléphone qu'une fois tous les 30 jours.
Suppression d'un abonnement SMS
Pour supprimer un abonnement SMS à partir d'une rubrique Amazon SNS, obtenez l'ARN de
l'abonnement en soumettant une demande ListSubscriptions avec l'API Amazon SNS, puis
transmettez l'ARN à une demande Unsubscribe.
Par exemple, à l'aide du kit AWS SDK for Java, vous pouvez obtenir vos ARN d'abonnement en
utilisant la méthode listSubscriptions de la classe AmazonSNSClient :
ListSubscriptionsResult result = snsClient.listSubscriptions();
for (Subscription sub : result.getSubscriptions()) {
System.out.println(sub);
}
Vous pouvez supprimer un abonnement en transmettant son ARN sous forme d'argument de chaîne à
la méthode unsubscribe :
snsClient.unsubscribe(subscriptionArn);
Suppression d'une rubrique
Pour supprimer une rubrique ainsi que la totalité de ses abonnements, obtenez l'ARN de la rubrique en
soumettant une demande ListTopics avec l'API Amazon SNS, puis transmettez l'ARN à la demande
DeleteTopic.
Par exemple, à l'aide du kit AWS SDK for Java, vous pouvez obtenir vos ARN de rubrique en utilisant
la méthode listTopics de la classe AmazonSNSClient :
ListTopicsResult result = snsClient.listTopics();
for (Topic t : result.getTopics()) {
System.out.println(t);
}
Vous pouvez supprimer une rubrique en transmettant son ARN sous forme d'argument de chaîne à la
méthode deleteTopic :
snsClient.deleteTopic(topicArn);
API Version 2010-03-31
152
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Régions et pays pris en charge
Actuellement, Amazon SNS prend en charge les SMS dans les régions suivantes :
Nom de la région
Région
Point de terminaison
Protocole
USA Est (Virginie du
Nord)
us-east-1
sns.usHTTP et HTTPS
east-1.amazonaws.com
USA Ouest (Oregon)
us-west-2
sns.usHTTP et HTTPS
west-2.amazonaws.com
UE (Irlande)
eu-west-1
sns.euHTTP et HTTPS
west-1.amazonaws.com
Asie-Pacifique (Tokyo)
ap-northeast-1
sns.apHTTP et HTTPS
northeast-1.amazonaws.com
Asie-Pacifique
(Singapour)
ap-southeast-1
sns.apHTTP et HTTPS
southeast-1.amazonaws.com
Asie-Pacifique
(Sydney)
ap-southeast-2
sns.apHTTP et HTTPS
southeast-2.amazonaws.com
Vous pouvez utiliser Amazon SNS pour envoyer des SMS dans les pays suivants :
Pays
Code ISO
Prend en charge les ID
expéditeur
Afghanistan
AF
Albanie
AL
Oui
Algérie
DZ
Andorre
AD
Oui
Angola
AO
Oui
Anguilla
AI
Oui
Antigua et Barbuda
AG
Oui
Argentine
AR
Arménie
AM
Oui
Aruba
AW
Oui
Australie
AU
Oui
Autriche
AT
Oui
Azerbaïdjan
AZ
Bahamas
BS
Oui
Bahreïn
BH
Oui
Bangladesh
BD
API Version 2010-03-31
153
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
Barbade
BB
Oui
Biélorussie
BY
Oui
Belgique
BE
Belize
BZ
Oui
Bénin
BJ
Oui
Bermudes
BM
Oui
Bhoutan
BT
Oui
Bolivie
BO
Oui
Bosnie-Herzégovine
BA
Oui
Botswana
BW
Oui
Brésil
BR
Brunei
BN
Oui
Bulgarie
BG
Oui
Burkina Faso
BF
Oui
Burundi
BI
Oui
Cambodge
KH
Oui
Cameroun
CM
Oui
Canada
CA
Cap-Vert
CV
Oui
Iles Caïmans
KY
Oui
République centrafricaine
CF
Oui
Tchad
TD
Oui
Chili
CL
Chine
CN
Colombie
CO
Comores
KM
Oui
Iles Cook
CK
Oui
Costa Rica
CR
Croatie
HR
Chypre
CY
Oui
République tchèque
CZ
Oui
API Version 2010-03-31
154
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
République démocratique du
Congo
CD
Danemark
DK
Oui
Djibouti
DJ
Oui
Dominique
DM
Oui
République dominicaine
DO
Timor oriental
TL
Equateur
EC
Egypte
EG
El Salvador
SV
Guinée équatoriale
GQ
Oui
Estonie
EE
Oui
Ethiopie
ET
Iles Féroé
FO
Oui
Fidji
FJ
Oui
Finlande
FI
Oui
France
FR
Oui
Guyane française
GF
Gabon
GA
Oui
Gambie
GM
Oui
Géorgie
GE
Oui
Allemagne
DE
Oui
Ghana
GH
Gibraltar
GI
Oui
Grèce
GR
Oui
Groenland
GL
Oui
Grenade
GD
Oui
Guadeloupe
GP
Oui
Guam
GU
Guatemala
GT
Guinée
GN
Oui
API Version 2010-03-31
155
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
Guinée-Bissau
GW
Oui
Guyane
GY
Oui
Haïti
HT
Oui
Honduras
HN
Hong Kong
HK
Oui
Hongrie
HU
Islande
IS
Oui
Inde
DANS
Indonésie
ID
Irak
IQ
Irlande
IE
Oui
Israël
IL
Oui
Italie
IT
Oui
Côte d'Ivoire
CI
Jamaïque
JM
Oui
Japon
JP
Jordanie
JO
Oui
Kazakhstan
KZ
Kenya
KE
Kiribati
KI
Koweït
KW
Kirghizstan
KG
Laos
LA
Lettonie
LV
Oui
Liban
LB
Oui
Lesotho
LS
Oui
Liberia
LR
Oui
Libye
LY
Oui
Liechtenstein
LI
Oui
Lituanie
LT
Oui
Luxembourg
LU
Oui
API Version 2010-03-31
156
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
Macao
MO
Oui
Macédoine
MK
Oui
Madagascar
MG
Oui
Malawi
MW
Oui
Malaisie
MY
Maldives
MV
Oui
Mali
ML
Malte
MT
Oui
Martinique
MQ
Oui
Mauritanie
MR
Oui
Maurice
MU
Oui
Mexique
MX
Moldavie
MD
Oui
Monaco
MC
Mongolie
MO
Oui
Monténégro
ME
Oui
Montserrat
MS
Oui
Maroc
MA
Mozambique
MZ
Birmanie
MM
Namibie
NA
Népal
NP
Pays-Bas
NL
Oui
Antilles néerlandaises
AN
Oui
Nouvelle-Calédonie
NC
Oui
Nouvelle-Zélande
NZ
Nicaragua
NI
Niger
NE
Oui
Nigeria
NG
Oui
Norvège
NO
Oui
Oman
OM
API Version 2010-03-31
157
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
Pakistan
PK
Palaos
PW
Territoires palestiniens
PS
Oui
Panama
PA
Papouasie-Nouvelle-Guinée
PG
Oui
Paraguay
PY
Oui
Pérou
PE
Oui
Philippines
PH
Pologne
PL
Oui
Portugal
PT
Oui
Porto Rico
PR
Qatar
QA
République du Congo
CG
Ile de la Réunion
RE
Oui
Roumanie
RO
Russie
RU
Oui
Rwanda
RW
Oui
Saint Kitts et Nevis
KN
Sainte-Lucie
LC
Saint-Vincent-et-lesGrenadines
VC
Samoa
WS
Oui
Sao Tomé et Principe
ST
Oui
Arabie saoudite
SA
Sénégal
SN
Oui
Serbie
RS
Seychelles
SC
Oui
Sierra Leone
SL
Oui
Singapour
SG
Oui
Slovaquie
SK
Oui
Slovénie
SI
Oui
API Version 2010-03-31
158
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
Iles Salomon
SB
Oui
Somalie
SO
Oui
Afrique du Sud
ZA
Corée du Sud
KR
Soudan du Sud
SS
Oui
Espagne
ES
Oui
Sri Lanka
LK
Suriname
SR
Oui
Swaziland
SZ
Oui
Suède
SE
Oui
Suisse
CH
Oui
Taïwan
TW
Tadjikistan
TJ
Oui
Tanzanie
TZ
Oui
Thaïlande
TH
Togo
TG
Oui
Tonga
TO
Oui
Trinidad et Tobago
TT
Oui
Tunisie
TN
Turquie
TR
Turkménistan
TM
Oui
Iles Turks et Caicos
TC
Oui
Ouganda
UG
Oui
Ukraine
UA
Oui
Emirats arabes unis
AE
Royaume-Uni
Go
Oui
Etats-Unis
ETATS-UNIS
Uruguay
UY
Ouzbékistan
UZ
Oui
Vanuatu
VU
Oui
Venezuela
VE
API Version 2010-03-31
159
Amazon Simple Notification
Service Manuel du développeur
Régions et pays pris en charge
Pays
Code ISO
Prend en charge les ID
expéditeur
Vietnam
VN
Iles Vierges britanniques
VG
Oui
Iles Vierges américaines
VI
Yémen
YE
Oui
Zambie
ZM
Oui
Zimbabwe
ZW
Oui
API Version 2010-03-31
160
Amazon Simple Notification
Service Manuel du développeur
Envoi de messages Amazon SNS
à des points de terminaison HTTP/
HTTPS
Vous pouvez utiliser Amazon SNS pour envoyer des messages de notification à un ou plusieurs points
de terminaison HTTP ou HTTPS. Lorsque vous abonnez un point de terminaison à une rubrique,
vous pouvez publier une notification dans la rubrique. Amazon SNS envoie alors une demande HTTP
POST diffusant le contenu de la notification au point de terminaison abonné. Lors de l'abonnement du
point de terminaison, vous choisissez si Amazon SNS doit utiliser HTTP ou HTTPS pour envoyer la
demande POST au point de terminaison. Si vous utilisez HTTPS, vous pouvez bénéficier de la prise en
charge des éléments suivants dans Amazon SNS :
• Server Name Indication (SNI) — Cette option permet à Amazon SNS de prendre en charge des
points de terminaison HTTPS qui requièrent SNI, tel qu’un serveur nécessitant plusieurs certificats
pour héberger plusieurs domaines. Pour plus d'informations sur SNI, consultez la page http://
en.wikipedia.org/wiki/Server_Name_Indication.
• Basic and Digest Access Authentication — Cette option vous permet de spécifier un nom d'utilisateur
et un mot de passe dans l'URL HTTPS pour la demande HTTP POST, par exemple https://
user:[email protected] ou https://[email protected]. Le nom d'utilisateur et le mot de passe
sont chiffrés via la connexion SSL établie lors de l'utilisation de HTTPS. Seul le nom de domaine est
envoyé en clair. Pour plus d'informations sur Basic and Digest Access Authentication, consultez la
page http://www.rfc-editor.org/info/rfc2617
La demande contient l'objet et le message ayant été publiés dans la rubrique, ainsi que les
métadonnées relatives à la notification dans un document JSON. La demande se présente comme la
requête HTTP POST suivante. Pour plus d'informations sur l'en-tête HTTP et le format JSON du corps
de la demande, consultez les pages En-têtes HTTP/HTTPS (p. 212) et Format JSON de notification
HTTP/HTTPS (p. 215).
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: da41e39f-ea4d-435a-b922-c6aae3915ebe
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:uswest-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
API Version 2010-03-31
161
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Vérification de la disponibilité de votre point
de terminaison pour traiter des messages Amazon SNS
Content-Length: 761
Content-Type: text/plain; charset=UTF-8
Host: ec2-50-17-44-49.compute-1.amazonaws.com
Connection: Keep-Alive
User-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/49IkxDKz8YrlH2qJXj2iZB0Zo2O7
"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:uswest-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55"
}
Pour permettre à une rubrique Amazon SNS d'envoyer des messages à un point de terminaison HTTP
ou HTTPS, procédez comme suit :
Etape 1 : Vérification de la disponibilité de votre point de terminaison pour traiter des messages
Amazon SNS (p. 162)
Etape 2 : Abonnement du point de terminaison HTTP/HTTPS à la rubrique Amazon SNS (p. 166)
Etape 3 : Confirmation de l'abonnement (p. 166)
Etape 4 : Définition de la stratégie de relance de la diffusion pour l'abonnement (facultatif) (p. 166)
Etape 5 : Octroi aux utilisateurs d'autorisations de publication dans la rubrique (facultatif) (p. 167)
Etape 6 : Envoi de messages au point de terminaison HTTP/HTTPS (p. 168)
Etape 1 : Vérification de la disponibilité de votre
point de terminaison pour traiter des messages
Amazon SNS
Avant d'abonner votre point de terminaison HTTP ou HTTPS à une rubrique, vous devez vous assurer
qu'il est capable de traiter les demandes HTTP POST utilisées par Amazon SNS pour envoyer les
messages de notification et de confirmation d'abonnement. En général, il s'agit de créer et déployer
une application web (par exemple, un servlet Java si votre hôte de point de terminaison exécute
Linux avec Apache et Tomcat) qui traite les demandes HTTP provenant d'Amazon SNS. Lorsque
vous abonnez à un point de terminaison HTTP, Amazon SNS envoie une demande de confirmation
d'abonnement. Votre point de terminaison doit être prêt à recevoir et traiter cette demande lorsque
vous créez l'abonnement, car Amazon SNS envoie la demande à ce moment-là. Amazon SNS
n'envoie pas de notifications au point de terminaison tant que vous ne confirmez pas l'abonnement.
Une fois que vous avez confirmé l'abonnement, Amazon SNS envoie des notifications au point de
terminaison lorsqu'une action de publication est effectuée sur la rubrique abonnée.
API Version 2010-03-31
162
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Vérification de la disponibilité de votre point
de terminaison pour traiter des messages Amazon SNS
Pour configurer votre point de terminaison pour le traitement des messages de notification et
de confirmation d'abonnement
1.
Votre code doit lire les en-têtes HTTP des demandes HTTP POST qu'Amazon SNS envoie à votre
point de terminaison. Votre code doit rechercher le champ d'en-tête x-amz-sns-message-type,
qui vous indique le type de message qu'Amazon SNS vous a envoyé. En examinant l'en-tête, vous
pouvez déterminer le type de message sans avoir à analyser le corps de la demande HTTP. Vous
devez traiter deux types de messages : SubscriptionConfirmation et Notification. Le
message UnsubscribeConfirmation est utilisé uniquement lorsque l'abonnement est supprimé
de la rubrique.
Pour plus d'informations sur l'en-tête HTTP, consultez la page En-têtes HTTP/HTTPS (p. 212).
La demande HTTP POST suivante constitue un exemple de message de confirmation
d'abonnement.
POST / HTTP/1.1
x-amz-sns-message-type: SubscriptionConfirmation
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent
{
"Type" : "SubscriptionConfirmation",
"MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b",
"Token" :
"2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb718
"TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Message" : "You have chosen to subscribe to the topic arn:aws:sns:uswest-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:uswest-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6
"Timestamp" : "2012-04-26T20:45:04.751Z",
"SignatureVersion" : "1",
"Signature" : "EXAMPLEpH
+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDV
"SigningCertURL" : "https://sns.us-west-2.amazonaws.com/
SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
2.
Votre code doit analyser le document JSON dans le corps de la demande HTTP POST pour
lire les paires nom-valeur qui constituent le message Amazon SNS. Utilisez un analyseur JSON
capable de convertir la représentation avec séquence d’échappement des caractères de contrôle
en valeurs de caractères ASCII (par exemple, conversion de \n en caractère de nouvelle ligne).
Vous pouvez utiliser un analyseur JSON existant tel que Jackson JSON Processor (http://
wiki.fasterxml.com/JacksonHome) ou écrire le vôtre. Pour envoyer le texte figurant dans les
champs d'objet et de message dans un format JSON valide, Amazon SNS doit convertir certains
caractères de contrôle en représentations avec séquence d’échappement qui peuvent être
incluses dans le document JSON. Lorsque vous recevez le document JSON dans le corps de la
demande POST envoyée à votre point de terminaison, vous devez restaurer les valeurs d'origine
des caractères d’échappement si vous souhaitez une représentation exacte de l'objet d'origine et
des messages publiés dans la rubrique. Cette opération est essentielle si vous souhaitez vérifier
API Version 2010-03-31
163
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Vérification de la disponibilité de votre point
de terminaison pour traiter des messages Amazon SNS
la signature d'une notification, car la signature utilise le message et l'objet dans leurs formats
d'origine dans le cadre de la chaîne de connexion.
3.
Votre code doit vérifier l'authenticité d'un message de notification, de confirmation d'abonnement
ou de confirmation de désabonnement envoyé par Amazon SNS. A l'aide des informations
contenues dans le message Amazon SNS, votre point de terminaison peut recréer la signature
afin que vous puissiez vérifier le contenu du message en mettant en correspondance votre
signature avec celle envoyée par Amazon SNS avec le message. Pour plus d'informations sur
la vérification de la signature d'un message, consultez la page Vérification des signatures des
messages Amazon SNS (p. 188).
4.
En fonction du type spécifié par le champ d'en-tête x-amz-sns-message-type, votre code doit
lire le document JSON contenu dans le corps de la demande HTTP et traiter le message. Vous
trouverez ci-dessous les instructions permettant de traiter les deux principaux types de messages.
SubscriptionConfirmation
Lisez la valeur du paramètre SubscribeURL et accédez à cette URL. Pour confirmer
l'abonnement et commencer à recevoir des notifications sur le point de terminaison,
vous devez accéder à l'SubscribeURLURL (par exemple, en envoyant une demande
HTTP GET à l'URL). Consultez l'exemple de demande HTTP à l’étape précédente pour
voir comment se présente SubscribeURL. Pour plus d'informations sur le format du
message SubscriptionConfirmation, consultez la page Format JSON de confirmation
d'abonnement HTTP/HTTPS (p. 213). Lorsque vous accédez à l'URL, vous obtenez une
réponse semblable au document XML suivant. Le document renvoie l'ARN de l'abonnement
pour le point de terminaison dans l'élément ConfirmSubscriptionResult.
<ConfirmSubscriptionResponse xmlns="http://sns.amazonaws.com/
doc/2010-03-31/">
<ConfirmSubscriptionResult>
<SubscriptionArn>arn:aws:sns:uswest-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55</
SubscriptionArn>
</ConfirmSubscriptionResult>
<ResponseMetadata>
<RequestId>075ecce8-8dac-11e1-bf80-f781d96e9307</RequestId>
</ResponseMetadata>
</ConfirmSubscriptionResponse>
Au lieu d'accéder à SubscribeURL, vous pouvez confirmer l'abonnement à l'aide de l'action
ConfirmSubscription avec le paramètre Token défini sur la valeur correspondante dans
le message SubscriptionConfirmation. Si vous souhaitez autoriser uniquement le
propriétaire de la rubrique et le propriétaire de l'abonnement à désabonner le point de
terminaison, appelez l'action ConfirmSubscription avec une signature AWS.
Notification
Lisez les valeurs de Subject et Message pour obtenir les informations de notification
publiées dans la rubrique.
Pour plus d'informations sur le format du message Notification, consultez la page Entêtes HTTP/HTTPS (p. 212). La demande HTTP POST suivante constitue un exemple de
message de notification envoyé au point de terminaison example.com.
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:uswest-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96
Content-Length: 773
API Version 2010-03-31
164
Amazon Simple Notification
Service Manuel du développeur
Etape 1 : Vérification de la disponibilité de votre point
de terminaison pour traiter des messages Amazon SNS
Content-Type: text/plain; charset=UTF-8
Host: example.com
Connection: Keep-Alive
User-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:uswest-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96"
}
5.
Assurez-vous que votre point de terminaison répond au message HTTP POST provenant
d'Amazon SNS avec le code d'état approprié. La connexion expirera au bout de 15 secondes. Si
votre point de terminaison ne répond pas dans le délai imparti ou renvoie un code d'état en dehors
de la plage 200–4xx, Amazon SNS considère la diffusion du message comme une tentative
infructueuse.
6.
Vérifiez que votre code peut traiter les relances de diffusion de messages à partir d'Amazon
SNS. Si Amazon SNS ne reçoit pas de réponse positive de votre point de terminaison, il tente
de diffuser à nouveau le message. Cela s'applique à tous les messages, notamment le message
de confirmation d'abonnement. Par défaut, si la diffusion initiale du message échoue, Amazon
SNS tente jusqu'à trois relances avec un délai de 20 secondes entre les échecs des tentatives.
Veuillez noter que la demande de message expire au bout de 15 secondes. Cela signifie que si
l'échec de la diffusion du message est provoqué par un dépassement du délai d'attente, Amazon
SNS effectue une relance environ 35 secondes après la tentative de diffusion précédente. Si la
stratégie de diffusion par défaut ne vous convient pas, vous pouvez en définir une autre sur le
point de terminaison.
Pour que les choses soient claires, Amazon SNS effectue une relance uniquement après l'échec
d'une tentative de livraison. Vous pouvez identifier un message à l'aide du champ d'en-tête xamz-sns-message-id. En comparant les ID des messages que vous avez traités avec les
messages entrants, vous pouvez déterminer si le message est une tentative de relance.
7.
Si vous abonnez un point de terminaison HTTPS, assurez-vous qu'il dispose d'un certificat de
serveur émis par une autorité de certification (CA) reconnue. Amazon SNS enverra uniquement
des messages aux points de terminaison HTTPS possédant un certificat de serveur signé par
une autorité de certification approuvée par Amazon SNS. Pour obtenir la liste des autorités de
certification approuvées, consultez la page Autorités de certification (CA) reconnues par Amazon
SNS pour les points de terminaison HTTPS (p. 175).
8.
Déployez le code que vous avez créé pour recevoir des messages Amazon SNS. Lorsque vous
abonnez le point de terminaison, il doit être prêt à recevoir au moins le message de confirmation
d'abonnement.
API Version 2010-03-31
165
Amazon Simple Notification
Service Manuel du développeur
Etape 2 : Abonnement du point de terminaison
HTTP/HTTPS à la rubrique Amazon SNS
Etape 2 : Abonnement du point de terminaison
HTTP/HTTPS à la rubrique Amazon SNS
Pour envoyer des messages à un point de terminaison HTTP ou HTTPS via une rubrique, vous
devez abonner le point de terminaison à la rubrique Amazon SNS. Spécifiez le point de terminaison à
l'aide de son URL. Pour vous abonner à une rubrique, vous pouvez utiliser la console Amazon SNS,
la commande sns-subscribe, ou l'action d'API Subscribe. Avant de commencer, assurez-vous que
vous disposez de l'URL du point de terminaison à abonner et que ce dernier est prêt à recevoir les
messages de confirmation et de notification, comme décrit à l’étape 1.
Pour abonner un point de terminaison HTTP ou HTTPS à une rubrique à l'aide de la console
Amazon SNS
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez la rubrique.
3.
Cliquez sur la liste déroulante Other actions, puis sélectionnez Subscribe to topic.
4.
Dans la liste déroulante Protocol, sélectionnez HTTP ou HTTPS.
5.
Dans la zone Endpoint, collez l'URL du point de terminaison auquel la rubrique doit envoyer des
messages, puis cliquez sur Create subscription.
6.
Pour le message Subscription request received!, cliquez sur Close.
Le champ Subscription ID de votre nouvel abonnement affiche PendingConfirmation. Lorsque
vous confirmez l'abonnement, Subscription ID affiche l'ID d'abonnement.
Etape 3 : Confirmation de l'abonnement
Une fois que vous avez abonné votre point de terminaison, Amazon SNS lui envoie un message de
confirmation d'abonnement. Le code qui exécute les actions décrites dans l'étape 1 (p. 162) doit
déjà être déployé sur votre point de terminaison. Le code sur le point de terminaison doit en particulier
récupérer la valeur SubscribeURL dans le message de confirmation d'abonnement, puis accéder à
l'emplacement spécifié par SubscribeURL lui-même, ou le mettre à votre disposition afin que vous
puissiez accéder manuellement à SubscribeURL, par exemple à l'aide d'un navigateur web. Amazon
SNS n'envoie pas de messages au point de terminaison tant que l'abonnement n'a pas été confirmé.
Lorsque vous accédez à SubscribeURL, la réponse contient un document XML comprenant un
élément SubscriptionArn qui spécifie l'ARN de l'abonnement. Vous pouvez également utiliser la
console Amazon SNS pour vérifier que l'abonnement est confirmé : le champ Subscription ID affiche
l'ARN de l'abonnement au lieu de la valeur PendingConfirmation que vous avez vue lors de l'ajout
initial de l'abonnement.
Etape 4 : Définition de la stratégie de relance de
la diffusion pour l'abonnement (facultatif)
Par défaut, si la diffusion initiale du message échoue, Amazon SNS tente jusqu'à trois relances avec
un délai de 20 secondes entre les échecs des tentatives. Comme indiqué dans l'étape 1 (p. 162),
votre point de terminaison doit contenir du code capable de traiter les messages relancés. En
définissant la stratégie de diffusion sur une rubrique ou un abonnement, vous pouvez contrôler la
fréquence et l'intervalle auxquels Amazon SNS relancera les messages qui ont échoué. Vous pouvez
définir une stratégie de diffusion sur une rubrique ou un abonnement particulier.
API Version 2010-03-31
166
Amazon Simple Notification
Service Manuel du développeur
Etape 5 : Octroi aux utilisateurs d'autorisations
de publication dans la rubrique (facultatif)
Etape 5 : Octroi aux utilisateurs d'autorisations de
publication dans la rubrique (facultatif)
Par défaut, le propriétaire de la rubrique dispose d''autorisations de publication dans la rubrique.
Pour permettre à d'autres utilisateurs ou applications d'effectuer une publication dans la rubrique,
vous devez utiliser AWS Identity and Access Management (IAM) pour accorder des autorisations de
publication dans la rubrique. Pour plus d'informations sur l'octroi aux utilisateurs IAM d'autorisations
pour les actions Amazon SNS, consultez la page Contrôle de l'accès des utilisateurs à votre compte
AWS.
Il existe deux façons de contrôler l'accès à une rubrique :
• Ajoutez une stratégie à un utilisateur ou un groupe IAM. La façon la plus simple d'accorder à des
utilisateurs des autorisations d'accès à des rubriques consiste à créer un groupe et à lui ajouter la
stratégie appropriée, puis à ajouter des utilisateurs à ce groupe. Il est beaucoup plus facile d'ajouter
ou de supprimer des utilisateurs dans un groupe que de suivre les stratégies que vous définissez
pour des utilisateurs individuels.
• Ajoutez une stratégie à la rubrique. Si vous souhaitez accorder des autorisations d'accès à une
rubrique à un autre compte AWS, la seule façon de procéder consiste à ajouter une stratégie dont le
mandataire est le compte AWS auquel vous voulez octroyer des autorisations.
Vous devez utiliser la première méthode dans la plupart des cas (appliquer des stratégies à des
groupes et gérer les autorisations accordées aux utilisateurs en ajoutant ou supprimant les utilisateurs
appropriés dans les groupes). Si vous avez besoin d'accorder des autorisations à un utilisateur d'un
autre compte, utilisez la seconde méthode.
Si vous avez ajouté la stratégie suivante à un utilisateur ou un groupe IAM, vous devez accorder à cet
utilisateur ou aux membres de ce groupe l'autorisation d'effectuer l'action sns:Publish sur la rubrique
MyTopic.
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"AllowPublishToMyTopic",
"Effect":"Allow",
"Action":"sns:Publish",
"Resource":"arn:aws:sns:us-east-1:123456789012:MyTopic"
}
]
}
L'exemple de stratégie suivant montre comment accorder à un autre compte des autorisations d'accès
à une rubrique.
Note
Lorsque vous accordez à un autre compte AWS l'accès à une ressource de votre compte,
vous permettez également aux utilisateurs IAM disposant d'autorisations d'accès de niveau
administrateur (accès générique) d'accéder à cette ressource. Tous les autres utilisateurs IAM
de l'autre compte se voient automatiquement refuser l'accès à votre ressource. Si vous voulez
accorder à des utilisateurs IAM spécifiques de ce compte AWS l'accès à votre ressource, le
compte ou un utilisateur IAM disposant d'un accès de niveau administrateur doit déléguer
des autorisations pour la ressource à ces utilisateurs IAM. Pour plus d'informations sur la
API Version 2010-03-31
167
Amazon Simple Notification
Service Manuel du développeur
Etape 6 : Envoi de messages au
point de terminaison HTTP/HTTPS
délégation entre comptes, consultez la page Activation d'accès entre comptes dans le manuel
Using IAM Guide.
Si vous avez ajouté la stratégie suivante à une rubrique MyTopic dans le compte 123456789012, vous
devez accorder au compte 111122223333 l'autorisation d'effectuer l'action sns:Publish sur cette
rubrique.
{
"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"
}
]
}
Etape 6 : Envoi de messages au point de
terminaison HTTP/HTTPS
Vous pouvez envoyer un message aux abonnements d'une rubrique en effectuant une publication
dans la rubrique. Pour effectuer une publication dans une rubrique, vous pouvez utiliser la console
Amazon SNS, la commande sns-publish, ou l'API Publish.
Si vous avez suivi l'étape 1 (p. 162), le code que vous avez déployé sur votre point de terminaison
doit traiter la notification.
Pour effectuer une publication dans une rubrique à l'aide de la console Amazon SNS
1.
En utilisant les informations d'identification du compte AWS ou de l'utilisateur IAM disposant d'une
autorisation de publication dans la rubrique, connectez-vous à AWS Management Console et
ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez une rubrique.
3.
Cliquez sur le bouton Publish to topic.
4.
Dans la zone Subject, entrez un objet (par exemple, Test de la publication sur mon
point de terminaison).
5.
Dans la zone Message, saisissez du texte (par exemple, Bonjour !), puis cliquez sur Publish
message.
Le message suivant s'affiche : Your message has been successfully published.
API Version 2010-03-31
168
Amazon Simple Notification
Service Manuel du développeur
Configuration des stratégies de relance
de la diffusion Amazon SNS pour les
points de terminaison HTTP/HTTPS
Configuration des stratégies de relance de
la diffusion Amazon SNS pour les points de
terminaison HTTP/HTTPS
Rubriques
• Application des stratégies de diffusion à des rubriques et des abonnements (p. 171)
• Définition du taux de réception maximum (p. 172)
• Phase de relance immédiate (p. 173)
• Phase de pré-interruption (p. 173)
• Phase d'interruption (p. 174)
• Phase de post-interruption (p. 175)
Une diffusion Amazon SNS réussie vers un point de terminaison HTTP/HTTPS nécessite parfois
plusieurs tentatives. Cela peut être le cas, par exemple, si le serveur web qui héberge le point de
terminaison abonné est arrêté pour des opérations de maintenance ou fait face à un trafic élevé. Si
une tentative de diffusion initiale n'aboutit pas à une réponse positive de l'abonné, Amazon SNS tente
à nouveau de diffuser le message. Une telle tentative est appelée relance. En d'autres termes, une
relance est une tentative de diffusion qui se produit après la tentative de diffusion initiale.
Amazon SNS tente une relance uniquement après l'échec d'une tentative de diffusion. Amazon SNS
considère les situations suivantes comme un échec de la tentative de diffusion.
• Statut HTTP compris dans la plage 500-599.
• Statut HTTP en dehors de la plage 200-599.
• Expiration d'une demande (15 secondes). Notez que si une expiration de la demande se produit,
la relance suivante aura lieu à l'intervalle spécifié après l'expiration. Par exemple, si l'intervalle de
relance est 20 secondes et qu'une demande expire, le début de la demande suivante aura lieu
35 secondes après le début de la demande qui a expiré.
• Erreur de connexion, telle qu'une expiration de la connexion, un point de terminaison inaccessible,
un certificat SSL erroné, etc.
Vous pouvez utiliser des stratégies de diffusion afin de contrôler non seulement le nombre total de
relances, mais également le délai entre chaque relance. Vous pouvez spécifier jusqu'à 100 relances au
total, réparties en quatre phases distinctes. La durée de vie maximale d'un message dans le système
est une heure. Cette limite d'une heure ne peut pas être rallongée par une stratégie de diffusion.
API Version 2010-03-31
169
Amazon Simple Notification
Service Manuel du développeur
Configuration des stratégies de relance
de la diffusion Amazon SNS pour les
points
terminaison
HTTP/HTTPS
1. Phase de relance immédiate
(p.de
173) :
également
appelée phase sans délai, cette phase se
produit immédiatement après la tentative de diffusion initiale. La valeur que vous définissez pour
Retries with no delay détermine le nombre de relances immédiatement après la tentative de
diffusion initiale. Il n'y a aucun délai entre les relances dans cette phase.
2. Phase de pré-interruption (p. 173) : la phase de pré-interruption suit la phase de relance
immédiate. Cette phase permet de créer un ensemble de relances qui se produisent avant qu'une
fonction d'interruption ne s'applique aux relances. Utilisez le paramètre Minimum delay retries pour
spécifier le nombre de relances dans la phase de pré-interruption. Vous pouvez contrôler le délai
entre les relances dans cette phase à l'aide du paramètre Minimum delay.
3. Phase d'interruption (p. 174) : cette phase s'appelle la phase d'interruption, car vous pouvez
contrôler le délai entre les relances dans cette phase à l'aide de la fonction d'interruption de relance.
Définissez les paramètres Minimum delay et Maximum delay, puis sélectionnez Retry backoff
function pour définir à quelle vitesse le délai augmente entre le minimum et le maximum.
4. Phase de post-interruption (p. 175) : la phase de post-interruption suit la phase d'interruption.
Utilisez le paramètre Maximum delay retries pour spécifier le nombre de relances dans la phase
de post-interruption. Vous pouvez contrôler le délai entre les relances dans cette phase à l'aide du
paramètre Maximum delay.
La phase d'interruption est celle qui est la plus couramment utilisée. Si aucune stratégie de diffusion
n'est définie, la valeur par défaut consiste à relancer la tentative trois fois dans la phase d'interruption,
avec un délai de 20 secondes entre chaque relance. La valeur par défaut pour les paramètres
Minimum delay et Maximum delay est 20. Le nombre de relances par défaut étant égal à 3, la stratégie
de relance par défaut appelle 3 relances au total avec un délai de 20 secondes entre chaque relance.
Le schéma suivant illustre le délai associé à chaque relance.
Pour voir la façon dont la fonction d'interruption de relance affecte le délai entre les relances, vous
pouvez définir le délai maximum sur 40 secondes et laisser les valeurs par défaut pour les autres
paramètres. Avec cette modification, votre stratégie de diffusion spécifie maintenant 3 relances
au cours de la phase d'interruption, un délai minimum de 20 secondes et un délai maximum de
40 secondes. La fonction d'interruption par défaut étant linéaire, le délai entre les messages augmente
à un rythme constant au cours de la phase d'interruption. Amazon SNS tente la première relance
au bout de 20 secondes, la deuxième au bout de 30 secondes et la relance finale au bout de
40 secondes. Le schéma suivant illustre le délai associé à chaque relance.
API Version 2010-03-31
170
Amazon Simple Notification
Service Manuel du développeur
Application des stratégies de diffusion
à des rubriques et des abonnements
La durée de vie maximale d'un message dans le système est une heure. Cette limite d'une heure ne
peut pas être rallongée par une stratégie de diffusion.
Note
Seuls les types d'abonnement HTTP et HTTPS sont pris en charge par les stratégies de
diffusion. La prise en charge d'autres types d'abonnement Amazon SNS (par exemple, e-mail,
Amazon SQS et SMS) n'est pas disponible actuellement.
Application des stratégies de diffusion à des
rubriques et des abonnements
Vous pouvez appliquer des stratégies de diffusion à des rubriques Amazon SNS. Si vous définissez
une stratégie de diffusion sur une rubrique, la stratégie s'applique à tous les abonnements de la
rubrique. Le schéma suivant illustre une rubrique avec une stratégie de diffusion qui s'applique aux
trois abonnements associés à cette rubrique.
Vous pouvez également appliquer des stratégies de diffusion à des abonnements individuels. Si
vous affectez une stratégie de diffusion à un abonnement, la stratégie au niveau de l'abonnement
est prioritaire sur la stratégie de diffusion au niveau de la rubrique. Dans le schéma suivant, un
abonnement dispose d'une stratégie de diffusion au niveau de l'abonnement, ce qui n'est pas le cas
pour les deux autres abonnements.
API Version 2010-03-31
171
Amazon Simple Notification
Service Manuel du développeur
Définition du taux de réception maximum
Dans certains cas, vous voudrez peut-être ignorer toutes les stratégies de diffusion d'abonnement
afin que la stratégie de diffusion de votre rubrique s'applique à tous les abonnements, même si un
abonnement a défini sa propre stratégie de diffusion. Pour configurer Amazon SNS pour l'application
de votre stratégie de diffusion de la rubrique à tous les abonnements, cliquez sur Ignore subscription
override dans la boîte de dialogue View/Edit Topic Delivery Policies. Le schéma suivant illustre
une stratégie de diffusion au niveau de la rubrique qui s'applique à tous les abonnements, même
l'abonnement disposant de sa propre stratégie de diffusion d'abonnement, car les stratégies au niveau
de l'abonnement ont été spécifiquement ignorées.
Définition du taux de réception maximum
Vous pouvez définir le nombre maximum de messages par seconde qu'Amazon SNS envoie à un point
de terminaison abonné en définissant le paramètre Maximum receive rate. Amazon SNS conserve les
messages qui sont en attente de diffusion pendant une heure au maximum. Les messages conservés
pendant plus d'une heure sont effacés.
• Pour définir un taux de réception maximum qui s'applique à tous les abonnements d'une rubrique,
appliquez le paramètre au niveau de la rubrique à l'aide de la boîte de dialogue Edit Topic Delivery
Policy. Pour plus d'informations, consultez Pour définir le taux de réception maximum pour une
rubrique (p. 173).
• Pour définir un taux de réception maximum qui s'applique à un abonnement spécifique, appliquez
le paramètre au niveau de l'abonnement à l'aide de la boîte de dialogue Edit Subscription Delivery
Policy. Pour plus d'informations, consultez Pour définir le taux de réception maximum pour un
abonnement (p. 173).
API Version 2010-03-31
172
Amazon Simple Notification
Service Manuel du développeur
Phase de relance immédiate
Pour définir le taux de réception maximum pour une rubrique
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez la rubrique.
3.
Cliquez sur la liste déroulante Other actions et sélectionnez Edit topic delivery policy.
4.
Dans la zone Maximum receive rate, saisissez une valeur entière (par exemple, 2).
5.
Cliquez sur Update policy pour enregistrer vos modifications.
Pour définir le taux de réception maximum pour un abonnement
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez un ARN de rubrique.
3.
Dans le volet Topic Details, sélectionnez un abonnement, puis cliquez sur Edit topic delivery
policy.
4.
Dans la zone Maximum receive rate, saisissez une valeur entière (par exemple, 2).
5.
Cliquez sur Update policy pour enregistrer vos modifications.
Phase de relance immédiate
La phase de relance immédiate se produit immédiatement après la tentative de diffusion initiale.
Cette phase est également connue sous le nom de phase sans délai, car il n'y a aucun délai entre les
relances. Le nombre de relances par défaut pour cette phase est 0.
Pour définir le nombre de relances dans la phase de relance immédiate
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez un ARN de rubrique.
3.
Dans le volet Topic Details, sélectionnez Edit topic delivery policy dans la liste déroulante Other
topic actions.
4.
Dans la zone Retries with no delay, saisissez une valeur entière.
5.
Cliquez sur Update policy pour enregistrer vos modifications.
Phase de pré-interruption
La phase de pré-interruption suit la phase de relance immédiate. Utilisez cette phase si vous souhaitez
créer un ensemble d'une ou plusieurs relances qui se produisent avant que la fonction d'interruption
n'affecte le délai entre les relances. Dans cette phase, le délai entre les relances est constant et égal à
la valeur choisie pour le paramètre Minimum delay. Le paramètre Minimum delay affecte les relances
en deux temps : il s'applique à toutes les relances dans la phase de pré-interruption et sert de délai
initial pour les relance dans la phase d'interruption. Le nombre de relances par défaut pour cette phase
est 0.
Pour définir le nombre de relances dans la phase de pré-interruption
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez un ARN de rubrique.
API Version 2010-03-31
173
Amazon Simple Notification
Service Manuel du développeur
Phase d'interruption
3.
Dans le volet Topic Details, sélectionnez Edit topic delivery policy dans la liste déroulante Other
topic actions.
4.
Dans la zone Minimum delay retries, saisissez une valeur entière.
5.
Dans la zone Minimum delay, saisissez une valeur entière pour définir le délai entre les messages
dans cette phase.
La valeur que vous définissez doit être inférieure ou égale à la valeur définie pour Maximum delay.
6.
Cliquez sur Update policy pour enregistrer vos modifications.
Phase d'interruption
La phase d'interruption est la seule qui s'applique par défaut. Vous pouvez contrôler le nombre de
relances dans la phase d'interruption à l'aide du paramètre Number of retries.
Important
La valeur que vous choisissez pour Number of retries représente le nombre total de relances,
y compris les relances que vous définissez pour Retries with no delay, Minimum delay retries
et Maximum delay retries.
Vous pouvez contrôler la fréquence des relances dans la phase d'interruption avec trois paramètres.
• Minimum delay : le délai minimum définit le délai associé à la première tentative de relance dans la
phase d'interruption.
• Maximum delay : le délai maximum définit le délai associé à la tentative de relance finale dans la
phase d'interruption.
• Retry backoff function : la fonction d'interruption de relance définit l'algorithme qu'Amazon SNS
utilise pour calculer les délais associés à toutes les tentatives de relance entre la première et la
dernière relance dans la phase d'interruption.
Vous pouvez choisir parmi quatre fonctions d'interruption de relance.
• Linéaire
• Arithmétique
• Géométrique
• Exponentielle
La capture d’écran suivante montre la façon dont chaque fonction d'interruption de relance affecte le
délai associé aux messages pendant la période d'interruption. L'axe vertical représente le délai, en
secondes, associé à chacune des 10 relances. L'axe horizontal représente le nombre de relances. Le
délai minimum est 5 secondes et le délai maximum, 260 secondes.
API Version 2010-03-31
174
Amazon Simple Notification
Service Manuel du développeur
Phase de post-interruption
Phase de post-interruption
La phase de post-interruption est la phase finale. Utilisez cette phase si vous souhaitez créer un
ensemble d'une ou plusieurs relances qui se produisent après que la fonction d'interruption n'affecte le
délai entre les relances. Dans cette phase, le délai entre les relances est constant et égal à la valeur
choisie pour le paramètre Maximum delay. Le paramètre Maximum delay affecte les relances en deux
temps : il s'applique à toutes les relances dans la phase de post-interruption et sert de délai final pour
les relance dans la phase d'interruption. Le nombre de relances par défaut pour cette phase est 0.
Pour définir le nombre de relances dans la phase de post-interruption
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
3.
Dans le volet de navigation de gauche, cliquez sur Topics, puis sélectionnez un ARN de rubrique.
Dans le volet Topic Details, sélectionnez Edit topic delivery policy dans la liste déroulante Other
topic actions.
Dans la zone Maximum delay retries, saisissez une valeur entière.
4.
5.
6.
Dans la zone Maximum delay, saisissez une valeur entière pour définir le délai entre les
messages dans cette phase.
La valeur que vous définissez doit être supérieure ou égale à la valeur définie pour Minimum
delay.
Cliquez sur Update policy pour enregistrer vos modifications.
Autorités de certification (CA) reconnues par
Amazon SNS pour les points de terminaison
HTTPS
Si vous abonnez un point de terminaison HTTPS à une rubrique, il doit disposer d'un certificat de
serveur signé par une autorité de certification (CA) approuvée. Amazon SNS diffuse des messages
uniquement aux points de terminaison HTTPS disposant d'un certificat signé par une autorité de
certification reconnue par Amazon SNS. Amazon SNS reconnaît les autorités de certification suivantes.
mozillacert81.pem, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
175
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
Certificate fingerprint (SHA1):
07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E
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:33
swisssignplatinumg2ca, 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:66
mozillacert145.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:04
mozillacert37.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:97
mozillacert4.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:4B
amzninternalitseccag2, 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:ED
mozillacert70.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:3C
mozillacert88.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:4D
mozillacert134.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:62
mozillacert26.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:11
verisignclass2g2ca, 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:9D
mozillacert77.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:C6
mozillacert123.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:E5
utndatacorpsgcca, 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:D4
mozillacert15.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:BB
digicertglobalrootca, 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:36
mozillacert66.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:34
mozillacert112.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:37
utnuserfirstclientauthemailca, 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:8A
API Version 2010-03-31
176
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
verisignc2g1.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:2A
mozillacert55.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:12
mozillacert101.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:39
mozillacert119.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:FE
verisignc3g1.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:6B
mozillacert44.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:C6
mozillacert108.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:9C
mozillacert95.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:57
keynectisrootca, 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:97
mozillacert141.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:A6
equifaxsecureglobalebusinessca1, 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:45
baltimorecodesigningca, 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:0D
mozillacert33.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:7D
mozillacert0.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
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:F2
mozillacert130.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:8E
mozillacert148.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:D7
mozillacert22.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:96
verisignc1g1.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:6F
mozillacert7.pem, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
177
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
Certificate fingerprint (SHA1):
AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A
mozillacert73.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:0E
mozillacert137.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:D1
swisssignsilverg2ca, 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:CB
mozillacert11.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:43
mozillacert29.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:CE
mozillacert62.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:6B
mozillacert126.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:42
soneraclass1ca, 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:FF
mozillacert18.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:D9
mozillacert51.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:9B
mozillacert69.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:19
mozillacert115.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:E9
verisignclass3g5ca, 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:E5
utnuserfirsthardwareca, 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:D7
addtrustqualifiedca, 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:CF
mozillacert40.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:F5
mozillacert58.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:B0
verisignclass3g3ca, 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:C6
mozillacert104.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:1E
API Version 2010-03-31
178
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
mozillacert91.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:04
thawtepersonalfreemailca, 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:E2
certplusclass3pprimaryca, 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:79
verisignc3g4.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:3A
swisssigngoldg2ca, 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:61
mozillacert47.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:96
mozillacert80.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:BB
mozillacert98.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
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:27
starfieldclass2ca, 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:8A
mozillacert36.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:0D
mozillacert3.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:AF
globalsignr2ca, 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:FE
mozillacert87.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:74
mozillacert133.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:84
mozillacert25.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:E5
verisignclass1g2ca, 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:47
mozillacert76.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:B7
mozillacert122.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:68
godaddysecurecertificationauthority, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
179
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
Certificate fingerprint (SHA1):
7C:46:56:C3:06:1F:7F:4C:0D:67:B3:19:A8:55:F6:0E:BC:11:FC:44
mozillacert14.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:25
equifaxsecureca, 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:3A
mozillacert65.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:FB
mozillacert111.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:65
certumtrustednetworkca, 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
mozillacert129.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:79
mozillacert54.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:FD
mozillacert100.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:F0
mozillacert118.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:45
mozillacert151.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:C6
thawteprimaryrootcag3, 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:F2
quovadisrootca, 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:C9
thawteprimaryrootcag2, 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:12
deprecateditsecca, 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:9D
entrustrootcag2, 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:D4
mozillacert43.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:7A
mozillacert107.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:C6
trustcenterclass4caii, 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:50
mozillacert94.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:99
API Version 2010-03-31
180
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
mozillacert140.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:F7
ttelesecglobalrootclass3ca, 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
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:97
mozillacert32.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:2C
mozillacert83.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:46
verisignroot.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:54
mozillacert147.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:D4
camerfirmachambersca, 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:3C
mozillacert21.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:CB
mozillacert39.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:6E
mozillacert6.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:E4
verisignuniversalrootca, 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:54
mozillacert72.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:8B
geotrustuniversalca, 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:79
mozillacert136.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:49
mozillacert10.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:51
mozillacert28.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:7B
mozillacert61.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:84
mozillacert79.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:27
mozillacert125.pem, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
181
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
Certificate fingerprint (SHA1):
B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
mozillacert17.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:1D
mozillacert50.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:58
mozillacert68.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:FA
mozillacert114.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:39
mozillacert57.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:58
verisignc2g3.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:11
verisignclass2g3ca, 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:11
mozillacert103.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:74
mozillacert90.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:AC
verisignc3g3.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:C6
mozillacert46.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:89
godaddyclass2ca, 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:E4
verisignc4g3.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:9D
mozillacert97.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:0F
mozillacert143.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
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:41
mozillacert2.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:3A
utnuserfirstobjectca, 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:46
mozillacert86.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:E2
API Version 2010-03-31
182
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
mozillacert132.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:6A
addtrustclass1ca, 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:9D
mozillacert24.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:16
verisignc1g3.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:A5
mozillacert9.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:B9
amzninternalrootca, 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:06
mozillacert75.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:3A
entrustevca, 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:F9
secomscrootca2, 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:74
camerfirmachambersignca, 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:0C
secomscrootca1, 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
mozillacert121.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:9D
mozillacert139.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:C9
mozillacert13.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:91
mozillacert64.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:9A
mozillacert110.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:17
mozillacert128.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:7D
entrust2048ca, 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:31
mozillacert53.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:74
mozillacert117.pem, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
183
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
Certificate fingerprint (SHA1):
D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74
mozillacert150.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:E9
thawteserverca, 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:79
secomvalicertclass1ca, 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:8E
mozillacert42.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:BF
gtecybertrustglobalca, 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
mozillacert106.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:6B
equifaxsecureebusinessca1, 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:41
mozillacert93.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:17
quovadisrootca3, 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
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:F7
soneraclass2ca, 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:27
mozillacert31.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:11
mozillacert49.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:71
mozillacert82.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:C3
mozillacert146.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:8A
baltimorecybertrustca, 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:74
mozillacert20.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:61
mozillacert38.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:36
mozillacert5.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:C6
API Version 2010-03-31
184
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
mozillacert71.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:0C
verisignclass3g4ca, 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:3A
mozillacert89.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:9D
mozillacert135.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:18
camerfirmachamberscommerceca, 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:B1
mozillacert27.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:1B
verisignclass3g2ca, 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:0F
mozillacert60.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:B3
mozillacert78.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:2F
certumca, 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:18
deutschetelekomrootca2, 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:BF
mozillacert124.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:CF
mozillacert16.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:13
secomevrootca1, 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:7D
mozillacert67.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:AD
globalsignr3ca, 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:AD
mozillacert113.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:31
aolrootca2, 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:84
trustcenteruniversalcai, 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:F3
aolrootca1, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
185
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
Certificate fingerprint (SHA1):
39:21:C1:15:C1:5D:0E:CA:5C:CB:5B:C4:F0:7D:21:D8:05:0B:56:6A
mozillacert56.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:F2
verisignc2g2.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:9D
verisignclass1g3ca, 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
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:83
addtrustexternalca, 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:68
verisignclass3ca, 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:6B
verisignc3g2.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:0F
mozillacert45.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:F0
verisignc4g2.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:52
digicertassuredidrootca, 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:43
verisignclass1ca, 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:F1
mozillacert109.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:71
thawtepremiumserverca, 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:66
verisigntsaca, 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:56
mozillacert96.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:D1
mozillacert142.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:85
thawteprimaryrootca, 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:81
mozillacert34.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:A9
mozillacert1.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:8C
API Version 2010-03-31
186
Amazon Simple Notification
Service Manuel du développeur
Autorités de certification pour les
points de terminaison HTTPS
mozillacert85.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:48
valicertclass2ca, 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:A6
mozillacert131.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:79
mozillacert149.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:B1
geotrustprimaryca, 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:96
mozillacert23.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:81
verisignc1g2.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:47
mozillacert8.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:0F
mozillacert74.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:3F
mozillacert120.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:41
geotrustglobalca, 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
mozillacert138.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:BD
mozillacert12.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:36
comodoaaaca, 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:49
mozillacert63.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:8E
certplusclass2primaryca, 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:BB
mozillacert127.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
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:E9
mozillacert19.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:B7
digicerthighassuranceevrootca, Apr 22, 2014, trustedCertEntry,
API Version 2010-03-31
187
Amazon Simple Notification
Service Manuel du développeur
Vérification des signatures de message
Certificate fingerprint (SHA1):
5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25
mozillacert52.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:6F
mozillacert116.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:21
globalsignca, 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:9C
mozillacert41.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:F3
mozillacert59.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:54
mozillacert105.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:EC
trustcenterclass2caii, 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:6E
mozillacert92.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:A0
geotrustprimarycag3, 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:FD
entrustsslca, 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:39
verisignc3g5.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:E5
geotrustprimarycag2, 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:B0
mozillacert30.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:EE
mozillacert48.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
Vérification des signatures des messages
Amazon SNS
Vous devez vérifier l'authenticité d'un message de notification, de confirmation d'abonnement ou de
confirmation de désabonnement envoyé par Amazon SNS. A l'aide des informations contenues dans le
message Amazon SNS, votre point de terminaison peut recréer la chaîne de connexion et la signature,
afin que vous puissiez vérifier le contenu du message en mettant en correspondance la signature que
vous avez recréée à partir des contenus de message avec la signature envoyée par Amazon SNS
avec le message.
API Version 2010-03-31
188
Amazon Simple Notification
Service Manuel du développeur
Vérification des signatures de message
Pour éviter les attaques par usurpation, vous devez exécuter les opérations suivantes lors de la
vérification des messages envoyés par Amazon SNS :
• Utilisez toujours le protocole HTTPS lors de l'obtention du certificat à partir d'Amazon SNS.
• Validez l'authenticité du certificat.
• Vérifiez que le certificat a été reçu à partir d'Amazon SNS.
• Si possible, utilisez l'un des SDK AWS pris en charge pour qu'Amazon SNS valide et vérifie les
messages. Par exemple, avec le kit AWS SDK pour PHP, vous utiliseriez la méthode isValid de la
classe MessageValidator.
Pour obtenir un exemple de code pour un servlet Java qui traite les messages Amazon SNS , voir
Exemple de code pour un servlet Java de point de terminaison Amazon SNS (p. 191).
Pour vérifier la signature d'un message Amazon SNS lors de l'utilisation de demandes basées
sur une requête HTTP
1.
Extrayez les paires nom-valeur à partir du document JSON dans le corps de la requête HTTP
POST envoyée par Amazon SNS à votre point de terminaison. Vous utiliserez les valeurs de
certaines paires nom-valeur pour créer la chaîne de connexion. Lorsque vous vérifiez la signature
d'un message Amazon SNS, il est essentiel de convertir les caractères de contrôle d’échappement
en représentations des caractères d'origine dans les valeurs Message et Subject. Ces valeurs
doivent être dans leur format d'origine lorsque vous les utilisez dans le cadre de la chaîne de
connexion. Pour plus d'informations sur l'analyse du document JSON, consultez la page Etape 1 :
Vérification de la disponibilité de votre point de terminaison pour traiter des messages Amazon
SNS (p. 162).
Le paramètre SignatureVersion vous indique la version de la signature. A partir de la version
de la signature, vous pouvez déterminer les exigences requises pour la génération de la signature.
Pour les notifications Amazon SNS, Amazon SNS prend actuellement en charge Signature
version 1. Cette section indique les étapes de création d'une signature à l'aide de Signature
version 1.
2.
Obtenez le certificat X509 utilisé par Amazon SNS pour signer le message. La valeur
SigningCertURL pointe vers l'emplacement du certificat X509 utilisé pour créer la signature
numérique du message. Récupérez le certificat à partir de cet emplacement.
3.
Extrayez la clé publique à partir du certificat. La clé publique provenant du certificat spécifié par
SigningCertURL est utilisée pour vérifier l'authenticité et l'intégrité du message.
4.
Déterminez le type du message. Le format de la chaîne de connexion dépend du type de
message, qui est spécifié par la valeur Type.
5.
Créez la chaîne de connexion. La chaîne de connexion est une liste délimitée par des caractères
de nouvelle ligne, qui est composée de paires nom-valeur provenant du message. Chaque paire
nom-valeur est représentée par le nom, suivi d'un caractère de nouvelle ligne, suivi de la valeur et
se terminant par un caractère de nouvelle ligne. Les paires nom-valeur doivent figurer dans l'ordre
de tri par octet.
En fonction du type de message, la chaîne de connexion doit avoir les paires nom-valeur
suivantes.
Notification
Les messages de notification doivent contenir les paires nom-valeur suivantes :
Message
MessageId
Subject (if included in the message)
Timestamp
TopicArn
API Version 2010-03-31
189
Amazon Simple Notification
Service Manuel du développeur
Vérification des signatures de message
Type
L'exemple suivant est une chaîne de connexion pour Notification.
Message
My Test Message
MessageId
4d4dc071-ddbf-465d-bba8-08f81c89da64
Subject
My subject
Timestamp
2012-06-05T04:37:04.321Z
TopicArn
arn:aws:sns:us-east-1:123456789012:s4-MySNSTopic-1G1WEFCOXTC0P
Type
Notification
SubscriptionConfirmation et UnsubscribeConfirmation
Les messages SubscriptionConfirmation et UnsubscribeConfirmation doivent
contenir les paires nom-valeur suivantes :
Message
MessageId
SubscribeURL
Timestamp
Token
TopicArn
Type
L'exemple suivant est une chaîne de connexion pour SubscriptionConfirmation.
Message
My Test Message
MessageId
3d891288-136d-417f-bc05-901c108273ee
SubscribeURL
https://sns.us-west-2.amazonaws.com/?
Action=ConfirmSubscription&TopicArn=arn:aws:sns:uswest-2:123456789012:s4MySNSTopic-1G1WEFCOXTC0P&Token=2336412f37fb687f5d51e6e241d09c8058323f60b964268bfe08ce
Timestamp
2012-06-03T19:25:13.719Z
Token
2336412f37fb687f5d51e6e241d09c8058323f60b964268bfe08ce35640228c208a66d3621bd9f7b01291
TopicArn
arn:aws:sns:us-west-2:123456789012:s4-MySNSTopic-1G1WEFCOXTC0P
Type
SubscriptionConfirmation
6.
Décodez la valeur Signature à partir du format Base64. Le message diffuse la signature dans
la valeur Signature, qui est codée en Base64. Avant de comparer la valeur de la signature avec
la signature que vous avez calculée, assurez-vous que vous décodez la valeur Signature en
Base64 afin d'utiliser le même format pour comparer les valeurs.
7.
Générez la valeur de hachage dérivée du message Amazon SNS. Envoyez le message Amazon
SNS, au format canonique, à la fonction de hachage qui a été utilisée pour générer la signature.
API Version 2010-03-31
190
8.
9.
Amazon Simple Notification
Service Manuel du développeur
Exemple de code pour un servlet
Java de point de terminaison
Générez la valeur de hachage déclarée du message Amazon SNS. La valeur de hachage
déclarée résulte de l'utilisation de la valeur de clé publique (à l’étape 3) pour déchiffrer la signature
diffusée avec le message Amazon SNS.
Vérifiez l'authenticité et l'intégrité du message Amazon SNS. Comparez la valeur de hachage
dérivée (à l’étape 7) avec la valeur de hachage déclarée (à l’étape 8). Si les valeurs sont
identiques, le destinataire est sûr que le message n'a pas été modifié pendant son transfert et
qu'il provient d'Amazon SNS. Si les valeurs ne sont pas identiques, le message n'est pas digne de
confiance pour le destinataire.
Exemple de code pour un servlet Java de point de
terminaison Amazon SNS
Important
Les extraits de code suivants vous aident à comprendre un servlet Java qui traite les
demandes HTTP POST Amazon SNS. Vous devez vous assurer que les parties de ces
extraits sont adaptées à vos objectifs avant de les mettre en œuvre dans votre environnement
de production. Par exemple, pour éviter les attaques par usurpation dans un environnement
de production, vous devez vérifier que l'identité des messages Amazon SNS reçus
provient d'Amazon SNS. Vous pouvez le faire en vérifiant que la valeur du nom DNS (DNS
Name=sns.us-west-2.amazonaws.com dans us-west-2, qui varie selon la région) pour le
champ Subject Alternative Name, tel qu'elle est présentée dans le certificat Amazon SNS, est
identique pour les messages Amazon SNS reçus. Pour plus d'informations sur la vérification
de l'identité du serveur, consultez la section 3.1. Identité du serveur dans RFC 2818. Voir
aussi Vérification des signatures des messages Amazon SNS (p. 188).
La méthode suivante met en œuvre un exemple de gestionnaire des demandes HTTP POST à partir
d'Amazon SNS dans 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.
API Version 2010-03-31
191
Amazon Simple Notification
Service Manuel du développeur
Exemple de code pour un servlet
Java de point de terminaison
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
//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());
}
L'exemple de méthode Java suivant crée une signature à l'aide des informations d'un objet Message
qui contient les données envoyées dans le corps de la demande et vérifie cette signature par rapport à
la signature codée en Base64 originale du message, qui est également lue depuis l'objet Message.
API Version 2010-03-31
192
Amazon Simple Notification
Service Manuel du développeur
Exemple de code pour un servlet
Java de point de terminaison
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);
}
}
Les exemples de méthodes Java suivants fonctionnent conjointement pour créer la chaîne de
connexion d'un message Amazon SNS. La méthode getMessageBytesToSign appelle la méthode
de chaîne de connexion appropriée en fonction du type de message et exécute la chaîne de
connexion en tant que tableau d'octets. Les méthodes buildNotificationStringToSign et
buildSubscriptionStringToSign créent la chaîne de connexion d'après les formats décrits dans
la section Vérification des signatures des messages Amazon SNS (p. 188).
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;
}
//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";
API Version 2010-03-31
193
Amazon Simple Notification
Service Manuel du développeur
Exemple de code pour un servlet
Java de point de terminaison
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;
}
API Version 2010-03-31
194
Amazon Simple Notification
Service Manuel du développeur
Prérequis
Appel de fonctions Lambda à l'aide
de notifications Amazon SNS
Amazon SNS et AWS Lambda sont intégrés afin que vous puissiez appeler des fonctions Lambda
avec des notifications Amazon SNS. Lorsqu'un message est publié dans une rubrique SNS à laquelle
est abonnée une fonction Lambda Lambda, cette dernière est appelée avec la charge utile du
message publié. La fonction Lambda reçoit la charge utile du message en tant que paramètre d'entrée
et peut manipuler les informations du message, publier le message dans d'autres rubriques SNS, ou
envoyer le message à d'autres services AWS.
En outre, Amazon SNS prend également en charge les attributs de l'état de diffusion du message pour
les notifications de message envoyées aux points de terminaison Lambda. Pour plus d'informations,
consultez la page Utilisation des attributs de rubrique Amazon SNS pour l'état de diffusion du
message.
Prérequis
Pour appeler des fonctions Lambda à l'aide de notifications Amazon SNS, vous avez besoin des
éléments suivants :
• Fonction Lambda
• Rubrique Amazon SNS
Pour plus d'informations sur la création d'une fonction Lambda, consultez la section Mise en route avec
AWS Lambda. Pour plus d'informations sur la création d'une rubrique Amazon SNS, consultez la page
Création d'une rubrique.
Configuration d'Amazon SNS avec des points de
terminaison Lambda à l'aide d'AWS Management
Console
API Version 2010-03-31
195
1.
Amazon Simple Notification
Service Manuel du développeur
Configuration d'Amazon SNS avec des points de
terminaison Lambda à l'aide d'AWS Management Console
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
2.
Dans le volet de gauche Navigation, cliquez sur Topics, puis sur la rubrique à laquelle vous voulez
abonner un point de terminaison Lambda.
3.
4.
5.
Cliquez sur Actions, puis sur Subscribe to topic.
Dans la zone de liste déroulante Protocol, sélectionnez AWS Lambda.
Dans la zone de liste déroulante Endpoint, sélectionnez l'ARN de la fonction Lambda.
6.
Dans la zone de liste déroulante Version or Alias, sélectionnez une version ou un alias disponible
à utiliser. Vous pouvez également choisir $LATEST pour spécifier la dernière version de la
fonction Lambda. Si vous ne souhaitez pas spécifier de version ou d'alias, vous pouvez aussi
choisir default, qui a les mêmes fonctions que $LATEST. Pour plus d'informations, consultez la
page Gestion des versions et alias de la fonction AWS Lambda.
7.
Cliquez sur Create Subscription.
Lorsqu'un message est publié dans une rubrique SNS à laquelle est abonnée une fonction Lambda
Lambda, cette dernière est appelée avec la charge utile du message publié. Pour plus d'informations
sur la création d'un exemple de magasin d'historique des messages à l'aide de SNS, Lambda et
Amazon DynamoDB, consultez le blog AWS Mobile Development Appel de fonctions AWS Lambda via
Amazon SNS.
API Version 2010-03-31
196
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'attributs de rubrique
Amazon SNS pour l’état de diffusion
du message
Amazon SNS prend en charge la consignation de l'état de diffusion des messages de notification
envoyés aux rubriques avec les points de terminaison Amazon SNS suivants :
• Application
• HTTP
• Lambda
• SQS
Une fois que vous avez configuré les attributs de l'état de diffusion du message, les entrées du journal
sont envoyées à CloudWatch Logs pour les messages envoyés à une rubrique abonnée à un point
de terminaison Amazon SNS. La consignation de l'état de diffusion du message permet de fournir des
informations opérationnelles plus précises, par exemple :
• Savoir si un message a été diffusé au point de terminaison Amazon SNS.
• Identifier la réponse envoyée à Amazon SNS par le point de terminaison Amazon SNS.
• Déterminer la durée de conservation du message (la durée entre l'horodatage de publication et juste
avant sa remise à un point de terminaison Amazon SNS).
Pour configurer les attributs de rubrique pour l’état de diffusion du message, vous pouvez utiliser AWS
Management Console, les kits de développement logiciel (SDK) AWS ou l'API de requête.
Rubriques
• Configuration des attributs de l'état de diffusion du message avec AWS Management
Console (p. 198)
• Configuration des attributs de l'état de diffusion du message pour les rubriques abonnées à des
points de terminaison Amazon SNS avec les kits de développement logiciel AWS (p. 198)
API Version 2010-03-31
197
Amazon Simple Notification
Service Manuel du développeur
Configuration des attributs de l'état de diffusion
du message avec AWS Management Console
Configuration des attributs de l'état de diffusion du
message avec AWS Management Console
Les étapes suivantes expliquent comment utiliser la console pour configurer les attributs de l’état
de diffusion du message pour les notifications provenant d'Amazon SNS à destination d'un point de
terminaison AWS Lambda.
Pour configurer l’état de diffusion du message pour les notifications provenant d'Amazon SNS
à destination d'un point de terminaison Lambda :
1.
2.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
Dans le volet de gauche Navigation, cliquez sur Topics, puis cliquez sur la rubrique pour laquelle
vous souhaitez recevoir des informations sur l'état de diffusion du message.
3.
Cliquez sur Actions, puis sur Delivery status.
4.
5.
Cochez la case Lambda.
Dans la boîte de dialogue Delivery Status, cliquez sur Create IAM Roles.
Vous serez ensuite redirigé vers la console IAM.
6.
7.
Cliquez sur Allow pour permettre à Amazon SNS d'accéder en écriture aux CloudWatch Logs en
votre nom.
Retournez dans la boîte de dialogue Delivery Status et saisissez un nombre dans le champ
Percentage of Success to Sample (0-100) pour indiquer le pourcentage de messages envoyés
pour lequel vous souhaitez recevoir des CloudWatch Logs.
Note
8.
Une fois que vous avez configuré les attributs d'application pour l'état de diffusion du
message, toutes les diffusions de message ayant échoué génèrent des CloudWatch Logs.
Enfin, cliquez sur Save Configuration.
Vous êtes maintenant en mesure d'afficher et d'analyser les CloudWatch Logs contenant l'état
de diffusion du message. Pour plus d'informations sur l'utilisation de CloudWatch, consultez la
Documentation CloudWatch.
Configuration des attributs de l'état de diffusion
du message pour les rubriques abonnées à des
points de terminaison Amazon SNS avec les kits
de développement logiciel AWS
Les kits de développement logiciel (SDK) AWS fournissent des API dans plusieurs langages pour
utiliser les attributs de l’état de diffusion du message avec Amazon SNS.
Attributs de la rubrique
Vous pouvez utiliser les valeurs de nom d'attribut de rubrique suivantes pour l’état de livraison du
message :
Application
API Version 2010-03-31
198
Amazon Simple Notification
Service Manuel du développeur
Exemple Java pour la configuration d'attributs de rubrique
• ApplicationSuccessFeedbackRoleArn
• ApplicationSuccessFeedbackSampleRate
• ApplicationFailureFeedbackRoleArn
Note
Outre la possibilité de configurer des attributs de rubrique pour l’état de diffusion des
messages de notification envoyés à des points de terminaison d'application Amazon
SNS, vous pouvez également configurer des attributs d'application pour l'état de diffusion
des messages de notification push envoyés aux services de notification push. Pour plus
d'informations, consultez la page Utilisation des attributs d'application Amazon SNS pour
l'état de diffusion du message.
HTTP
• HTTPSuccessFeedbackRoleArn
• HTTPSuccessFeedbackSampleRate
• HTTPFailureFeedbackRoleArn
Lambda
• LambdaSuccessFeedbackRoleArn
• LambdaSuccessFeedbackSampleRate
• LambdaFailureFeedbackRoleArn
SQS
• SQSSuccessFeedbackRoleArn
• SQSSuccessFeedbackSampleRate
• SQSFailureFeedbackRoleArn
Les attributs <ENDPOINT>SuccessFeedbackRoleArn et <ENDPOINT>FailureFeedbackRoleArn
sont utilisés pour permettre à Amazon SNS d'accéder en écriture aux CloudWatch Logs en votre
nom. L'attribut <ENDPOINT>SuccessFeedbackSampleRate permet de spécifier le pourcentage de
la fréquence d'échantillonnage (0-100) des messages diffusés avec succès. Une fois que vous avez
configuré l'attribut <ENDPOINT>FailureFeedbackRoleArn, toutes les diffusions de message qui ont
échoué génèrent des CloudWatch Logs.
Exemple Java pour la configuration d'attributs de
rubrique
L'exemple Java suivant montre comment utiliser l'API SetTopicAttributes pour configurer des
attributs de rubrique pour l’état de diffusion des messages de notification envoyés aux rubriques
abonnées à des points de terminaison Amazon SNS. Dans cet exemple, on part du principe que des
valeurs de chaîne ont été définies pour topicArn, attribName et attribValue.
final static String topicArn = ("arn:aws:sns:uswest-2:123456789012:MyTopic");
final static String attribName = ("LambdaSuccessFeedbackRoleArn");
final static String attribValue = ("arn:aws:iam::123456789012:role/
SNSSuccessFeedback");
API Version 2010-03-31
199
Amazon Simple Notification
Service Manuel du développeur
Exemple Java pour la configuration d'attributs de rubrique
SetTopicAttributesRequest setTopicAttributesRequest = new
SetTopicAttributesRequest();
setTopicAttributesRequest.withTopicArn(topicArn);
setTopicAttributesRequest.setAttributeName(attribName);
setTopicAttributesRequest.setAttributeValue(attribValue);
Pour plus d'informations sur le SDK pour Java, consultez le manuel Mise en route avec le kit AWS
SDK for Java.
API Version 2010-03-31
200
Amazon Simple Notification
Service Manuel du développeur
Eléments d'attribut de message et validation
Utilisation d'attributs de message
Amazon SNS
Amazon Simple Notification Service (Amazon SNS) prend en charge la diffusion d'attributs de
message à des points de terminaison Amazon SQS. Les attributs de message vous permettent de
fournir des éléments de métadonnées structurés (tels que des horodatage, des données géospatiales,
des signatures et des identifiants) sur le message. Les attributs de message sont facultatifs et distincts,
bien qu'envoyés en même temps, du corps du message transmis aux points de terminaison Amazon
SQS. Cette information peut permettre au destinataire de traiter plus facilement le message sans
avoir à y lire tout son contenu. Chaque message peut contenir jusqu'à 10 attributs. Pour spécifier les
attributs de message, vous pouvez utiliser les kits de développement logiciel (SDK) AWS ou l'API de
requête.
Important
Pour utiliser les attributs de message avec des points de terminaison Amazon SQS,
vous devez définir l'attribut d'abonnement, Raw Message Delivery, sur True. Pour plus
d'informations sur Raw Message Delivery, consultez la page Annexe : Charge utile
volumineuse et diffusion brute des messages (p. 220).
Vous pouvez également utiliser les attributs de message pour mieux structurer le message de
notification push pour les points de terminaison mobiles. Dans ce scénario, les attributs de message
sont uniquement utilisés pour aider à structurer le message de notification push et ne sont pas diffusés
au point de terminaison, contrairement à ce qui se passe lors de l'envoi de messages avec des
attributs de message à des points de terminaison Amazon SQS.
Rubriques
• Eléments d'attribut de message et validation (p. 201)
• Types de données d'attribut de message et validation (p. 202)
• Attributs de message réservé (p. 202)
• Utilisation d'attributs de message avec les kits de développement logiciel AWS (p. 203)
Eléments d'attribut de message et validation
Chaque attribut de message se compose des éléments suivants :
• Nom : le nom d'attribut de message peut contenir les caractères suivants : A-Z, a-z, 0-9, trait
de soulignement (_), tiret (-) et point (.). Le nom ne doit pas commencer ou se terminer par un
API Version 2010-03-31
201
Amazon Simple Notification
Service Manuel du développeur
Type de données
point et ne doit pas contenir plusieurs points à la suite. Le nom est sensible à la casse et doit
être unique parmi tous les noms d'attribut pour le message. La longueur maximale du nom est de
256 caractères. Le nom ne peut pas commencer par « AWS. », ni « Amazon. » (ou toute variante de
casse), car ces préfixes sont réservés à une utilisation par Amazon Web Services..
• Type – Les types de données d'attribut de message pris en charge sont Chaîne, Nombre et Binaire.
Le type de données est soumis aux mêmes restrictions de contenu que le corps du message. Le
type de données est sensible à la casse et peut contenir jusqu'à 256 octets. Pour en savoir plus,
consultez la section Types de données d'attribut de message et validation (p. 202).
• Valeur : valeur d'attribut du message spécifiée par l'utilisateur. Pour les données de type chaîne,
l'attribut de valeur est soumis aux mêmes restrictions de contenu que le corps du message. Pour
plus d'informations, consultez l'action Publish dans le manuel Amazon Simple Notification Service
API Reference.
Les nom, type et valeur ne doivent pas être vides ou null. Le corps du message ne doit pas être vide
ni contenir la valeur null non plus. Toutes les parties de l'attribut de message, y compris le nom, le
type et la valeur, sont incluses dans la restriction de taille du message, qui est actuellement de 256 Ko
(262 144 octets).
Types de données d'attribut de message et
validation
Les types de données d'attribut de message identifient la façon dont les valeurs d'attribut de message
sont traitées par Amazon SNS. Par exemple, si le type est un nombre, Amazon SNS validera le fait
qu'il s'agisse d'un nombre.
Amazon SNS prend en charge les types de données logiques suivants :
• Chaîne – Les chaînes sont Unicode avec codage binaire UTF-8. Pour obtenir la liste des valeurs des
codes, consultez http://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange.
• Nombre – Les nombres sont des entiers positifs ou négatifs, ou des nombres à virgule flottante. La
plage et la précision des nombres sont suffisantes pour englober la plupart des valeurs pouvant
généralement être prises en charge par les entiers, les nombres flottants et les doubles. Un nombre
peut avoir jusqu'à 38 chiffres de précision et être compris entre 10^-128 et 10^+126. Les zéros de
début et de fin sont tronqués.
• Binaire – Les attributs de type binaire peuvent stocker n'importe quelle donnée binaire : par exemple,
des données compressées, des données chiffrées ou des images.
Attributs de message réservé
Le tableau suivant répertorie les attributs de message réservé pour les services de notification push
que vous pouvez utiliser pour structurer votre message de notification push :
Service de
notification en
mode push
Attribut de message réservé
Valeurs autorisées
Baidu
AWS.SNS.MOBILE.BAIDU.DeployStatus
(facultatif)
1 — environnement de
développement. 2 —
environnement de production (par
défaut 1).
AWS.SNS.MOBILE.BAIDU.MessageType
(facultatif)
API Version 2010-03-31
202
Amazon Simple Notification
Service Manuel du développeur
Utilisation d'attributs de message avec
les kits de développement logiciel AWS
Service de
notification en
mode push
Attribut de message réservé
Valeurs autorisées
AWS.SNS.MOBILE.BAIDU.MessageKey
(facultatif)
0 — message dans l'application. 1
— notification d'alerte (par défaut
1).
Identificateur de message court,
que vous pouvez attacher à votre
message.
MPNS
WNS
AWS.SNS.MOBILE.MPNS.Type
(obligatoire)
token (pour les notifications en
mosaïque), toast, raw
AWS.SNS.MOBILE.MPNS.NotificationClass
(obligatoire)
realtime, priority, regular
AWS.SNS.MOBILE.WNS.Type (obligatoire)
identique à X-WNS-Type
AWS.SNS.MOBILE.WNS.CachePolicy
(facultatif)
identique à X-WNS-Cache-Policy
AWS.SNS.MOBILE.WNS.Group (facultatif)
AWS.SNS.MOBILE.WNS.Match (facultatif)
AWS.SNS.MOBILE.WNS.SuppressPopup
(facultatif)
identique à X-WNS-Group
identique à X-WNS-Match
identique à X-WNS-SuppressPopup
identique à X-WNS-Tag
AWS.SNS.MOBILE.WNS.Tag (facultatif)
Pour plus d'informations sur l'utilisation des attributs de message avec Baidu, consultez la page
Utilisation d'attributs de message pour structurer le message (p. 74).
Utilisation d'attributs de message avec les kits de
développement logiciel AWS
Les kits de développement logiciel (SDK) AWS fournissent des API dans plusieurs langages pour
utiliser les attributs de message avec Amazon SNS. Vous trouverez des exemples Java avec des
attributs de message dans l'exemple de fichier AWS SNSMobilePush.java, qui est inclus dans le
fichier snsmobilepush.zip.
Lorsque vous définissez les attributs d'un message, vous pouvez utiliser une valeur string ou
binary, mais pas les valeurs string et binary à la fois.
Pour plus d'informations sur le SDK pour Java, consultez le manuel Mise en route avec le kit AWS
SDK pour Java.
API Version 2010-03-31
203
Amazon Simple Notification
Service Manuel du développeur
Accès aux métriques CloudWatch pour Amazon SNS
Surveillance de Amazon SNS avec
CloudWatch
Amazon SNS et CloudWatch étant intégrés, vous pouvez collecter, afficher et analyser des métriques
pour chaque notification Amazon SNS active. Une fois que vous avez configuré CloudWatch pour
Amazon SNS, vous disposez d'un meilleur aperçu des performances de vos rubriques Amazon
SNS, notifications push et diffusions SMS. Par exemple, vous pouvez définir une alarme qui vous
envoie une notification par e-mail si un seuil défini est atteint pour une métrique Amazon SNS, comme
NumberOfNotificationsFailed. Pour obtenir la liste de toutes les métriques qu'Amazon SNS envoie à
CloudWatch, consultez la page Métriques Amazon SNS (p. 206). Pour plus d'informations sur les
notifications push Amazon SNS, consultez la page Notifications push mobile Amazon SNS (p. 41).
Les métriques que vous configurez avec CloudWatch pour vos rubriques Amazon SNS sont
automatiquement collectées et envoyées à CloudWatch toutes les cinq minutes. Ces métriques sont
rassemblées sur toutes les rubriques qui sont considérées comme actives par CloudWatch. Une
rubrique est considérée comme active par CloudWatch pendant six heures au maximum depuis la
dernière activité (par exemple, un appel d'API) sur la rubrique.
Note
Aucun frais n'est facturé pour les métriques Amazon SNS présentées dans CloudWatch ; elles
sont fournies dans le cadre du service Amazon SNS.
Accès aux métriques CloudWatch pour Amazon
SNS
Vous pouvez surveiller les métriques pour Amazon SNS à l'aide de la console CloudWatch, de
l'interface de ligne de commande (CLI) de CloudWatch, ou par programmation à l'aide de l'API
CloudWatch. Les procédures suivantes vous montrent comment accéder aux métriques à l'aide de ces
différentes options.
Pour afficher les métriques à l'aide de la console CloudWatch
1.
Connectez-vous à la AWS Management Console et ouvrez la console CloudWatch à l'adresse
https://console.aws.amazon.com/cloudwatch/.
API Version 2010-03-31
204
2.
Amazon Simple Notification
Service Manuel du développeur
Définition d'alarmes CloudWatch
pour les métriques Amazon SNS
Cliquez sur View Metrics.
3.
Dans le menu déroulant Viewing, sélectionnez SNS: Topic Metrics, SNS: Push Notifications by
Application, SNS: Push Notifications by Application and Platform ou SNS: Push Notifications by
Platform pour afficher les métriques disponibles.
4.
Cliquez sur un élément spécifique pour afficher davantage de détails, comme un graphique
des données collectées. Par exemple, le graphique suivant de la métrique sélectionnée,
NumberOfMessagesPublished, présente le nombre moyen de messages Amazon SNS publiés
pendant une période de cinq minutes tout au long de la plage de temps de 6 heures.
Pour accéder aux métriques à partir de l'interface de ligne de commande CloudWatch
•
Appelez mon-get-stats. Pour en savoir plus à ce sujet et sur les autres fonctions liées aux
métriques, consultez le manuel Guide de l'utilisateur Amazon CloudWatch.
Pour accéder aux métriques à partir de l'API CloudWatch
•
Appelez GetMetricStatistics. Pour en savoir plus à ce sujet et sur les autres fonctions liées
aux métriques, consultez le manuel Amazon CloudWatch API Reference.
Définition d'alarmes CloudWatch pour les
métriques Amazon SNS
CloudWatch vous permet également de définir des alarmes lorsqu'un seuil est atteint pour une
métrique. Par exemple, vous pouvez définir une alarme pour la métrique NumberOfNotificationsFailed,
afin de recevoir une notification par e-mail lorsque la valeur définie pour ce seuil est atteinte pendant la
période d'échantillonnage.
API Version 2010-03-31
205
Amazon Simple Notification
Service Manuel du développeur
Métriques Amazon SNS
Pour définir des alarmes à l'aide de la console CloudWatch
1.
Connectez-vous à la AWS Management Console et ouvrez la console CloudWatch à l'adresse
https://console.aws.amazon.com/cloudwatch/.
2.
Cliquez sur Alarms, puis cliquez sur le bouton Create Alarm. L'assistant Create Alarm démarre
alors.
3.
Faites défiler les métriques Amazon SNS afin de rechercher celle sur laquelle vous souhaitez
placer une alarme. Sélectionnez la métrique sur laquelle créer une alarme sur et cliquez sur
Continue.
4.
Remplissez les champs Name, Description, Threshold et Time de la métrique, puis cliquez sur
Continue.
5.
Choisissez Alarm comme état de l'alarme. Si vous voulez que CloudWatch vous envoie un email lorsque l’état de l'alarme est atteint, sélectionnez une rubrique Amazon SNS préexistante ou
cliquez sur Create New Email Topic. Si vous cliquez sur Create New Email Topic, vous pouvez
définir le nom et les adresses e-mail d'une nouvelle rubrique. Cette liste sera enregistrée et
s'affichera dans la zone de liste déroulante des futures alarmes. Cliquez sur Continuer.
Note
Si vous utilisez Create New Email Topic pour créer une rubrique Amazon SNS, les
adresses e-mail doivent être vérifiées avant de recevoir des notifications. Les e-mails sont
envoyés uniquement lorsque l'alarme passe à un état défini. Si ce changement d'état de
l'alarme se produit avant la vérification des adresses e-mail, elles ne recevront pas de
notification.
6.
A ce stade, l'assistant Create Alarm vous donne la possibilité de passer en revue l'alarme que
vous allez créer. Si vous avez besoin d'apporter des modifications, vous pouvez utiliser les liens
Edit situés à droite. Une fois que vous êtes satisfait, cliquez sur Create Alarm.
Pour plus d'informations sur l'utilisation de CloudWatch et des alarmes, consultez la Documentation
CloudWatch.
Métriques Amazon SNS
Amazon SNS envoie les métriques suivantes à CloudWatch.
Métrique
Description
NumberOfMessagesPublished
Le nombre de messages publiés.
Unités : nombre
Statistiques valides : somme
La taille des messages publiés.
PublishSize
Unités : octets
Statistiques valides : minimum, maximum, moyenne et
nombre
NumberOfNotificationsDelivered
Le nombre de messages diffusés avec succès.
Unités : nombre
Statistiques valides : somme
API Version 2010-03-31
206
Amazon Simple Notification
Service Manuel du développeur
Dimensions des métriques Amazon
Simple Notification Service
Métrique
Description
NumberOfNotificationsFailed
Le nombre de messages qu'Amazon SNS n'a pas
pu diffuser. Cette métrique est appliquée une fois
qu'Amazon SNS cesse d'essayer de diffuser le
message à des points de terminaison Amazon SQS,
e-mail, SMS ou push mobile. Chaque tentative de
diffusion à un point de terminaison HTTP ou HTTPS
ajoute 1 à la métrique. Pour tous les autres points
de terminaison, le nombre augmente de 1 lorsque le
message n'est pas diffusé (quel que soit le nombre
de tentatives). Vous pouvez contrôler le nombre de
relances pour les points de terminaison HTTP ; pour
plus d'informations, consultez la page Configuration
des stratégies de relance de la diffusion Amazon SNS
pour les points de terminaison HTTP/HTTPS (p. 169).
Unités : nombre
Statistiques valides : somme, Moyenne
Le taux de diffusions SMS réussies.
SMSSuccessRate
Unités : nombre
Statistiques valides : somme, moyenne, exemples de
données
Dimensions des métriques Amazon Simple
Notification Service
Amazon Simple Notification Service envoie les dimensions suivantes à CloudWatch.
Dimension
Description
Application
Filtre sur les objets d'application, qui représentent une application
et l'appareil enregistrés auprès de l'un des services de notification
push pris en charge, tels qu'APNS et GCM.
Application,Platform
Filtre sur les objets d'application et de plateforme, où les objets de
plateforme sont destinés aux services de notification push pris en
charge, tels qu'APNS et GCM.
Country
Filtre sur le pays de destination d'un SMS. Le pays est représenté
par son code ISO 3166-1 alpha-2.
Platform
Filtre sur les objets de plateforme pour les services de notifications
push, tels qu'APNS et GCM.
TopicName
Filtre sur les noms de rubrique Amazon SNS.
SMSType
Filtre sur le type de SMS. Il peut être promotionnel ou
transactionnel.
API Version 2010-03-31
207
Amazon Simple Notification
Service Manuel du développeur
Informations Amazon SNS dans CloudTrail
Journalisation des appels d'API
Amazon Simple Notification Service
à l'aide d'AWS CloudTrail
Amazon SNS est intégré à CloudTrail, un service qui capture les appels d'API effectués par ou pour
le compte d'Amazon SNS dans votre compte AWS et livre les fichiers journaux dans un compartiment
Amazon S3 que vous spécifiez. CloudTrail capture les appels d'API effectués à partir de la console
Amazon SNS ou de l'API Amazon SNS. Les informations collectées par CloudTrail vous permettent de
déterminer quelle demande a été envoyée à Amazon SNS, l'adresse IP source à partir de laquelle la
demande a été effectuée, qui a effectué la demande, quand, etc. Pour en savoir plus sur CloudTrail, y
compris comment le configurer et l'activer, consultez le document AWS CloudTrail User Guide.
Informations Amazon SNS dans CloudTrail
Lorsque la journalisation CloudTrail est activée dans votre compte AWS, les appels d'API
effectués pour certaines actions Amazon SNS font l'objet d'un suivi dans les fichiers journaux. Les
enregistrements Amazon SNS sont écrits avec les autres enregistrements des services AWS dans un
fichier journal. CloudTrail détermine quand créer un fichier et écrire dedans en fonction d'une période
et d'une taille de fichier.
Les actions suivantes sont prises en charge :
• AddPermission
•
•
•
•
ConfirmSubscription
CreatePlatformApplication
CreatePlatformEndpoint
CreateTopic
•
•
•
•
•
DeleteEndpoint
DeletePlatformApplication
DeleteTopic
GetEndpointAttributes
GetPlatformApplicationAttributes
• GetSubscriptionAttributes
API Version 2010-03-31
208
• GetTopicAttributes
•
•
•
•
•
Amazon Simple Notification
Service Manuel du développeur
Présentation des entrées des
fichiers journaux Amazon SNS
ListEndpointsByPlatformApplication
ListPlatformApplications
ListSubscriptions
ListSubscriptionsByTopic
ListTopics
• RemovePermission
• SetEndpointAttributes
• SetPlatformApplicationAttributes
• SetSubscriptionAttributes
• SetTopicAttributes
• S'abonner
• Unsubscribe
Note
Lorsque vous n’êtes pas connecté à Amazon Web Services (mode non authentifié) et que les
actions ConfirmSubscription ou Unsubscribe sont appelées, elles ne sont pas journalisées
dans CloudTrail. Ainsi, lorsque vous cliquez sur le lien fourni dans une notification par e-mail
afin de confirmer un abonnement en attente à une rubrique, l'action ConfirmSubscription
est appelée en mode non authentifié. Dans cet exemple, l'action ConfirmSubscription
n'est pas consignée dans CloudTrail.
Chaque entrée du journal contient des informations sur la personne qui a généré la demande. Les
informations d'identité d'utilisateur figurant dans le journal vous aident à déterminer si la demande a
été effectuée à l'aide d'informations d'identification racine ou d'utilisateur IAM, à l'aide d'informations
d'identification de sécurité temporaires pour un rôle ou un utilisateur fédéré, ou par un autre service
AWS. Pour plus d'informations, reportez-vous au champ userIdentity dans le Guide de référence des
événements CloudTrail.
Vous pouvez stocker vos fichiers journaux dans votre compartiment aussi longtemps que vous le
souhaitez, mais vous pouvez également définir des règles de cycle de vie Amazon S3 pour archiver ou
supprimer automatiquement les fichiers journaux. Par défaut, vos fichiers journaux sont chiffrés à l'aide
du chiffrement côté serveur (SSE) d'Amazon S3.
Vous pouvez décider d'utiliser CloudTrail pour publier des notifications Amazon SNS lorsque de
nouveaux fichiers journaux sont fournis, si vous voulez effectuer une action rapide lors de la livraison
des fichiers journaux. Pour plus d'informations, consultez la page Configuration des notifications
Amazon SNS.
Vous pouvez également agréger les fichiers journaux Amazon SNS provenant de plusieurs régions
AWS et de plusieurs comptes AWS dans un compartiment Amazon S3 unique. Pour de plus amples
informations, veuillez consulter Agrégation des fichiers journaux CloudTrail dans un compartiment
Amazon S3 unique.
Présentation des entrées des fichiers journaux
Amazon SNS
Les fichiers journaux CloudTrail contiennent une ou plusieurs entrées de journal et chaque entrée est
composée de plusieurs événements au format JSON. Une entrée le journal représente une demande
individuelle à partir d'une source quelconque et inclut des informations sur l'action demandée, sur tous
API Version 2010-03-31
209
Amazon Simple Notification
Service Manuel du développeur
Présentation des entrées des
fichiers journaux Amazon SNS
les paramètres, sur la date et l'heure de l'action, etc. Les entrées de journal ne sont garanties dans
aucun ordre particulier. Cela signifie qu'il ne s'agit pas d'une arborescence des appels de procédure
ordonnée des appels d'API publics.
L'exemple suivant montre une entrée de journal CloudTrail pour les actions ListTopics,
CreateTopic et 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"
},
"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",
API Version 2010-03-31
210
Amazon Simple Notification
Service Manuel du développeur
Présentation des entrées des
fichiers journaux Amazon SNS
"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"
},
]
}
API Version 2010-03-31
211
Amazon Simple Notification
Service Manuel du développeur
En-têtes HTTP/HTTPS
Annexe : formats de message et
JSON
Amazon SNS utilise les formats suivants.
Rubriques
• En-têtes HTTP/HTTPS (p. 212)
• Format JSON de confirmation d'abonnement HTTP/HTTPS (p. 213)
• Format JSON de notification HTTP/HTTPS (p. 215)
• Format JSON de confirmation de désabonnement HTTP/HTTPS (p. 216)
• Format JSON de stratégie de diffusion SetSubscriptionAttributes (p. 218)
• Format JSON de stratégie de diffusion SetTopicAttributes (p. 218)
En-têtes HTTP/HTTPS
Lorsqu'Amazon SNS envoie un message de confirmation d'abonnement, de notification ou de
confirmation de désabonnement aux points de terminaison HTTP/HTTPS, il envoie un message POST
avec un certain nombre de valeurs d'en-tête spécifiques à Amazon SNS. Vous pouvez utiliser ces
valeurs d'en-tête pour effectuer des opérations telles que l'identification du type de message, sans
avoir à analyser le corps du message JSON pour lire la valeur Type.
x-amz-sns-message-type
Type du message. Les valeurs possibles sont SubscriptionConfirmation, Notification et
UnsubscribeConfirmation.
x-amz-sns-message-id
Identificateur unique universel, propre à chaque message publié. Pour une notification renvoyée
par Amazon SNS au cours d'une nouvelle tentative, l'ID du message d'origine est utilisé.
x-amz-sns-topic-arn
Amazon Resource Name (ARN) de la rubrique dans laquelle ce message a été publié.
x-amz-sns-subscription-arn
ARN de l'abonnement à ce point de terminaison.
L'en-tête HTTP POST suivant est un exemple d'en-tête pour un message de notification envoyé à un
point de terminaison HTTP.
API Version 2010-03-31
212
Amazon Simple Notification
Service Manuel du développeur
Format JSON de confirmation
d'abonnement HTTP/HTTPS
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:uswest-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent
Format JSON de confirmation d'abonnement
HTTP/HTTPS
Une fois que vous avez abonné un point de terminaison HTTP/HTTPS, Amazon SNS envoie un
message de confirmation d'abonnement au point de terminaison HTTP/HTTPS. Ce message contient
un paramètre SubscribeURL que vous devez visiter pour valider l'abonnement (sinon, vous pouvez
utiliser le paramètre Token avec l'action ConfirmSubscription). Notez qu'Amazon SNS n'envoie pas de
notifications à ce point de terminaison tant que l'abonnement n'est pas confirmé.
Le message de confirmation d'abonnement est un message POST dont le corps contient un document
JSON avec les paires nom-valeur suivantes.
Message
Chaîne qui décrit le message. Pour une confirmation d'abonnement, cette chaîne se présente
comme suit :
You have chosen to subscribe to the topic arn:aws:sns:useast-1:123456789012:MyTopic.\nTo confirm the subscription, visit the
SubscribeURL included in this message.
MessageId
Identificateur unique universel, propre à chaque message publié. Pour un message renvoyé par
Amazon SNS au cours d'une nouvelle tentative, l'ID du message d'origine est utilisé.
Signature
Signature cryptée Base64 « SHA1withRSA » des valeurs Message, MessageId, Type, Timestamp
et TopicArn.
SignatureVersion
Version de la signature Amazon SNS utilisée.
SigningCertURL
URL permettant d'accéder au certificat utilisé pour signer le message.
SubscribeURL
URL que vous devez visiter afin de confirmer l'abonnement. Vous pouvez également utiliser le
paramètre Token avec l'action ConfirmSubscription pour confirmer l'abonnement.
Horodatage
Heure (GMT) à laquelle la confirmation d'abonnement a été envoyée.
Token
Valeur que vous pouvez utiliser avec l'action ConfirmSubscription pour confirmer l'abonnement.
Sinon, vous pouvez simplement visiter le paramètre SubscribeURL.
TopicArn
Amazon Resource Name (ARN) de la rubrique à laquelle ce point de terminaison est abonné.
API Version 2010-03-31
213
Amazon Simple Notification
Service Manuel du développeur
Format JSON de confirmation
d'abonnement HTTP/HTTPS
Type
Type du message. Pour une confirmation d'abonnement, le type est
SubscriptionConfirmation.
Le message HTTP POST suivant est un exemple de message SubscriptionConfirmation envoyé à un
point de terminaison HTTP.
POST / HTTP/1.1
x-amz-sns-message-type: SubscriptionConfirmation
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent
{
"Type" : "SubscriptionConfirmation",
"MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b",
"Token" :
"2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e2
"TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Message" : "You have chosen to subscribe to the topic arn:aws:sns:uswest-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:uswest-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988
"Timestamp" : "2012-04-26T20:45:04.751Z",
"SignatureVersion" : "1",
"Signature" : "EXAMPLEpH
+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0A
"SigningCertURL" : "https://sns.us-west-2.amazonaws.com/
SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
Vous pouvez télécharger le fichier JSON suivant pour afficher la définition du format JSON
pour une confirmation d'abonnement : https://sns.us-west-2.amazonaws.com/doc/2010-03-31/
SubscriptionConfirmation.json.
API Version 2010-03-31
214
Amazon Simple Notification
Service Manuel du développeur
Format JSON de notification HTTP/HTTPS
Format JSON de notification HTTP/HTTPS
Lorsqu'Amazon SNS envoie une notification à un point de terminaison HTTP ou HTTPS abonné, le
corps du message POST envoyé au point de terminaison contient un document JSON avec les paires
nom-valeur suivantes.
Message
Valeur Message spécifiée lorsque la notification a été publiée dans la rubrique.
MessageId
Identificateur unique universel, propre à chaque message publié. Pour une notification renvoyée
par Amazon SNS au cours d'une nouvelle tentative, l'ID du message d'origine est utilisé.
Signature
Signature cryptée Base64 « SHA1withRSA » des valeurs Message, MessageId, Subject (le cas
échéant), Type, Timestamp et TopicArn.
SignatureVersion
Version de la signature Amazon SNS utilisée.
SigningCertURL
URL permettant d'accéder au certificat utilisé pour signer le message.
Sujet
Paramètre Subject spécifié lorsque la notification a été publiée dans la rubrique. Notez qu’il s'agit
d'un paramètre facultatif. Si aucun paramètre Subject n'a été indiqué, cette paire nom-valeur
n'apparaît pas dans ce document JSON.
Horodatage
Heure (GMT) à laquelle la notification a été publiée.
TopicArn
Amazon Resource Name (ARN) de la rubrique dans laquelle ce message a été publié.
Type
Type du message. Pour une notification, le type est Notification.
UnsubscribeURL
URL que vous pouvez utiliser pour désabonner le point de terminaison de cette rubrique. Si vous
visitez cette URL, Amazon SNS désabonne le point de terminaison et cesse de lui envoyer des
notifications.
Le message HTTP POST suivant est un exemple de message Notification envoyé à un point de
terminaison HTTP.
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:uswest-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96
Content-Length: 773
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-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",
API Version 2010-03-31
215
Amazon Simple Notification
Service Manuel du développeur
Format JSON de confirmation de
désabonnement HTTP/HTTPS
"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:uswest-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96"
}
Vous pouvez télécharger le fichier JSON suivant pour afficher la définition du format JSON pour une
notification : https://sns.us-west-2.amazonaws.com/doc/2010-03-31/Notification.json.
Format JSON de confirmation de désabonnement
HTTP/HTTPS
Une fois qu’un point de terminaison HTTP/HTTPS est désabonné d'une rubrique, Amazon SNS envoie
un message de confirmation de désabonnement au point de terminaison.
Le message de confirmation de désabonnement est un message POST dont le corps contient un
document JSON avec les paires nom-valeur suivantes.
Message
Chaîne qui décrit le message. Pour une confirmation de désabonnement, cette chaîne se présente
comme suit :
You have chosen to deactivate subscription arn:aws:sns:useast-1:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.
\nTo cancel this operation and restore the subscription, visit the
SubscribeURL included in this message.
MessageId
Identificateur unique universel, propre à chaque message publié. Pour un message renvoyé par
Amazon SNS au cours d'une nouvelle tentative, l'ID du message d'origine est utilisé.
Signature
Signature cryptée Base64 « SHA1withRSA » des valeurs Message, MessageId, Type, Timestamp
et TopicArn.
SignatureVersion
Version de la signature Amazon SNS utilisée.
SigningCertURL
URL permettant d'accéder au certificat utilisé pour signer le message.
SubscribeURL
URL que vous devez visiter afin de reconfirmer l'abonnement. Vous pouvez également utiliser le
paramètre Token avec l'action ConfirmSubscription pour reconfirmer l'abonnement.
Horodatage
Heure (GMT) à laquelle la confirmation de désabonnement a été envoyée.
API Version 2010-03-31
216
Amazon Simple Notification
Service Manuel du développeur
Format JSON de confirmation de
désabonnement HTTP/HTTPS
Token
Valeur que vous pouvez utiliser avec l'action ConfirmSubscription pour reconfirmer l'abonnement.
Sinon, vous pouvez simplement visiter le paramètre SubscribeURL.
TopicArn
Amazon Resource Name (ARN) de la rubrique dont ce point de terminaison s'est désabonné.
Type
Type du message. Pour une confirmation de désabonnement, le type est
UnsubscribeConfirmation.
Le message HTTP POST suivant est un exemple de message UnsubscribeConfirmation envoyé à un
point de terminaison HTTP.
POST / HTTP/1.1
x-amz-sns-message-type: UnsubscribeConfirmation
x-amz-sns-message-id: 47138184-6831-46b8-8f7c-afc488602d7d
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:uswest-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
Content-Length: 1399
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent
{
"Type" : "UnsubscribeConfirmation",
"MessageId" : "47138184-6831-46b8-8f7c-afc488602d7d",
"Token" :
"2336412f37fb687f5d51e6e241d09c805a5a57b30d712f7948a98bac386edfe3e10314e873973b3e0a3c09119b
"TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Message" : "You have chosen to deactivate subscription arn:aws:sns:uswest-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:uswest-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f7948a98bac38
"Timestamp" : "2012-04-26T20:06:41.581Z",
"SignatureVersion" : "1",
"Signature" : "EXAMPLEHXgJmXqnqsHTlqOCk7TIZsnk8zpJJoQbr8leD
+8kAHcke3ClC4VPOvdpZo9s/
vR9GOznKab6sjGxE8uwqDI9HwpDm8lGxSlFGuwCruWeecnt7MdJCNh0XK4XQCbtGoXB762ePJfaSWi9tYwzW65zAFU04
"SigningCertURL" : "https://sns.us-west-2.amazonaws.com/
SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
Vous pouvez télécharger le fichier JSON suivant pour afficher la définition du format JSON pour
une confirmation de désabonnement : https://sns.us-west-2.amazonaws.com/doc/2010-03-31/
UnsubscribeConfirmation.json.
API Version 2010-03-31
217
Amazon Simple Notification
Service Manuel du développeur
Format JSON de stratégie de
diffusion SetSubscriptionAttributes
Format JSON de stratégie de diffusion
SetSubscriptionAttributes
Si vous envoyez une demande à l'action SetSubscriptionAttributes et que vous définissez le paramètre
AttributeName sur la valeur DeliveryPolicy, la valeur du paramètre AttributeValue doit être un objet
JSON valide. Par exemple, l'exemple suivant définit la stratégie de diffusion sur 5 tentatives au 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}}
...
Utilisez le format JSON suivant pour la valeur du paramètre AttributeValue.
{
"healthyRetryPolicy" : {
"minDelayTarget" : <int>,
"maxDelayTarget" : <int>,
"numRetries" : <int>,
"numMaxDelayRetries" : <int>,
"backoffFunction" : "<linear|arithmetic|geometric|exponential>"
},
"throttlePolicy" : {
"maxReceivesPerSecond" : <int>
}
}
Pour plus d'informations sur l'action SetSubscriptionAttribute, consultez la page
SetSubscriptionAttributes dans le manuel Amazon Simple Notification Service API Reference.
Format JSON de stratégie de diffusion
SetTopicAttributes
Si vous envoyez une demande à l'action SetTopicAttributes et que vous définissez le paramètre
AttributeName sur la valeur DeliveryPolicy, la valeur du paramètre AttributeValue doit être un objet
JSON valide. Par exemple, l'exemple suivant définit la stratégie de diffusion sur 5 tentatives au 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}}}
...
Utilisez le format JSON suivant pour la valeur du paramètre AttributeValue.
API Version 2010-03-31
218
Amazon Simple Notification
Service Manuel du développeur
Format JSON de stratégie de diffusion SetTopicAttributes
{
"http" : {
"defaultHealthyRetryPolicy" : {
"minDelayTarget": <int>,
"maxDelayTarget": <int>,
"numRetries": <int>,
"numMaxDelayRetries": <int>,
"backoffFunction": "<linear|arithmetic|geometric|exponential>"
},
"disableSubscriptionOverrides" : <boolean>,
"defaultThrottlePolicy" : {
"maxReceivesPerSecond" : <int>
}
}
}
Pour plus d'informations sur l'action SetTopicAttribute, consultez la page SetTopicAttributes dans le
manuel Amazon Simple Notification Service API Reference.
API Version 2010-03-31
219
Amazon Simple Notification
Service Manuel du développeur
Activation de la diffusion brute des
messages avec AWS Management Console
Annexe : Charge utile volumineuse
et diffusion brute des messages
Avec Amazon SNS et Amazon SQS, vous avez désormais la possibilité d'envoyer des messages de
charge utile volumineuse de 256 Ko (262 144 octets) au maximum. Pour envoyer des charges utiles
volumineuses (messages compris entre 64 Ko et 256 Ko), vous devez utiliser un SDK AWS qui prend
en charge la signature AWS Signature Version 4 (SigV4). Pour vérifier si SigV4 est pris en charge pour
un SDK AWS, consultez les notes de mise à jour du kit de développement logiciel.
Outre l'envoi de charges utiles volumineuses, Amazon SNS vous permet maintenant d'activer la
diffusion brute des messages pour les messages diffusés à des points de terminaison Amazon SQS
ou HTTP/S. Cela élimine la nécessité pour les points de terminaison de traiter le formatage JSON,
qui est créé pour les métadonnées Amazon SNS lorsque la diffusion brute des messages n'est pas
sélectionnée. Par exemple, lors de l'activation de la diffusion brute des messages pour un point de
terminaison Amazon SQS, les métadonnées Amazon SNS ne sont pas incluses et le message publié
est diffusé au point de terminaison Amazon SQS abonné tel quel. Lors de l'activation de la diffusion
brute des messages pour les points de terminaison HTTP/S, les messages contiennent un en-tête
HTTP supplémentaire x-amz-sns-rawdelivery avec la valeur true pour indiquer que le message
est publié sous forme brute et non avec un formatage JSON. Cela permet à ces points de terminaison
de comprendre le contenu de la diffusion et facilite la transition des abonnements entre le format JSON
et la diffusion brute.
Pour activer la diffusion brute des messages à l'aide de l'un des kits de développement
logiciel AWS, vous devez utiliser l'action SetSubscriptionAttribute et configurer l'attribut
RawMessageDelivery avec la valeur true. La valeur par défaut est false.
Activation de la diffusion brute des messages
avec AWS Management Console
Vous pouvez activer la diffusion brute des messages à l'aide d'AWS Management Console en
définissant l'attribut d'abonnement Raw Message Delivery sur la valeur true.
Pour activer la diffusion brute des messages avec AWS Management Console
1.
Connectez-vous à la AWS Management Console et ouvrez la console Amazon SNS à l'adresse
https://console.aws.amazon.com/sns/.
API Version 2010-03-31
220
2.
3.
4.
Amazon Simple Notification
Service Manuel du développeur
Activation de la diffusion brute des
messages avec AWS Management Console
Sélectionnez une rubrique qui est abonnée à un point de terminaison Amazon SQS ou HTTP/S,
puis cliquez sur l'ARN de la rubrique.
La page Topic Details s'affiche.
Sélectionnez l'ID d'abonnement dans le champ Subscription ID, puis cliquez sur la zone de liste
déroulante Other subscription actions.
Cliquez sur Edit subscription attributes, sélectionnez Raw Message Delivery, puis cliquez sur Set
subscription attributes.
API Version 2010-03-31
221
Amazon Simple Notification
Service Manuel du développeur
Historique du document
Le tableau suivant répertorie les modifications importantes apportées à cette documentation depuis la
dernière publication du Guide du développeur Amazon SNS.
• Version de l'API : 2010-03-31
• Dernière mise à jour de la documentation : 28 juin 2016
Modification
Description
Date de modification
Amazon SNS
prend en charge
les SMS dans le
monde entier
Amazon SNS prend désormais en charge les SMS dans
plus de 200 pays. Vous pouvez envoyer un message
directement à un numéro de téléphone, ou vous pouvez
envoyer un message à plusieurs numéros de téléphone
simultanément en abonnant ces numéros de téléphone
à une rubrique et en envoyant votre message à la
rubrique. Pour plus d'informations, consultez Envoi de
SMS avec Amazon SNS (p. 134).
28 juin 2016
Points de
terminaison de
plateforme et
jetons d'appareil
Ajout d'une rubrique relative à la création d'un point
de terminaison de plateforme et à la gestion de jetons
d'appareil pour la notification push mobile Amazon SNS.
Pour plus d'informations, consultez Création d'un point
de terminaison de plateforme et gestion des jetons
d'appareil (p. 92).
23 septembre 2015
Notifications
d’événements
d'application
Ajout d'une rubrique relative au déclenchement de
notifications lorsque certains événements d'application
surviennent. Pour plus d'informations, consultez
Notifications d’événements d'application (p. 103).
23 septembre 2015
Nouvelle prise
en charge des
notifications push
pour VoIP et Mac
OS X
Ajout de nouvelles rubriques relatives à l'envoi de
messages de notification push à des applications VoIP
et Mac OS X à l'aide d'Apple Push Notification Service.
Pour plus d'informations, consultez Mise en route avec
Apple Push Notification Service (p. 50).
15 juin 2015
Appel de fonctions
AWS Lambda
Ajout d'une rubrique relative à l'appel de fonctions
Lambda à l'aide de notifications Amazon SNS. Pour plus
d'informations, consultez Appel de fonctions Lambda à
l'aide de notifications Amazon SNS (p. 195).
09 avril 2015
API Version 2010-03-31
222
Amazon Simple Notification
Service Manuel du développeur
Modification
Description
Date de modification
Utilisation
d'attributs de
rubrique Amazon
SNS pour l’état
de diffusion du
message
Ajout d'une rubrique relative à l'utilisation d'attributs
de rubrique Amazon SNS pour l’état de diffusion du
message. Pour plus d'informations, consultez Utilisation
d'attributs de rubrique Amazon SNS pour l’état de
diffusion du message (p. 197).
09 avril 2015
Prise en charge de
la consignation de
l'état de diffusion
des messages de
notification push
Ajout d'une rubrique relative à l'utilisation d'attributs
d'application Amazon SNS pour l’état de diffusion du
message. Pour plus d'informations, consultez Utilisation
des attributs d'application Amazon SNS pour l’état de
diffusion du message (p. 100).
05 février 2015
Prise en charge de
AWS CloudTrail
avec Amazon
Simple Notification
Service
Ajout d'une rubrique relative à la consignation des
appels d'API Amazon SNS à l'aide de CloudTrail. Pour
plus d'informations, consultez Journalisation des appels
d'API Amazon Simple Notification Service à l'aide
d'AWS CloudTrail (p. 208).
09 octobre 2014
Etapes détaillées
push mobile
Amazon SNS
Ajout d'une rubrique relative aux étapes détaillées
09 octobre 2014
que vous devez effectuer pour utiliser push mobile
Amazon SNS. Ces informations vous aideront à mieux
comprendre les étapes nécessaires à l'utilisation des
API push mobile Amazon SNS. Pour plus d'informations,
consultez Etapes détaillées push mobile Amazon
SNS (p. 43).
Prise en charge
des messages
authentifiés avec
Microsoft Push
Notification Service
for Windows
Phone
Mise à jour d'une rubrique relative à l'envoi de
messages authentifiés avec MPNS. Pour plus
d'informations, consultez Mise en route avec
MPNS (p. 80).
19 août 2014
Prise en charge
de la définition
d'un attribut de
message de durée
de vie (TTL) pour
les messages de
notification push
mobile
Ajout d'une rubrique relative à la spécification de
métadonnées d'expiration pour un message de
notification push mobile. Pour plus d'informations,
consultez Utilisation de l'attribut de message de durée
de vie (TTL) Amazon SNS pour les notifications push
mobile (p. 106).
10 juillet 2014
Prise en charge de
Baidu Cloud Push,
Microsoft Push
Notification Service
for Windows
Phone, et Windows
Push Notification
Services
Ajout de rubriques relatives à l'utilisation de Baidu,
MPNS et WNS avec Amazon SNS pour envoyer des
messages de notification push à des appareils mobiles.
Pour de plus amples informations, veuillez consulter
Mise en route avec Baidu Cloud Push (p. 57), Mise
en route avec MPNS (p. 80) et Mise en route avec
WNS (p. 84).
12 juin 2014
Attributs de
message
Les attributs de message vous permettent de fournir
des éléments de métadonnées structurés relatifs à un
message. Pour plus d'informations, consultez Utilisation
d'attributs de message Amazon SNS (p. 201).
12 juin 2014
API Version 2010-03-31
223
Amazon Simple Notification
Service Manuel du développeur
Modification
Description
Date de modification
Exemples Amazon
SNS en Java
Ajout d'une section relative à l'utilisation de AWS SDK
for Java avec Amazon SNS. Les exemples de cette
section montrent comment créer un client Amazon
SNS, définir le point de terminaison Amazon SNS à
utiliser, et créer une rubrique. En outre, des exemples
d'abonnement à une rubrique, de publication dans une
rubrique et de suppression d'une rubrique sont fournis.
Pour plus d'informations, consultez Utilisation du kit
AWS SDK for Java avec Amazon SNS (p. 10).
23 avril 2014
Notifications push
mobile
Ajout d'une rubrique relative à la création et à l'envoi de
charges utiles personnalisées propres à une plateforme
dans des messages à destination d'appareils mobiles.
Pour plus d'informations, consultez Envoi de charges
utiles personnalisées propres à une plateforme dans
des messages à destination d'appareils mobiles (p. 98).
17 décembre 2013
Notifications push
mobile
Ajout de la prise en charge de l'envoi de messages
de notification directement à des applications sur des
appareils mobiles. Pour plus d'informations, consultez
Notifications push mobile Amazon SNS (p. 41).
13 août 2013
Première version
Il s'agit de la première version du Guide du développeur
Amazon SNS.
1 mai 2013
API Version 2010-03-31
224