Sospensione automatica dell'invio di e-mail per l'intero account Amazon SES - Amazon Simple Email Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sospensione automatica dell'invio di e-mail per l'intero account Amazon SES

In questa sezione viene illustrata la procedura per configurare Amazon SES, Amazon SNS, Amazon CloudWatch e AWS Lambda in modo che sospendano automaticamente l'invio di e-mail per l'account Amazon SES in una sola Regione AWS. Se invii e-mail da diverse Regioni, ripeti le procedure di questa sezione per ogni Regione in cui desideri implementare questa soluzione.

Fase 1: creazione di un ruolo IAM

La prima fase per la configurazione della sospensione automatica dell'invio di e-mail consiste nel creare un ruolo IAM in grado di eseguire l'operazione API UpdateAccountSendingEnabled.

Creazione del ruolo IAM
  1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione, seleziona Roles (Ruoli).

  3. Selezionare Create role (Crea ruolo).

  4. Nella pagina Select trusted entity (Seleziona entità attendibile), scegli AWSservice (Servizio ) per Trusted entity type (tipo Entità attendibile).

  5. In Use case (Caso d'uso), scegli Lambda e quindi scegli Next (Successivo).

  6. Nella pagina Add permissions (Aggiungi autorizzazioni), scegli le policy seguenti:

    • AWSLambdaBasicExecutionRole

    • AmazonSESFullAccess

    Suggerimento

    Utilizzare la casella di ricerca in Policy di autorizzazione per individuare rapidamente queste policy, ma si noti che dopo aver cercato e selezionato la prima policy, è necessario scegliere Clear filters (Cancella filtri) prima di cercare e selezionare la seconda policy.

    Quindi scegli Next (Successivo).

  7. Nella pagina Name, review, and create (Assegna nome, rivedi e crea), in Dettagli ruolo, inserisci un nome significativo per la policy nel campo Nome ruolo.

  8. Verificare che le due policy selezionate siano elencate nella tabella Riepilogo della policy di autorizzazione, quindi scegliere Create role (Crea ruolo).

Fase 2: creazione della funzione Lambda

Dopo aver creato un ruolo IAM, puoi creare la funzione Lambda per la sospensione dell'invio di e-mail per il tuo account.

Creazione della funzione Lambda
  1. Apri la console AWS Lambda all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Usa il selettore della Regione per scegliere la Regione in cui desideri distribuire questa funzione Lambda.

    Nota

    Questa funzione sospende l'invio di e-mail solo per la regione AWS selezionata in questa fase. Se invii e-mail da più Regioni, ripeti le procedure di questa sezione per ogni Regione in cui desideri che venga sospeso automaticamente l'invio di e-mail.

  3. Seleziona Create function (Crea funzione).

  4. In Create function (Crea funzione), scegli Author from scratch (Crea da zero).

  5. In Informazioni di base eseguire queste operazioni:

    • Per Nome digita un nome per la funzione Lambda.

    • Per Tempo di esecuzione, scegli Node.js 14 (o la versione attualmente disponibile nell'elenco selezionato).

    • Per Architettura, mantieni il valore predefinito preselezionato, x86_64.

    • In autorizzazioni, espandi Change default execution role (Modifica ruolo di esecuzione predefinito) e scegli Use an existing role (Usa un ruolo esistente).

    • Fai clic all'interno dell’elenco Ruolo esistente e scegli il ruolo IAM creato in Fase 1: creazione di un ruolo IAM.

    Quindi, seleziona Crea funzione.

  6. In Fonte funzione, nell'editor di codice, incolla il codice seguente:

    'use strict'; const { SES } = require("@aws-sdk/client-ses") // Create a new SES object. var ses = new SES({}); // Specify the parameters for this operation. In this case, there is only one // parameter to pass: the Enabled parameter, with a value of false // (Enabled = false disables email sending, Enabled = true enables it). var params = { Enabled: false }; exports.handler = (event, context, callback) => { // Pause sending for your entire SES account ses.updateAccountSendingEnabled(params, function(err, data) { if(err) { console.log(err.message); } else { console.log(data); } }); };

    Scegliere quindi Deploy (Distribuisci).

  7. Scegli Test (Esegui test). Se viene visualizzata la finestra Configure test event (Configura evento test), digita un nome nel campo Nome evento), quindi scegli Create (Crea).

  8. Espandi la casella Test e seleziona il nome dell'evento appena creato e quindi scegli Test.

  9. Apparirà la scheda Risultati dell'esecuzione, appena sotto e a destra; assicurati che venga visualizzato Status: Succeeded. Se l'esecuzione della funzione non è riuscita, procedi nel seguente modo:

    • Verifica che il ruolo IAM creato in Fase 1: creazione di un ruolo IAM contenga le policy corrette.

    • Verifica che il codice nella funzione Lambda non contenga errori. L'editor di codice Lambda evidenzia automaticamente gli errori di sintassi e altri potenziali problemi.

Fase 3: riabilitazione dell'invio di e-mail per l'account

Un effetto secondario del test della funzione Lambda in Fase 2: creazione della funzione Lambda è la sospensione dell'invio di e-mail per l'account Amazon SES. Nella maggior parte dei casi, è preferibile non sospendere l'invio per l'account finché non viene attivato l'allarme CloudWatch.

Le procedure in questa sezione consentono di riabilitare l'invio di e-mail per l'account Amazon SES. Per completare questa procedura, è necessario installare e configurare AWS Command Line Interface. Per ulteriori informazioni, consultare la Guida per l'utente di AWS Command Line Interface.

Riabilitazione dell'invio di e-mail
  1. Nella riga di comando, digita il comando seguente per riabilitare l'invio di e-mail per tuo account. Sostituisci sending_region con il nome della regione in cui desideri abilitare nuovamente l'invio di e-mail.

    aws ses update-account-sending-enabled --enabled --region sending_region
  2. Nella riga di comando, digita il comando seguente per controllare lo stato dell'invio di e-mail per il tuo account:

    aws ses get-account-sending-enabled --region sending_region

    Se viene visualizzato l'output seguente, la riabilitazione dell'invio di e-mail per il tuo account è riuscita:

    { "Enabled": true }

Fase 4: creazione di un argomento Amazon SNS e sottoscrizione

Affinché CloudWatch esegua la tua funzione Lambda quando viene attivato un allarme, è prima necessario creare un argomento Amazon SNS e sottoscrivere la funzione Lambda per l'argomento.

Per creare un argomento Amazon SNS e sottoscrivere la funzione Lambda all'argomento
  1. Apri la console Amazon SNS all'indirizzo https://console.aws.amazon.com/sns/v3/home.

  2. Crea un argomento seguendo i passaggi della Guida per gli sviluppatori di Amazon Simple Notification Service.

    1. In Type (Tipo), deve essere selezionata l'opzione Standard (non FIFO).

  3. Effettua la sottoscrizione all'argomento seguendo i passaggi della Guida per gli sviluppatori di Amazon Simple Notification Service.

    1. Per Protocol (Protocollo) scegliere AWS Lambda.

    2. Per Endpoint scegli la funzione Lambda creata in Fase 2: creazione della funzione Lambda.

Fase 5: creazione di un allarme CloudWatch

In questa sezione sono incluse le procedure per la creazione di un allarme in CloudWatch che viene attivato quando un parametro raggiunge una determinata soglia. Quando l'allarme viene attivato, recapita una notifica all'argomento Amazon SNS creato in Fase 4: creazione di un argomento Amazon SNS e sottoscrizione, che quindi esegue la funzione Lambda creata in Fase 2: creazione della funzione Lambda.

Creazione di un allarme CloudWatch
  1. Apri la console CloudWatch all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Usa il selettore della Regione per scegliere la Regione in cui desideri che l'invio di e-mail venga sospeso automaticamente.

  3. Nel pannello di navigazione, seleziona Alarms (Allarmi).

  4. Scegli Create Alarm (Crea allarme).

  5. Nella finestra Create Alarm (Crea allarme), in SES Metrics (Parametri SES), scegli Account Metrics (Parametri account).

  6. In Metric Name (Nome parametro) scegli una delle opzioni seguenti:

    • Reputation.BounceRate: scegli questo parametro se desideri sospendere l'invio di e-mail per il tuo account quando la frequenza globale di mancato recapito permanente per l'account supera una soglia definita.

    • Reputation.ComplaintRate: scegli questo parametro se desideri sospendere l'invio di e-mail per il tuo account quando la frequenza globale di reclami per l'account supera una soglia definita.

    Seleziona Successivo.

  7. Completa questa procedura:

    • In Alarm Threshold (Soglia allarme) digita un nome per l'allarme in Name (Nome).

    • In Whenever: Reputation.BounceRate (Ogni volta che: Reputation.BounceRate) o Whenever: Reputation.ComplaintRate (Ogni volta che: Reputation.ComplaintRate), specifica la soglia che causa l'attivazione dell'allarme.

      Nota

      Il tuo account viene messo automaticamente in fase di verifica se la frequenza dei mancati recapiti supera il 10% o se la frequenza dei reclami supera lo 0,5%. Quando specifichi una percentuale di mancati recapiti o reclami che comporta l'attivazione dell'allarme CloudWatch, ti consigliamo di usare valori decisamente inferiori a queste percentuali, per evitare che l'account venga messo in fase di verifica.

    • In Actions (Operazioni), in Whenever this alarm (Ogni volta che questo allarme), scegli State is ALARM (Lo stato è ALLARME). Per Send notification to (Invia notifica a) scegli l'argomento Amazon SNS creato in Fase 4: creazione di un argomento Amazon SNS e sottoscrizione.

    Scegli Create Alarm (Crea allarme).

Fase 6: verifica della soluzione

A questo punto, puoi testare l'allarme per verificare che esegua la funzione Lambda quando passa nello stato ALARM. Puoi usare l'operazione API SetAlarmState per modificare temporaneamente lo stato dell'allarme.

Le procedure di questa sezione sono facoltative, ma ti consigliamo di completarle per assicurarti che l'intera soluzione sia configurata correttamente.

  1. Nella riga di comando, digita il comando seguente per controllare lo stato dell'invio di e-mail per il tuo account. Sostituisci region con il nome della regione.

    aws ses get-account-sending-enabled --region region

    Se l'invio è abilitato per il tuo account, verrà visualizzato l'output seguente:

    { "Enabled": true }
  2. Nella riga di comando, digita il comando seguente per modificare temporaneamente lo stato di allarme in ALARM: aws cloudwatch set-alarm-state --alarm-name MyAlarm --state-value ALARM --state-reason "Testing execution of Lambda function" --region region

    Nel comando precedente, sostituisci MyAlarm con il nome dell'allarme creato in Fase 5: creazione di un allarme CloudWatch e sostituisci region con la regione in cui desideri sospendere automaticamente l'invio di e-mail.

    Nota

    Quando esegui questo comando, lo stato dell'allarme passa da OK a ALARM e torna a OK entro pochi secondi. Puoi vedere queste modifiche dello stato nella scheda History (Cronologia) dell'allarme nella console CloudWatch oppure con l'operazione DescribeAlarmHistory.

  3. Nella riga di comando, digita il comando seguente per controllare lo stato dell'invio di e-mail per il tuo account.

    aws ses get-account-sending-enabled --region region

    Se la funzione Lambda viene eseguita correttamente, viene visualizzato il seguente output:

    { "Enabled": false }
  4. Completa le fasi in Fase 3: riabilitazione dell'invio di e-mail per l'account per riabilitare l'invio di e-mail per il tuo account.