¿Cómo puedo recibir notificaciones de Amazon SNS cuando mi trabajo de AWS Glue cambie de estado?

4 minutos de lectura
0

Quiero recibir una notificación cuando un trabajo de extracción, transformación y carga (ETL) de AWS Glue se realice correctamente, falle, se agote el tiempo de espera o se detenga.

Breve descripción

Para recibir un aviso cuando su trabajo de AWS Glue cambie de estado, haga lo siguiente:

  1. Cree un tema de Amazon Simple Notification Service (Amazon SNS). El tema de SNS envía mensajes a los puntos de conexión o clientes que se suscriben.
  2. Cree una regla de eventos de Amazon EventBridge para los cambios de estado de los trabajos de AWS Glue que desee supervisar.

Solución

Nota: Cuando su trabajo cambia de estado, AWS Glue produce eventos. Para obtener más información, consulte AWS Glue job run statuses.

Crear un tema de Amazon SNS y suscribirse a él

1.    Abra la consola de Amazon SNS.

2.    En el panel de navegación, elija Temas.

3.    Elija Crear un tema.

4.    En Tipo, elija Estándar.

5.    Escriba un nombre de tema. El campo Nombre para mostrar es opcional.

6.    Elija Crear un tema.

7.    En el panel de navegación, seleccione Suscripciones.

8.    Elija Crear una suscripción.

9.     Para obtener más información, complete los siguientes campos:

        En ARN del tema, elija el ARN del tema que creó.

        En Protocolo, elija Correo electrónico.

        En Punto de conexión, introduzca la dirección de correo electrónico a la que desea enviar las notificaciones.

10.    Elija Crear una suscripción.

En el correo electrónico de confirmación de suscripción que reciba, elija Confirmar suscripción. Anote el tema de SNS que ha creado. Utilice este tema al crear la regla de EventBridge.

Crear una regla de eventos de EventBridge

1.    Abra la consola de EventBridge.

2.    En el panel de navegación, elija Reglas y, a continuación, elija Crear regla.

3.    Introduzca un nombre para la regla. Conserve las configuraciones predeterminadas de Bus de eventos y Tipo de regla y, a continuación, seleccione Siguiente.

4.    En Método de creación, elija Patrón personalizado (editor JSON).

5.    En el cuadro Patrón de eventos, introduzca el siguiente patrón de eventos de ejemplo para capturar los eventos de cambio de estado de AWS Glue:

{  
    "detail-type": [  
        "Glue Job State Change",  
        "Glue Job Run Status"  
    ],  
    "source": [  
        "aws.glue"  
    ],  
    "detail": {  
        "state": [  
            "FAILED",  
            "SUCCEEDED",  
            "TIMEOUT",  
            "STOPPED",  
            "RUNNING",  
            "STARTING",  
            "STOPPING"  
        ]  
    }  
}

Consejo: Si no desea recibir un aviso de cambios de estado específicos, elimine el parámetro correspondiente, como RUNNING, del patrón de eventos.

6.    Elija Siguiente.

7.    Para Tipos de destino, elija Servicio de AWS.

8.    En Seleccione un destino, elija Tema de SNS.

9.    En Tema, elija el nombre del tema de SNS que creó.

10.    Elija Siguiente

11.    (Opcional) Introduzca etiquetas para la regla y, a continuación, seleccione Siguiente.

12.    Elija Crear regla.

Para obtener más información, consulte Creating event patterns y Automating AWS Glue with Amazon CloudWatch Events.

Probar la configuración

Para probar la regla del evento y el tema de SNS, ejecute un trabajo de AWS Glue. Compruebe que recibe una notificación por correo electrónico cuando el trabajo cambie al estado que especificó en la regla de eventos.

Importante: Si la regla no se está ejecutando, asegúrese de que el patrón de eventos sea correcto.

Ejemplo

Puede capturar los eventos de ejecución fallida de un trabajo y enviarlos a un tema de SNS. El siguiente es un ejemplo de un evento de un trabajo de Glue fallido:

{  
    "version": "0",  
    "id": "abcdef01-1234-5678-9abc-def012345678",  
    "detail-type": "Glue Job State Change",  
    "source": "aws.glue",  
    "account": "123456789012",  
    "time": "2017-09-07T06:02:03Z",  
    "region": "us-west-2",  
    "resources": [],  
    "detail": {  
        "jobName": "MyJob",  
        "severity": "ERROR",  
        "state": "FAILED",  
        "jobRunId": "jr_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",  
        "message": "JobName:MyJob and JobRunId:jr_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef failed to run with exception Role arn:aws:iam::123456789012:role/Glue_Role should be given assume role permissions for Glue Service."  
    }  
}

Para analizar todos los trabajos fallidos de AWS Glue, complete los pasos anteriores.

Información relacionada

How can I use an AWS Lambda function to receive SNS alerts when an AWS Glue job fails a retry?

¿Cómo puedo iniciar automáticamente un trabajo de AWS Glue cuando finalice la ejecución de un rastreador?

Events from AWS services

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 6 meses