Poner en pausa automáticamente el envío de correo electrónico en toda su cuenta de Amazon SES - Amazon Simple Email Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Poner en pausa automáticamente el envío de correo electrónico en toda su cuenta de Amazon SES

Los procedimientos de esta sección explican los pasos para configurar Amazon SES, Amazon SNS, Amazon y AWS Lambda pausar automáticamente el envío de correo electrónico para su cuenta de Amazon SES en una sola AWS región. CloudWatch Si envía correo electrónico desde varias regiones, repita los procedimientos de esta sección para cada región en la que desee implementar esta solución.

Parte 1: crear un rol de IAM

El primer paso para configurar la suspensión automática del envío de correo electrónico es crear un rol de IAM que pueda ejecutar la operación de la API UpdateAccountSendingEnabled.

Cómo crear el rol de IAM
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles en el panel de navegación.

  3. Elija Crear rol.

  4. En la página Select trusted entity (Seleccionar entidad de confianza), elija AWS service para el Trusted entity type (Tipo de entidad de confianza).

  5. En Use case (Caso de uso), elija Lambda y, a continuación, elija Next (Siguiente).

  6. En la página Add permissions (Agregar permisos), elija las siguientes políticas:

    • AWSLambdaBasicExecutionRole

    • Amazon SES FullAccess

    sugerencia

    ‎Utilice el cuadro de búsqueda en Permission policies (Políticas de permisos) para localizar rápidamente estas políticas, pero tenga en cuenta que después de buscar y seleccionar la primera política, debe elegir Clear filters (Borrar filtros) antes de buscar y seleccionar la segunda política.

    A continuación, elija Next.

  7. En la página Name, review, and create (Nombre, revisión y crear), en Role details (Detalles de rol), ingrese un nombre con significado para la política en el campo Role name (Nombre de rol).

  8. Compruebe que las dos políticas que ha seleccionado aparecen en la tabla Permissions policy summary (Resumen de la política de permisos) y, a continuación, elija ‎Create role (Crear rol).

Parte 2: crear la función de Lambda

Después de crear un rol de IAM, puede crear la función de Lambda que suspende el envío de correo electrónico para la cuenta.

Para crear la función de Lambda
  1. Abra la AWS Lambda consola en https://console.aws.amazon.com/lambda/.

  2. Utilice el selector de regiones para elegir la región en la que desea implementar esta función de Lambda.

    nota

    Esta función solo detiene el envío de correos electrónicos en la AWS región que haya seleccionado en este paso. Si envía correos electrónicos desde más de una región, repita los procedimientos de esta sección para cada región en la que desee suspender automáticamente el envío de correos electrónicos.

  3. Elija Crear función.

  4. En Create function (Crear función), elija Author from scratch (Autor desde cero).

  5. En Basic information (Información básica), realice los siguientes pasos:

    • En Function name (Nombre de la función), escriba un nombre para la función Lambda.

    • Para Tiempo de ejecución, elija Node.js 18x (o la versión que se ofrece actualmente en la lista de selección).

    • ‎Para Architecture (Arquitectura), conserve el valor predeterminado preseleccionado, x86_64.

    • En permisos expanda Change default execution role (Cambiar rol de ejecución predeterminado) y elija Use an existing role (Utilizar un rol existente).

    • Haga clic dentro del cuadro de la lista Existing role (Rol existente) y elija el rol de IAM que creó en Parte 1: crear un rol de IAM.

    A continuación, seleccione Crear función.

  6. En Code source (Código fuente), en el editor de código, pegue el siguiente código:

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

    A continuación, elija Implementar.

  7. Seleccione Probar. Si aparece la ventana Configure test event (Configurar prueba de evento), ingrese un nombre en el campo Event name (Nombre de evento) y, a continuación, elija Save (Guardar).

  8. Expanda el contenedor de Test (Pruebas) y seleccione el nombre del evento que acaba de crear y, a continuación, elija Test (Pruebas).

  9. La pestaña de Execution results (Resultados de la ejecución) aparecerá, justo debajo de ella y a la derecha, asegúrese de que se muestre Status: Succeeded. Si la función no se pudo ejecutar, haga lo siguiente:

    • Compruebe que el rol de IAM que creó en Parte 1: crear un rol de IAM contiene las políticas correctas.

    • Compruebe que el código de la función de Lambda no contiene ningún error. El editor de código de Lambda resalta automáticamente los errores de sintaxis y otros posibles problemas.

Parte 3: volver a habilitar el envío de correos electrónicos en su cuenta

Un efecto secundario de probar la función de Lambda en Parte 2: crear la función de Lambda es que el envío de correo electrónico de su cuenta de Amazon SES se suspende. En la mayoría de los casos, no querrás pausar el envío a tu cuenta hasta que se active la CloudWatch alarma.

Los procedimientos de esta sección vuelven a habilitar el envío de correo electrónico en su cuenta de Amazon SES. Para completar estos procedimientos, debe instalar y configurar la AWS Command Line Interface. Para obtener más información, consulte la Guía del usuario de AWS Command Line Interface.

Para volver a habilitar el envío de correo electrónico
  1. En la línea de comandos, escriba el siguiente comando para volver a habilitar el envío de correos electrónicos para su cuenta. Reemplace sending_region por el nombre de la región en la que desea volver a habilitar el envío de correos electrónicos.

    aws ses update-account-sending-enabled --enabled --region sending_region
  2. En la línea de comandos, escriba el siguiente comando para verificar el estado del envío de correos electrónicos para su cuenta:

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

    Si ve el siguiente resultado, entonces ha vuelto a habilitar correctamente el envío de correos electrónicos en su cuenta:

    { "Enabled": true }

Parte 4: Crear un tema de Amazon SNS y una suscripción

CloudWatch Para ejecutar la función Lambda cuando se active una alarma, primero debe crear un tema de Amazon SNS y suscribir la función Lambda a él.

Para crear el tema de Amazon SNS y suscribirle la función de Lambda
  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. Cree un tema siguiendo los pasos de la Guía para desarrolladores de Amazon Simple Notification Service.

    1. El Type (Tipo) debe ser Standard (Estándar) (no FIFO).

  3. Suscríbase al tema siguiendo los pasos de la Guía para desarrolladores de Amazon Simple Notification Service.

    1. En Protocol (Protocolo), elija AWS Lambda.

    2. En Endpoint (Punto de enlace), elija la función de Lambda que creó en Parte 2: crear la función de Lambda.

Parte 5: Crear una alarma de CloudWatch

Esta sección contiene los procedimientos para crear una alarma CloudWatch que se active cuando una métrica alcance un determinado umbral. Cuando se desencadena la alarma, se envía una notificación al tema de Amazon SNS que creó en Parte 4: Crear un tema de Amazon SNS y una suscripción, que a su vez ejecuta la función de Lambda que creó en Parte 2: crear la función de Lambda.

Para crear una CloudWatch alarma
  1. Abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/.

  2. Utilice el selector de regiones para elegir la región en la que desea suspender automáticamente el envío de correos electrónicos.

  3. En el panel de navegación, elija Alarmas.

  4. Elija Create Alarm (Crear alarma).

  5. En la ventana Create Alarm (Crear alarma), en SES Metrics (Métricas de SES), elija Account Metrics (Métricas de la cuenta).

  6. En Metric Name (Nombre de métrica), elija una de las siguientes opciones:

    • Reputación. BounceRate— Elige esta métrica si quieres pausar el envío de correos electrónicos para tu cuenta cuando la tasa general de rebote fijo de tu cuenta supere el umbral que tú definas.

    • Reputación. ComplaintRate— Elige esta métrica si quieres pausar el envío de correos electrónicos para tu cuenta cuando la tasa general de quejas de tu cuenta supere el umbral que tú definas.

    Seleccione Next (Siguiente).

  7. Realice los siguientes pasos:

    • En Alarm Threshold (Umbral de alarma), para Name (Nombre), escriba un nombre para la alarma.

    • En Whenever: Reputación. BounceRateO cuando sea: Reputación. ComplaintRate, especifique el umbral que hace que se active la alarma.

      nota

      Tu cuenta se revisará automáticamente si tu porcentaje de rebotes supera el 5% o si tu porcentaje de quejas supera el 0,1%. Cuando especifiques el porcentaje de rechazos o quejas que hace que se active la CloudWatch alarma, te recomendamos que utilices valores que estén por debajo de estos porcentajes para evitar que tu cuenta sea objeto de revisión.

    • En Acciones, en Siempre que esta alarma, seleccione El estado es ALARMA. En Send notification to (Enviar notificación a), elija el tema de Amazon SNS que creó en Parte 4: Crear un tema de Amazon SNS y una suscripción.

    Seleccione Crear alarma.

Parte 6: probar la solución

Ahora puede probar la alarma para asegurarse de que se ejecuta la función de Lambda cuando entra en el estado ALARM. Puede utilizar la operación de la API SetAlarmState para cambiar temporalmente el estado de la alarma.

Los procedimientos de esta sección son opcionales, pero le recomendamos que los realice para asegurarse de que toda la solución está configurada correctamente.

  1. En la línea de comandos, escriba el siguiente comando para verificar el estado del envío de correos electrónicos para su cuenta. Reemplace region por el nombre de la región.

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

    Si el envío está activado para su cuenta, puede ver el siguiente resultado:

    { "Enabled": true }
  2. En la línea de comandos, escriba el comando siguiente para cambiar temporalmente el estado de la alarma a ALARM: aws cloudwatch set-alarm-state --alarm-name MyAlarm --state-value ALARM --state-reason "Testing execution of Lambda function" --region region

    Sustituya MyAlarmel comando anterior por el nombre de la alarma en Parte 5: Crear una alarma de CloudWatch la que creó y sustituya la región por la región en la que desea pausar automáticamente el envío de correo electrónico.

    nota

    Cuando ejecute este comando, el estado de la alarma pasa de OK a ALARM y luego otra vez a OK al cabo de unos segundos. Puede ver estos cambios de estado en la pestaña Historial de la alarma en la CloudWatch consola o mediante la DescribeAlarmHistoryoperación.

  3. En la línea de comandos, escriba el siguiente comando para verificar el estado del envío de correos electrónicos para su cuenta.

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

    Si la función de Lambda se ha ejecutado correctamente, se muestra el resultado siguiente:

    { "Enabled": false }
  4. Realice los pasos de Parte 3: volver a habilitar el envío de correos electrónicos en su cuenta para volver a habilitar el envío de correos electrónicos en su cuenta.