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

3 minuto de leitura
0

Quero configurar o AWS Glue para iniciar automaticamente um trabalho quando a execução do crawler for concluída.

Resolução

Você pode usar os gatilhos do AWS Glue para iniciar um trabalho quando a execução do crawler for concluída. No entanto, o console do AWS Glue suporta somente trabalhos e não oferece suporte a crawlers ao trabalhar com gatilhos. Você pode usar a AWS Command Line Interface (AWS CLI) ou a API do AWS Glue para configurar gatilhos para trabalhos e crawlers.

Execute o seguinte comando da AWS CLI para criar um gatilho que possa iniciar um trabalho quando a execução do crawler for concluída:

$ aws glue create-trigger --name testTrigger --type CONDITIONAL --predicate 'Logical=AND,Conditions=[{LogicalOperator=EQUALS,CrawlerName=testCrawler,CrawlState=SUCCEEDED}]' --actions JobName=testJob --start-on-creation

Observação: se você receber erros ao executar comandos da AWS CLI, verifique se está usando a versão mais recente da AWS CLI.

Você também pode criar um gatilho usando o SDK para Python, o boto3:

import boto3

client = boto3.client("glue")
response = client.create_trigger(
    Name="testTrigger",
    Type="CONDITIONAL",
    Predicate={
        "Logical": "AND",
        "Conditions": [
            {
                "LogicalOperator": "EQUALS",
                "CrawlerName": "testCrawler",
                "CrawlState": "SUCCEEDED",
            },
        ],
    },
    Actions=[
        {"JobName": "testJob"},
    ],
    StartOnCreation=True,
)

Com qualquer uma das abordagens anteriores, você pode criar o gatilho testTrigger que pode iniciar o trabalho testJob depois que o crawler testCrawler for executado com sucesso.

Observação: o crawler testCrawler deve ser iniciado somente usando um gatilho. Se você iniciar o crawler manualmente, o trabalho não será acionado pelo gatilho. No AWS Glue, todos os trabalhos ou crawlers são iniciados somente se forem iniciados por um gatilho. Certifique-se de que todos os trabalhos ou crawlers em uma cadeia de dependências sejam descendentes dos gatilhos programados ou sob demanda.

Além disso, você pode usar um dos seguintes métodos:


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos