Automatización de AWS Glue con CloudWatch Events
Puede utilizar Eventos de Amazon CloudWatch para automatizar los servicios de AWS y responder de forma automática a eventos del sistema, como problemas de disponibilidad de aplicaciones o cambios de recursos. Los eventos de los servicios de AWS se envían a CloudWatch Events casi en tiempo real. Puede crear reglas sencillas para indicar qué eventos le resultan de interés, así como qué acciones automatizadas se van a realizar cuando un evento cumple una de las reglas. Entre las acciones que se pueden activar automáticamente se incluyen las siguientes:
-
Invocar una función de AWS Lambda
-
Invocar Ejecutar comando de Amazon EC2
-
Desviar el evento a Amazon Kinesis Data Streams
-
Activar una máquina de estado de AWS Step Functions
-
Notificar un tema de Amazon SNS o una cola de Amazon SQS
Algunos ejemplos del uso de CloudWatch Events con AWS Glue incluyen los siguientes:
-
Activar una función de Lambda cuando se realiza correctamente un trabajo de ETL
-
Notificar un tema de Amazon SNS cuando un trabajo de ETL produce error
Los siguientes eventos de CloudWatch Events son generados por AWS Glue.
-
Se generan eventos de
"detail-type":"Glue Job State Change"
paraSUCCEEDED
,FAILED
,TIMEOUT
ySTOPPED
. -
Se generan eventos de
"detail-type":"Glue Job Run Status"
para ejecuciones de trabajosRUNNING
,STARTING
oSTOPPING
cuando superan el umbral de notificación de retraso de flujo de trabajo. Debe configurar la propiedad de umbral de notificación de retraso en el trabajo para recibir estos eventos.Solo se genera un evento por estado de ejecución de un trabajo cuando se supera el umbral de notificación de retraso en el trabajo.
-
Se generan eventos de
"detail-type":"Glue Crawler State Change"
paraStarted
,Succeeded
yFailed
. -
Se generan eventos de
"detail-type":"Glue Data Catalog Database State Change"
paraCreateDatabase
,DeleteDatabase
,CreateTable
,DeleteTable
yBatchDeleteTable
. Por ejemplo, si se crea o se elimina una tabla, se envía una notificación a CloudWatch Events. Tenga en cuenta que no puede escribir un programa que dependa del orden o de la existencia de eventos de notificación, ya que pueden no estar ordenados o faltar. Los eventos se emiten en la medida de lo posible. En los detalles de la notificación:typeOfChange
contiene el nombre de una operación API.databaseName
contiene el nombre de la base de datos afectada.changedTables
contiene hasta 100 nombres de tablas afectadas por notificación. Cuando los nombres de las tablas son largos, podrían crearse varias notificaciones.
-
Se generan eventos de
"detail-type":"Glue Data Catalog Table State Change"
paraUpdateTable
,CreatePartition
,BatchCreatePartition
,UpdatePartition
,DeletePartition
,BatchUpdatePartition
yBatchDeletePartition
. Por ejemplo, si se actualiza una tabla o una partición, se envía una notificación a CloudWatch Events. Tenga en cuenta que no puede escribir un programa que dependa del orden o de la existencia de eventos de notificación, ya que pueden no estar ordenados o faltar. Los eventos se emiten en la medida de lo posible. En los detalles de la notificación:typeOfChange
contiene el nombre de una operación API.databaseName
contiene el nombre de la base de datos que contiene los recursos afectados.tableName
contiene el nombre de la tabla afectada.changedPartitions
especifica hasta 100 particiones afectadas en una notificación. Cuando los nombres de las particiones son largos, podrían crearse varias notificaciones.Por ejemplo, si hay dos claves de partición,
Year
yMonth
,"2018,01", "2018,02"
modifica la partición donde"Year=2018" and "Month=01"
y la partición donde"Year=2018" and "Month=02"
.{ "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Glue Data Catalog Table State Change", "source":"aws.glue", "account":"123456789012", "time":"2017-09-07T18:57:21Z", "region":"us-west-2", "resources":["arn:aws:glue:us-west-2:123456789012:database/default/foo"], "detail":{ "changedPartitions": [ "2018,01", "2018,02" ], "databaseName": "default", "tableName": "foo", "typeOfChange": "BatchCreatePartition" } }
Para obtener más información, consulte la Guía del usuario de los Eventos de Amazon CloudWatch. Para eventos específicos de AWS Glue consulte Eventos de AWS Glue.