Automatizando o AWS Glue com o CloudWatch Events
Você pode usar o Amazon CloudWatch Events para automatizar seus produtos da AWS e responder automaticamente a eventos do sistema, como problemas de disponibilidade de aplicação ou alterações de recursos. Os eventos dos produtos da AWS são entregues ao CloudWatch Events quase em tempo real. Você pode escrever regras simples para indicar quais eventos são do seu interesse, e as ações automatizadas a serem tomadas quando um evento corresponder à regra. As ações que podem ser automaticamente acionadas incluem as seguintes:
-
Invocar uma função do AWS Lambda
-
Invocar o comando de execução do Amazon EC2
-
Transmitir o evento Amazon Kinesis Data Streams
-
Ativação de uma máquina de estado do AWS Step Functions
-
Notificar um tópico do Amazon SNS ou uma fila do Amazon SQS
Alguns exemplos de uso do CloudWatch Events com o AWS Glue incluem os seguintes:
-
Ativar uma função Lambda quando um trabalho de ETL é executado com sucesso
-
Notificar um tópico do Amazon SNS quando um trabalho de ETL apresentar falha
Os seguintes CloudWatch Events são gerados pelo AWS Glue.
-
Os eventos de
"detail-type":"Glue Job State Change"
são gerados paraSUCCEEDED
,FAILED
,TIMEOUT
eSTOPPED
. -
Os eventos de
"detail-type":"Glue Job Run Status"
são gerados para execuções de trabalho deRUNNING
e deSTARTING
STOPPING
, quando elas excedem o limite da notificação de atraso do trabalho. Você deve definir a propriedade de limite de notificação de atraso de trabalho para receber esses eventos.Quando o limite de notificação de atraso de trabalho é excedido, apenas um único evento é gerado por status de execução de trabalho.
-
Os eventos de
"detail-type":"Glue Crawler State Change"
são gerados porStarted
,Succeeded
eFailed
. -
Os eventos de
"detail-type":"Glue Data Catalog Database State Change"
são gerados paraCreateDatabase
,DeleteDatabase
,CreateTable
,DeleteTable
eBatchDeleteTable
. Por exemplo, se uma tabela for criada ou excluída, será enviada uma notificação ao CloudWatch Events. Observe que não é possível escrever um programa que depende da ordem ou da existência de eventos de notificação, já que eles podem estar fora de sequência ou ausentes. Os eventos são emitidos com base no melhor esforço. Nos detalhes da notificação:O
typeOfChange
contém o nome da operação da API.O
databaseName
contém o nome do banco de dados afetado.O
changedTables
contém até 100 nomes de tabelas afetadas por notificação. Quando os nomes das tabelas forem muito longos, poderão ser criadas várias notificações.
-
Os eventos de
"detail-type":"Glue Data Catalog Table State Change"
são gerados paraUpdateTable
,CreatePartition
,BatchCreatePartition
,UpdatePartition
,DeletePartition
,BatchUpdatePartition
eBatchDeletePartition
. Por exemplo, se uma tabela ou partição for atualizada, será enviada uma notificação ao CloudWatch Events. Observe que não é possível escrever um programa que depende da ordem ou da existência de eventos de notificação, já que eles podem estar fora de sequência ou ausentes. Os eventos são emitidos com base no melhor esforço. Nos detalhes da notificação:O
typeOfChange
contém o nome da operação da API.O
databaseName
contém o nome do banco de dados que contém os recursos afetados.O
tableName
contém o nome da tabela afetada.O
changedPartitions
especifica até 100 partições afetadas em uma notificação. Quando os nomes das partições forem muito longos, poderão ser criadas várias notificações.Por exemplo, se houver duas chaves de partição,
Year
eMonth
,"2018,01", "2018,02"
modificará a partição em que"Year=2018" and "Month=01"
e a partição em que"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 obter mais informações, consulte o Manual do usuário do Amazon CloudWatch Events. Para eventos específicos do AWS Glue, consulte Eventos do AWS Glue.