Suspensión automática del envío de correos electrónicos para un conjunto de configuración - 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.

Suspensión automática del envío de correos electrónicos para un conjunto de configuración

Puedes configurar Amazon SES para que exporte métricas de reputación específicas de los correos electrónicos que se envían mediante una configuración específica establecida a Amazon CloudWatch. A continuación, puedes usar estas métricas para crear CloudWatch alarmas específicas para estos conjuntos de configuraciones. Cuando estas alarmas superen determinados umbrales, puedes pausar automáticamente el envío de correos electrónicos que utilicen los conjuntos de configuración especificados, sin que ello afecte a las capacidades generales de envío de correo electrónico de tu cuenta de AmazonSES.

nota

La solución que se describe en esta sección detiene el envío de correos electrónicos para un conjunto de configuraciones específico en una sola región. AWS 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: habilitar los informes de métricas de reputación de un conjunto de configuración

Antes de que puedas configurar Amazon SES para que detenga automáticamente el envío de correo electrónico de un conjunto de configuraciones, primero debes habilitar la exportación de las métricas de reputación del conjunto de configuraciones.

Para habilitar la exportación de métricas de rebotes y reclamaciones para el conjunto de configuración, realice los pasos de Visualización y exportación de métricas de reputación.

Parte 2: Crear un rol de IAM

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

Para 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 Seleccionar tipo de entidad de confianza, seleccione Servicio de AWS .

  5. En Choose the service that will use this role (Elegir el servicio que usará este rol), elija Lambda. Elija Next: Permissions (Siguiente: permisos).

  6. En la página Attach permissions policies (Adjuntar políticas de permisos), elija las siguientes políticas:

    • AWS Lambda BasicExecutionRole

    • Un mazonSESFull acceso (le recomendamos que utilice un rol personalizado adaptado a sus necesidades, que incluya permisos para realizar llamadas) UpdateConfigurationSetSendingEnabled.

    sugerencia

    Utilice el cuadro de búsqueda de la parte superior de la lista de políticas para buscar rápidamente estas políticas.

    Elija Next: Review (Siguiente: revisar).

  7. En la página Review (Revisar), en Name (Nombre), escriba un nombre para el rol. Elija Crear rol.

Parte 3: crear la función de Lambda

Tras crear un IAM rol, puede crear la función Lambda que pausa el envío de correo electrónico para el conjunto de configuraciones.

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 correo electrónico para los conjuntos de configuración de la región de AWS que seleccione 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. Seleccione Crear función.

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

  5. En Author from scratch (Autor desde cero), haga lo siguiente:

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

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

    • En Role (Rol), elija Choose an existing role (Elegir un rol existente).

    • En Existing role (Rol existente), elija el rol de IAM que ha creado en Parte 2: Crear un rol de IAM.

    Seleccione Crear función.

  6. En Function code (Código de función), en el editor de código, pegue el código siguiente:

    'use strict'; import { SES } from 'aws-sdk'; const ses = new SES(); const configSet = 'CONFIG_SET_NAME_HERE'; const params = { ConfigurationSetName: configSet, Enabled: false }; export const handler = async (event) => { try { const data = await ses.updateConfigurationSetSendingEnabled(params).promise(); console.log('Configuration Set Update:', data); return { statusCode: 200, body: JSON.stringify({ message: 'Successfully paused email sending for configuration set.', data }), }; } catch (err) { console.error('Error:', err.message); return { statusCode: 500, body: JSON.stringify({ message: 'Failed to pause email sending for configuration set.', error: err.message }), }; } };

    Sustituya ConfigSet el código anterior por el nombre del conjunto de configuraciones. Seleccione Guardar.

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

  8. Asegúrese de que en la barra de notificación de la parte superior de la página se indica Execution result: succeeded. Si la función no se pudo ejecutar, haga lo siguiente:

    • Compruebe que el rol de IAM que ha creado en Parte 2: 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 4: volver a habilitar el envío de correo electrónico para el conjunto de configuración

Un efecto secundario de probar la función de Lambda en Parte 3: crear la función de Lambda es que el envío de correo electrónico para el conjunto de configuración se suspende. En la mayoría de los casos, no querrá pausar el envío del conjunto de configuración hasta que se active la CloudWatch alarma.

