Como posso receber notificações do Amazon SNS para quando meu trabalho do AWS Glue mudar de estado?

4 minuto de leitura
0

Quero receber um aviso quando um trabalho de extração, transformação e carregamento (ETL) do AWS Glue obtiver êxito, falhar, expirar ou parar.

Breve descrição

Para receber um aviso quando seu trabalho do AWS Glue mudar de status, conclua as seguintes etapas:

  1. Crie um tópico do Amazon Simple Notification Service (Amazon SNS). O tópico do SNS envia mensagens para endpoints ou clientes assinantes.
  2. Crie uma regra de evento do Amazon EventBridge para as alterações de estado de trabalhos do AWS Glue que você deseja monitorar.

Resolução

Observação: quando seu trabalho muda de status, o AWS Glue produz eventos. Para obter mais informações, consulte AWS Glue job run statuses.

Crie e assine um tópico do Amazon SNS

1.    Abra o console do Amazon SNS.

2.    No painel de navegação, selecione Tópicos.

3.    Selecione Criar tópico.

4.    Em Tipo, selecione Padrão.

5.    Insira o Nome do tópico. O campo Nome de exibição é opcional.

6.    Selecione Criar tópico.

7.    No painel de navegação, selecione Assinaturas.

8.    Selecione Criar assinatura.

9.     Em Detalhes, preencha os seguintes campos:

        Em ARN do tópico, selecione o ARN do tópico que você criou.

        Em Protocolo, selecione E-mail.

        Em Endpoint, insira o endereço de e-mail para o qual você deseja enviar notificações.

10.    Selecione Criar assinatura.

No e-mail de confirmação da assinatura recebido por você, selecione Confirmar assinatura. Anote o tópico do SNS criado. Use este tópico ao criar a regra do EventBridge.

Crie uma regra de evento do EventBridge

1.    Abra o console do EventBridge.

2.    No painel de navegação, selecione Regras, em seguida, selecione Criar regra.

3.    Insira um Nome para sua regra. Mantenha as configurações padrão de Barramento de eventos e Tipo de regra e, em seguida, selecione Avançar.

4.    Em Método de criação, Selecione Padrão personalizado (editor JSON).

5.    Na caixa Padrão do evento, insira o seguinte exemplo de padrão de evento para capturar eventos de alteração de estado do AWS Glue:

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

Dica: se você não quiser receber um aviso sobre alterações de status específicas, remova o parâmetro correspondente, como RUNNING, do padrão do evento.

6.    Escolha Avançar.

7.    Para Tipos de destino, selecione o serviço da AWS.

8.    Em Selecionar um destino, selecione Tópico do SNS.

9.    Em Tópico, selecione o nome do tópico do SNS que você criou.

10.    Selecione Avançar

11.    (Opcional) Insira tags para a regra e selecione Avançar.

12.    Selecione Criar regra.

Para obter mais informações, consulte Creating event patterns e Automating AWS Glue with Amazon CloudWatch Events.

Teste sua configuração

Para testar a regra do evento e o tópico do SNS, execute um trabalho do AWS Glue. Depois que o trabalho mudar para o estado especificado na regra do evento, confirme se você recebeu uma notificação por e-mail.

Importante: se a regra não estiver em execução, verifique se o padrão do evento está correto.

Exemplo

Você pode capturar eventos de Falha na execução do trabalho e enviar o evento para um tópico do SNS. Veja a seguir um exemplo de evento de falha em trabalho do Glue:

{  
    "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 analisar todos os trabalhos com falha do AWS Glue, conclua as etapas anteriores.

Informações relacionadas

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

Como posso iniciar automaticamente um trabalho do AWS Glue quando a execução de um crawler for concluída?

Events from AWS services

AWS OFICIAL
AWS OFICIALAtualizada há 6 meses