Interruption automatique d'envoi d'e-mails pour un ensemble de configurations - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interruption automatique d'envoi d'e-mails pour un ensemble de configurations

Vous pouvez configurer Amazon SES pour exporter des métriques de réputation spécifiques à des e-mails envoyés à l'aide d'un jeu de configurations donné vers Amazon CloudWatch. Vous pouvez ensuite utiliser ces métriques pour créer des alarmes CloudWatch spécifiques à ces jeux de configurations. Lorsque ces alarmes dépassent un certain seuil, vous pouvez automatiquement interrompre l'envoi d'e-mails qui utilisent les jeux de configurations spécifiés, sans aucune répercussion sur les capacités globales d'envoi d'e-mails de votre compte Amazon SES.

Note

La solution décrite dans cette section interrompt l'envoi d'e-mails pour un jeu de configurations spécifique dans une seule région AWS. Si vous envoyez un e-mail à partir de plusieurs régions, répétez les procédures de cette section pour chaque région dans laquelle vous souhaitez mettre en œuvre cette solution.

1ère partie : Activation de la génération de rapports de métriques de réputation pour l'ensemble de configurations

Avant de pouvoir configurer l'interruption automatique de l'envoi d'e-mails pour un jeu de configurations dans Amazon SES, vous devez d'abord activer l'exportation des métriques de réputation pour le jeu de configurations.

Pour activer l'exportation de métriques de retour à l'expéditeur et de réclamation pour l'ensemble de configurations, complétez les étapes détaillées dans Affichage et exportation des métriques de réputation.

2e partie : Création d'un rôle IAM

La première étape de la procédure de configuration de l'interruption automatique de l'envoi d'e-mails consiste à créer un rôle IAM capable de créer l'opération d'API UpdateConfigurationSetSendingEnabled.

Pour créer le rôle IAM
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Rôles.

  3. Sélectionnez Create role (Créer un rôle).

  4. Sous Select type of trusted entity (Sélectionner le type d'entité approuvée), choisissez service AWS.

  5. Sous Choose the service that will use this role (Choisir le service qui utilisera ce rôle), choisissez Lambda. Sélectionnez Next: Permissions (Étape suivante : autorisations).

  6. Sur la page Attach permissions policies (Attacher les stratégies d'autorisations), choisissez les stratégies suivantes :

    • AWS LambdaBasicExecutionRole

    • AmazonSESFullAccess

    Astuce

    Pour accéder rapidement à ces stratégies, servez-vous de la zone de recherche située en haut de la liste des stratégies.

    Choisissez Next: Review (Suivant : Vérification).

  7. Sur la page Review (Vérifier), dans Name (Nom), attribuez un nom au rôle. Sélectionnez Create role (Créer un rôle).

3e partie : Création de la fonction Lambda

Une fois que vous avez créé un rôle IAM, vous pouvez créer la fonction Lambda qui interrompt l'envoi d'e-mails pour le jeu de configurations.

Pour créer la fonction Lambda
  1. Ouvrez la console AWS Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  2. Utilisez le sélecteur de région pour choisir la région dans laquelle vous souhaitez déployer la fonction Lambda.

    Note

    Cette fonction interrompt l'envoi d'e-mails uniquement pour les jeux de configurations de la région AWS sélectionnée au cours de cette étape. Si vous envoyez un e-mail à partir de plusieurs régions, répétez les procédures de cette section pour chaque région dans laquelle vous souhaitez interrompre automatiquement l'envoi d'e-mails.

  3. Sélectionnez Create function (Créer une fonction).

  4. Sous Create function (Créer une fonction), choisissez Author from scratch (Créer de bout en bout).

  5. Sous Author from scratch (Créer de bout en bout), procédez comme suit :

    • Pour Name (Nom), attribuez un nom à la fonction Lambda.

    • Pour Runtime (Exécution), choisissez Node.js 14 (ou la version actuellement proposée dans la liste de sélection).

    • Pour Role (Rôle), choisissez Choose an existing role (Sélectionner un rôle existant).

    • Pour Existing role (Rôle existant), choisissez le rôle IAM que vous avez créé dans 2e partie : Création d'un rôle IAM.

    Sélectionnez Create function (Créer une fonction).

  6. Sous Function code (Code de fonction), dans l'éditeur de code, collez le code suivant :

    'use strict'; var aws = require('aws-sdk'); // Create a new SES object. var ses = new aws.SES(); // Specify the parameters for this operation. In this example, you pass the // Enabled parameter, with a value of false (Enabled = false disables email // sending, Enabled = true enables it). You also pass the ConfigurationSetName // parameter, with a value equal to the name of the configuration set for // which you want to pause email sending. var params = { ConfigurationSetName: ConfigSet, Enabled: false }; exports.handler = (event, context, callback) => { // Pause sending for a configuration set ses.updateConfigurationSetSendingEnabled(params, function(err, data) { if(err) { console.log(err.message); } else { console.log(data); } }); };

    Dans le code précédent, remplacez ConfigSet par le nom de l'ensemble de configurations. Choisissez Save (Enregistrer).

  7. Sélectionnez Test (Tester). Si la fenêtre Configure test event (Configurer un événement de test) s'affiche, entrez un nom dans le champ Event name (Nom d'événement), puis choisissez Create (Créer).

  8. Vérifiez que la barre de notifications située en haut de la page indique bien Execution result: succeeded. Si la fonction n'a pas pu s'exécuter, procédez comme suit :

    • Vérifiez que le rôle IAM que vous avez créé dans la 2e partie : Création d'un rôle IAM contient les stratégies appropriées.

    • Vérifiez que le code de la fonction Lambda ne comporte pas d'erreurs. L'éditeur de code Lambda met automatiquement en surbrillance les erreurs de syntaxe et d'autres problèmes potentiels.

4e partie : Réactivation de l'envoi d'e-mails pour l'ensemble de configurations

Le test de la fonction Lambda dans la 3e partie : Création de la fonction Lambda a pour conséquence d'interrompre l'envoi d'e-mails pour le jeu de configurations. Dans la plupart des cas, vous ne souhaitez pas interrompre l'envoi pour le jeu de configurations tant que l'alarme CloudWatch n'est pas déclenchée.

Les procédures de cette section visent à réactiver l'envoi d'e-mails pour votre ensemble de configurations. Pour effectuer ces procédures, vous devez installer et configurer l' AWS Command Line Interface. Pour en savoir plus, veuillez consulter le Guide de l'utilisateur AWS Command Line Interface.

Pour réactiver l'envoi d'e-mails
  1. Sur la ligne de commande, entrez la commande suivante pour réactiver l'envoi d'e-mails pour l'ensemble de configurations :

    aws ses update-configuration-set-sending-enabled \ --configuration-set-name ConfigSet \ --enabled

    Dans la commande précédente, remplacez ConfigSet par le nom du jeu de configurations pour lequel vous souhaitez interrompre l'envoi d'e-mails.

  2. Sur la ligne de commande, entrez la commande suivante pour vérifier que l'envoi d'e-mails est activé :

    aws ses describe-configuration-set \ --configuration-set-name ConfigSet \ --configuration-set-attribute-names reputationOptions

    Cette commande produit un résultat similaire à ce qui suit :

    { "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": true } }

    Si la valeur de SendingEnabled est true, l'envoi d'e-mails pour l'ensemble de configurations a été correctement réactivé.

5e partie : Créer une rubrique Amazon SNS

Pour que CloudWatch exécute la fonction Lambda lors du déclenchement d'une alarme, vous devez d'abord créer une rubrique Amazon SNS et abonner la fonction Lambda à cette dernière.

Pour créer la rubrique Amazon SNS
  1. Ouvrez la console Amazon SNS à partir de l'adresse https://console.aws.amazon.com/sns/v3/home.

  2. Utilisez le sélecteur de région pour choisir la région dans laquelle vous souhaitez interrompre automatiquement l'envoi d'e-mails.

  3. Dans le panneau de navigation, sélectionnez Topics (Rubriques).

  4. Choisissez Create new topic (Créer une nouvelle rubrique).

  5. Dans la fenêtre Create new topic (Créer une nouvelle rubrique), dans Topic name (Nom de rubrique), attribuez un nom à la rubrique. Si vous le souhaitez, vous pouvez entrer un nom plus descriptif dans le champ Display name (Nom d'affichage).

    Choisissez Create topic (Créer une rubrique).

  6. Dans la liste des rubriques, cochez la case en regard de la rubrique que vous avez créée à l'étape précédente. Dans le menu Actions, choisissez Subscribe to topic (S'abonner à la rubrique).

  7. Dans la fenêtre Create subscription (Créer un abonnement), effectuez les sélections suivantes :

    • Pour Protocol (Protocole), choisissez AWS Lambda.

    • Pour Endpoint (Point de terminaison), choisissez la fonction Lambda que vous avez créée dans la 3e partie : Création de la fonction Lambda.

    • Pour Version or alias (Version ou alias), choisissez default (par défaut).

  8. Choisissez Create subscription (Créer un abonnement).

6e partie : Pour créer une alarme CloudWatch

Cette section contient des procédures visant à créer une alarme dans CloudWatch qui se déclenche lorsqu'une métrique atteint un certain seuil. Lorsqu'elle se déclenche, l'alarme adresse une notification à la rubrique Amazon SNS que vous avez créée dans la 5e partie : Créer une rubrique Amazon SNS, qui exécute alors la fonction Lambda que vous avez créée dans la 3e partie : Création de la fonction Lambda.

Pour créer une alarme CloudWatch
  1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/ CloudWatch/.

  2. Utilisez le sélecteur de région pour choisir la région dans laquelle vous souhaitez interrompre automatiquement l'envoi d'e-mails.

  3. Dans le panneau de navigation de gauche, choisissez Alarms (Alarmes).

  4. Sélectionnez Create Alarm (Créer une alarme).

  5. Dans la fenêtre Create Alarm (Créer une alarme), sous SES Metrics (Métriques SES), choisissez Configuration Set Metrics (Métriques de l'ensemble de configurations).

  6. Dans la colonne ses:configuration-set, identifiez l'ensemble de configurations pour lequel vous souhaitez créer une alarme. Sous Metric Name (Nom de la métrique), choisissez l'une des options suivantes :

    • Reputation.BounceRate – Choisissez cette métrique si vous souhaitez interrompre l'envoi d'e-mails pour l'ensemble de configurations dès lors que le taux global de messages d'erreur définitifs pour l'ensemble de configurations franchit un seuil que vous définissez.

    • Reputation.ComplaintRate – Choisissez cette métrique si vous souhaitez interrompre l'envoi d'e-mails pour l'ensemble de configurations dès lors que le taux global de réclamations pour l'ensemble de configurations franchit un seuil que vous définissez.

    Choisissez Next (Suivant).

  7. Procédez comme suit :

    • Sous Alarm Threshold (Seuil d'alarme), pour Name (Nom), saisissez un nom pour l'alarme.

    • Sous Whenever: Reputation.BounceRate (Chaque fois que : Reputation.BounceRate) ou Whenever: Reputation.ComplaintRate (Chaque fois que : Reputation.ComplaintRate), spécifiez le seuil qui déclenche l'alarme.

      Note

      Si le taux global de retours à l'expéditeur pour votre compte Amazon SES dépasse 10 %, ou si le taux global de réclamations pour votre compte Amazon SES dépasse 0,5 %, votre compte Amazon SES est automatiquement placé sous vérification. Lorsque vous spécifiez le taux de retour à l'expéditeur ou le taux de réclamation qui déclenche l'alarme CloudWatch, nous vous recommandons d'utiliser des valeurs bien inférieures à ces taux pour empêcher la mise sous vérification de votre compte.

    • Sous Actions, pour Whenever this alarm (Chaque fois que cette alarme), choisissez State is ALARM (L'état est ALARME). Pour Send notification to (Envoyer la notification à), choisissez la rubrique Amazon SNS que vous avez créée dans la 5e partie : Créer une rubrique Amazon SNS.

    Choisissez Create Alarm (Créer l'alarme).

7e partie : Test de la solution

Vous pouvez maintenant tester l'alarme afin de vérifier qu'elle exécute la fonction Lambda lorsqu'elle passe à l'état ALARM. Vous pouvez utiliser l'opération SetAlarmState dans l'API CloudWatch pour modifier temporairement l'état de l'alarme.

Bien que les procédures de cette section soient facultatives, nous vous recommandons de les exécuter pour vérifier que l'ensemble de la solution est correctement configurée.

Pour tester la solution
  1. Sur la ligne de commande, entrez la commande suivante pour vérifier le statut d'envoi d'e-mails pour l'ensemble de configurations :

    aws ses describe-configuration-set --configuration-set-name ConfigSet

    Si l'envoi est activé pour l'ensemble de configurations défini, vous voyez la sortie suivante :

    { "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": true } }

    Si la valeur de SendingEnabled est true, l'envoi d'e-mails pour l'ensemble de configurations est activé.

  2. Sur la ligne de commande, entrez la commande suivante afin de changer temporairement l'état de l'alarme en ALARM :

    aws cloudwatch set-alarm-state \ --alarm-name MyAlarm \ --state-value ALARM \ --state-reason "Testing execution of Lambda function"

    Dans la commande précédente, remplacez MyAlarm par le nom de l'alarme que vous avez créée dans la 6e partie : Pour créer une alarme CloudWatch.

    Note

    Lorsque vous exécutez cette commande, le statut de l'alarme passe de OK à ALARM et de nouveau à OK en l'espace de quelques secondes. Vous pouvez examiner ces changements de statut dans l'onglet History (Historique) de l'alarme dans la console CloudWatch ou en utilisant l'opération DescribeAlarmHistory.

  3. Sur la ligne de commande, entrez la commande suivante pour vérifier le statut d'envoi d'e-mails pour l'ensemble de configurations :

    aws ses describe-configuration-set \ --configuration-set-name ConfigSet

    Si la fonction Lambda est exécutée avec succès, vous obtiendrez une sortie similaire à l'exemple suivant :

    { "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": false } }

    Si la valeur de SendingEnabled est false, l'envoi d'e-mails pour le jeu de configurations est désactivé, indiquant que la fonction Lambda a été exécutée avec succès.

  4. Suivez les étapes de 4e partie : Réactivation de l'envoi d'e-mails pour l'ensemble de configurations pour réactiver l'envoi d'e-mails pour l'ensemble de configurations.