Los procedimientos de esta sección vuelven a habilitar el envío de correos electrónicos para su conjunto de configuración. Para completar estos procedimientos, debe instalar y configurar la AWS Command Line Interface. Para obtener más información, consulte la AWS Command Line Interface Guía del usuario de .

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 el conjunto de configuración:

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

    En el comando anterior, ConfigSet sustitúyalo por el nombre del conjunto de configuraciones para el que deseas pausar el envío del correo electrónico.

  2. En la línea de comandos, escriba el siguiente comando para asegurarse de que el envío de correos electrónicos está habilitado:

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

    El comando genera resultados similares al siguiente ejemplo:

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

    Si el valor de SendingEnabled es true, el envío de correos electrónicos para el conjunto de configuración se ha vuelto a habilitar correctamente.

Parte 5: Crear un SNS tema de Amazon

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

Para crear el SNS tema de Amazon
  1. Abre la SNS consola de Amazon en la https://console.aws.amazon.com/sns/versión 3/home.

  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 Topics (Temas).

  4. Elija Create new topic (Crear nuevo tema).

  5. En la ventana Create new topic (Crear nuevo tema), para Topic name (Nombre del tema), escriba un nombre para el tema. También puede incluir un nombre más descriptivo en el campo Display name (Mostrar nombre).

    Elija Create new topic (Crear nuevo nombre).

  6. En la lista de temas, active la casilla situada junto al tema que creó en el paso anterior. En el menú Actions (Acciones), seleccione Subscribe to topic (Suscribirse al tema).

  7. En la ventana Create subscription (Crear suscripción), seleccione estas opciones:

    • En Protocolo, elija AWS Lambda.

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

    • En Version or alias (Versión o alias), elija default (predeterminado).

  8. Seleccione Create subscription (Crear suscripción).

Parte 6: Crea una alarma CloudWatch

Esta sección contiene los procedimientos para crear una alarma CloudWatch que se active cuando una métrica alcanza un determinado umbral. Cuando se activa la alarma, envía una notificación al SNS tema de Amazon en el que lo creaste y, a continuaciónParte 5: Crear un SNS tema de Amazon, ejecuta la función Lambda en la que creaste. Parte 3: crear la función de Lambda

Para crear una alarma CloudWatch
  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 de la izquierda, elija Alarms (Alarmas).

  4. Seleccione Crear alarma.

  5. En la ventana Crear alarma, en SESMétricas, elija Configuration Set Metrics.

  6. En la columna ses:configuration-set, busque el conjunto de configuración para el que desea crear una alarma. En Metric Name (Nombre de métrica), elija una de las siguientes opciones:

    • Reputación. BounceRate — Elija esta métrica si desea pausar el envío de correo electrónico para el conjunto de configuraciones cuando la tasa de rebote total del conjunto de configuraciones supere el umbral que usted defina.

    • Reputación. ComplaintRate — Elija esta métrica si desea pausar el envío de correo electrónico para el conjunto de configuraciones cuando la tasa general de quejas del conjunto de configuraciones supere un umbral que usted defina.

    Elija 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

      Si el porcentaje de rebotes general de tu SES cuenta de Amazon supera el 10% o si el porcentaje total de reclamaciones de tu SES cuenta de Amazon supera el 0,5%, tu SES cuenta de Amazon se someterá automáticamente a revisión. Cuando especifiques el porcentaje de rechazos o quejas que hace que se active la CloudWatch alarma, te recomendamos que utilices valores muy por debajo de estos porcentajes para evitar que tu cuenta pase a ser objeto de revisión.

    • En Acciones, en Siempre que haya una alarma, selecciona El estado es ALARM. En Enviar notificación a, elige el SNS tema de Amazon en el que lo creasteParte 5: Crear un SNS tema de Amazon.

    Seleccione Crear alarma.

Parte 7: 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 SetAlarmState operación del CloudWatch API para cambiar temporalmente el estado de la alarma.

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

Para probar la solución
  1. En la línea de comandos, escriba el siguiente comando para comprobar el estado del envío de correos electrónicos para el conjunto de configuración:

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

    Si el envío está habilitado para el conjunto de configuración, se muestra el resultado siguiente:

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

    Si el valor de SendingEnabled es true, el envío de correos electrónicos está habilitado actualmente para el conjunto de configuración.

  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"

    Sustituya MyAlarm el comando anterior por el nombre de la alarma en la que creóParte 6: Crea una alarma CloudWatch .

    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 comprobar el estado del envío de correos electrónicos para el conjunto de configuración:

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

    Si la función de Lambda se ejecutó correctamente, verá un resultado similar al siguiente ejemplo:

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

    Si el valor de SendingEnabled es false, el envío de correo electrónico para el conjunto de configuración se desactiva, lo que indica que la función de Lambda se ha ejecutado correctamente.

  4. Realice los pasos de Parte 4: volver a habilitar el envío de correo electrónico para el conjunto de configuración para volver a habilitar el envío de correos electrónicos para el conjunto de configuración.