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: