Automatisches Pausieren des E-Mail-Versands für einen Konfigurationssatz - Amazon Simple Email Service

Automatisches Pausieren des E-Mail-Versands für einen Konfigurationssatz

Sie können Amazon SES konfigurieren, um Zuverlässigkeitsmetriken zu exportieren, die für E-Mails gelten, die unter Verwendung eines bestimmten Konfigurationssatzes an Amazon CloudWatch gesendet werden. Anschließend können Sie diese Metriken verwenden, um CloudWatch-Alarme zu erstellen, die für diese Konfigurationssätze gelten. Wenn diese Alarme bestimmte Grenzwerte überschreiten, können Sie das Senden von den E-Mails automatisch pausieren, welche die angegebenen Konfigurationssätze verwenden, ohne die gesamten Fähigkeiten zum E-Mail-Versand Ihres Amazon-SES-Kontos zu beeinträchtigen.

Anmerkung

Die in diesem Abschnitt beschriebene Lösung pausiert das Senden von E-Mails für einen bestimmten Konfigurationssatz in einer einzelnen AWS-Region. Wenn Sie E-Mails aus mehreren Regionen versenden, wiederholen Sie die Verfahren in diesem Abschnitt für jede Region, in der Sie diese Lösung implementieren möchten.

Teil 1: Aktivieren Sie die Berichterstattung der Zuverlässigkeitsmetriken für den Konfigurationssatz

Bevor Sie Amazon SES konfigurieren, um das Senden von E-Mails für einen Konfigurationssatz automatisch zu pausieren, müssen Sie zuerst den Export der Zuverlässigkeitsmetriken für den Konfigurationssatz aktivieren.

Führen Sie für die Aktivierung des Exports von Unzustellbarkeits -und Beschwerdemetriken für den Konfigurationssatz die Schritte in Reputationsmetriken anzeigen und exportieren aus.

Teil 2: Erstellen einer IAM-Rolle

Der erste Schritt für die Konfiguration der automatischen Pausierung des E-Mail-Versands besteht darin, eine IAM-Rolle zu erstellen, welche die UpdateConfigurationSetSendingEnabled-API-Operation ausführen kann.

So erstellen Sie die IAM-Rolle
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Roles (Rolle) aus.

  3. Wählen Sie Create role (Rolle erstellen) aus.

  4. Wählen Sie unter Select type of trusted entity (Typ der vertrauenswürdigen Entität auswählen) die Option AWS-Service aus.

  5. Wählen Sie unter Choose the service that will use this role (Die Rolle auswählen, die diese Rollen verwenden wird) die Option Lambda aus. Wählen Sie Next: Permissions (Weiter: Berechtigungen) aus.

  6. Wählen Sie auf der Seite Attach permissions policies (Berechtigungsrichtlinien anfügen) die folgenden Richtlinien aus:

    • AWS LambdaBasicExecutionRole

    • AmazonSESFullAccess

    Tipp

    Verwenden Sie das Suchfeld oben in der Liste der Richtlinien, um diese Richtlinien schnell zu finden.

    Klicken Sie auf Next: Review (Weiter: Überprüfen).

  7. Geben Sie auf der Seite Review (Überprüfen) im Feld Name einen Namen für die Rolle ein. Wählen Sie Create role (Rolle erstellen) aus.

Teil 3: Erstellen der Lambda-Funktion

Nachdem Sie eine IAM-Rolle erstellt haben, können Sie die Lambda-Funktion erstellen, mit der das Senden von E-Mails für den Konfigurationssatz pausiert wird.

So erstellen Sie die Lambda-Funktion:
  1. Öffnen Sie die AWS Lambda-Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie mithilfe der Regionsauswahl die Region aus, in der Sie diese Lambda-Funktion bereitstellen möchten.

    Anmerkung

    Diese Funktion pausiert nur das Senden von E-Mails für Konfigurationssätze in der AWS-Region, die Sie in diesem Schritt auswählen. Wenn Sie aus mehr als einer Region E-Mails versenden, wiederholen Sie die Verfahren in diesem Abschnitt für jede Region, in der das Senden von E-Mails automatisch pausiert werden soll.

  3. Wählen Sie Create function (Funktion erstellen).

  4. Wählen Sie unter Create function (Funktion erstellen) die Option Author from scratch (Scratch-Autor).

  5. Führen Sie unter Author from scratch (Scratch-Autor) die folgenden Schritte durch:

    • Geben Sie für Name einen Namen für die Lambda-Funktion ein.

    • Bei Laufzeit wählen Sie Node.js 14x( oder die Version, die derzeit in der Auswahlliste angeboten wird) aus.

    • Wählen Sie für Role (Rolle) die Option Choose an existing role (Vorhandene Rolle auswählen).

    • Wählen Sie für Existing role (Vorhandene Rolle) die IAM-Rolle aus, die Sie in Teil 2: Erstellen einer IAM-Rolle erstellt haben.

    Wählen Sie Create function (Funktion erstellen).

  6. Fügen Sie sie im Code-Editor unter Function code (Funktionscode) den folgenden Code ein:

    '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); } }); };

    Ersetzen Sie ConfigSet im vorherigen Code mit dem Namen des Konfigurationssatzes. Wählen Sie Save (Speichern) aus.

  7. Wählen Sie Test aus. Wenn das Fenster Configure test event (Testereignis konfigurieren) angezeigt wird, geben Sie einen Namen im Feld Event name (Ereignisname) ein und wählen Sie dann Create (Erstellen) aus.

  8. Stellen Sie sicher, dass die Benachrichtigungsleiste oben auf der Seite Execution result: succeeded anzeigt. Wenn die Funktion nicht ausgeführt werden kann, führen Sie die folgenden Schritte aus:

    • Überprüfen Sie, ob die IAM-Rolle, die Sie in Teil 2: Erstellen einer IAM-Rolle erstellt haben die richtigen Richtlinien enthält.

    • Vergewissern Sie sich, dass der Code in der Lambda-Funktion keine Syntaxfehler enthält. Der Lambda-Code-Editor hebt automatisch Syntaxfehler und andere potenzielle Probleme hervor.

Teil 4: Erneute Aktivierung des E-Mail-Versands für den Konfigurationssatz

Ein Nebeneffekt des Tests der Lambda-Funktion in Teil 3: Erstellen der Lambda-Funktion ist, dass das Senden von E-Mails für den Konfigurationssatz pausiert ist. In den meisten Fällen möchten Sie kein Pausieren des Versands für den Konfigurationssatz, bis der CloudWatch-Alarm ausgelöst wird.

Mithilfe der Verfahren in diesem Abschnitt wird der E-Mail-Versand für Ihren Konfigurationssatz erneut aktiviert. Um diese Verfahren ausführen zu können, müssen Sie die AWS Command Line Interface installieren und konfigurieren. Weitere Informationen finden Sie im AWS Command Line Interface-Benutzerhandbuch.

So aktivieren Sie das Senden von E-Mails erneut
  1. Geben Sie in der Befehlszeile den folgenden Befehl ein, um den E-Mail-Versand für den Konfigurationssatz erneut zu aktivieren:

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

    Ersetzen Sie im vorherigen Befehl ConfigSet mit den Namen des Konfigurationssatzes, für den Sie den E-Mail-Versand pausieren möchten.

  2. Geben Sie in der Befehlszeile den folgenden Befehl ein, um sicherzustellen, dass das Senden von E-Mails aktiviert ist:

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

    Der Befehl erzeugt eine Ausgabe, die dem folgenden Beispiel ähnelt:

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

    Wenn der SendingEnabled-Wert true lautet, dann wurde der E-Mail-Versand für den Konfigurationssatz erfolgreich neu aktiviert.

Teil 5: Erstellen eines Amazon-SNS-Themas

Damit CloudWatch Ihre Lambda-Funktion ausführt, wenn ein Alarm ausgelöst wird, müssen Sie zuerst ein Amazon-SNS-Thema erstellen und es für die Lambda-Funktion abonnieren.

So erstellen Sie das Amazon-SNS-Thema
  1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie mithilfe der Regionsauswahl die Region aus, in der Sie den E-Mail-Versand automatisch pausieren möchten.

  3. Wählen Sie im Navigationsbereich Topics (Themen) aus.

  4. Wählen Sie Create new topic (Neues Thema erstellen).

  5. Geben Sie im Fenster Create new topic (Neues Thema erstellen) unter Topic name (Themenname) einen Namen für das Thema ein. Optional können Sie im Feld Display name (Display-Name) einen aussagekräftigeren Namen eingeben.

    Wählen Sie Create topic (Thema erstellen) aus.

  6. Aktivieren Sie in der Liste der Themen das Kontrollkästchen neben dem im vorherigen Schritt erstellten Thema. Wählen Sie im Menü Actions (Ereignis) die Option Subscribe to topic (Im Thema anmelden) aus.

  7. Wählen Sie im Fenster Create subscription (Abonnement erstellen) folgende Optionen aus:

    • Für Protocol (Protokoll) wählen Sie AWS Lambda aus.

    • Wählen Sie für Endpoint (Endpunkt) die Lambda-Funktion aus, die Sie in Teil 3: Erstellen der Lambda-Funktion erstellt haben.

    • Wählen Sie für Version or alias (Version oder alias) die Option default (Standard) aus.

  8. Klicken Sie auf Create subscription (Abonnement erstellen).

Teil 6: So erstellen Sie einen CloudWatch-Alarm

Dieser Abschnitt enthält Verfahren zum Erstellen eines Alarms in CloudWatch, der ausgelöst wird, wenn eine Metrik einen bestimmten Schwellenwert erreicht. Wenn der Alarm ausgelöst wird, übermittelt er eine Benachrichtigung an das Amazon-SNS-Thema, das Sie in Teil 5: Erstellen eines Amazon-SNS-Themas erstellt haben, was dann wiederum die Lambda-Funktion auslöst, die Sie in Teil 3: Erstellen der Lambda-Funktion erstellt haben.

So erstellen Sie einen CloudWatch-Alarm
  1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie mithilfe der Regionsauswahl die Region aus, in der Sie den E-Mail-Versand automatisch pausieren möchten.

  3. Wählen Sie im Navigationsbereich auf der linken Seite Alarms (Alarme) aus.

  4. Wählen Sie Create Alarm (Alarm erstellen) aus.

  5. Wählen Sie im Fenster Create Alarm (Alarme erstellen) unter SES Metrics (SES-Metriken) die Option Configuration Set Metrics (Konfigurationsset-Metriken) aus.

  6. Suchen Sie in der ses:configuration-set-Spalte den Konfigurationssatz, für den Sie einen Alarm erstellen möchten. Wählen Sie unter Metric Name (Metrikname) eine der folgenden Optionen aus:

    • Reputation.BounceRate – Wählen Sie diese Metrik aus, wenn Sie das Senden von E-Mails für den Konfigurationssatz pausieren möchten, sobald die gesamte Unzustellbarkeitsquote für den Konfigurationssatz einen von Ihnen definierten Schwellenwert überschreitet.

    • Reputation.ComplaintRate – Wählen Sie diese Metrik aus, wenn Sie das Senden von E-Mails für den Konfigurationssatz pausieren möchten, sobald die gesamte Beschwerdequote für den Konfigurationssatz einen von Ihnen definierten Schwellenwert überschreitet.

    Wählen Sie Next (Weiter).

  7. Führen Sie folgende Schritte aus:

    • Geben Sie unter Alarm Threshold (Alarm-Schwellenwert) im Feld Name einen Namen für den Alarm ein.

    • Geben Sie unter Whenever: Reputation.BounceRate oder Whenever: Reputation.ComplaintRate den Schwellenwert an, der zum Auslösen des Alarms führt.

      Anmerkung

      Wenn die gesamte Unzustellbarkeitsquote für Ihr Amazon-SES-Konto 10 % überschreitet, oder wenn die gesamte Beschwerdequote für Ihr Amazon-SES-Konto 0,5 % überschreitet, wird für Ihr -Konto automatisch eine Prüfung festgelegt. Wenn Sie die Unzustellbarkeits- und Beschwerdequote angeben, die dazu führt, dass der CloudWatch-Alarm ausgelöst wird, empfehlen wir, Werte zu verwenden, die weit unterhalb dieser Quoten liegen, um zu verhindern, dass eine Prüfung für Ihr Konto festgelegt wird.

    • Wählen Sie unter Actions (Aktionen) für Whenever this alarm die Option State is ALARM (Status ist ALARM) aus. Wählen Sie für Send notification to (Benachrichtigung senden an) das Amazon-SNS-Thema aus, das Sie in Teil 5: Erstellen eines Amazon-SNS-Themas erstellt haben.

    Wählen Sie Create Alarm (Alarm erstellen) aus.

Teil 7: Testen der Lösung

Sie können jetzt den Alarm testen, um sicherzustellen, dass er die Lambda-Funktion ausführt, wenn er in den Status ALARM versetzt wird. Sie können die Operation SetAlarmState in der CloudWatch-API verwenden, um den Status des Alarms temporär zu ändern.

Die Verfahren in diesem Abschnitt sind optional, es wird jedoch empfohlen, diese durchzuführen, um zu überprüfen, ob die gesamte Lösung ordnungsgemäß konfiguriert ist.

So testen Sie die Lösung
  1. Geben Sie in der Befehlszeile den folgenden Befehl ein, um den Status des E-Mail-Versands für den Konfigurationssatz zu überprüfen:

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

    Wenn der Versand für den Konfigurationssatz aktiviert ist, wird die folgende Ausgabe angezeigt:

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

    Wenn der SendingEnabled-Wert true lautet, dann ist der E-Mail-Versand für den Konfigurationssatz derzeit aktiviert.

  2. Geben Sie in der Befehlszeile den folgenden Befehl ein, um den Alarmstatus vorübergehend in ALARM zu ändern:

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

    Ersetzen Sie MyAlarm im vorherigen Befehl mit dem Namen des Alarms, den Sie in Teil 6: So erstellen Sie einen CloudWatch-Alarm erstellt haben.

    Anmerkung

    Wenn Sie diesen Befehl ausführen, wechselt der Status des Alarms innerhalb weniger Sekunden von OK zu ALARM und zurück zu OK. Die Anzeige dieser Statusänderungen erfolgt auf der Registerkarte History (Verlauf) des Alarms in der CloudWatch-Konsole oder durch Verwendung der DescribeAlarmHistory-Operation.

  3. Geben Sie in der Befehlszeile den folgenden Befehl ein, um den Status des E-Mail-Versands für den Konfigurationssatz zu überprüfen:

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

    Wenn die Lambda-Funktion erfolgreich ausgeführt wird, sehen Sie eine Ausgabe, die dem folgenden Beispiel ähnelt:

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

    Wenn der SendingEnabled-Wert false lautet, dann ist das Senden von E-Mails für den Konfigurationssatz deaktiviert. Dies bedeutet, dass die Lambda-Funktion erfolgreich ausgeführt wurde.

  4. Führen Sie die Schritte in Teil 4: Erneute Aktivierung des E-Mail-Versands für den Konfigurationssatz aus, um den E-Mail-Versand für den Konfigurationssatz erneut zu aktivieren.