Desidero configurare AWS Glue per avviare automaticamente un processo al termine di un'esecuzione del crawler.
Risoluzione
È possibile utilizzare i trigger di AWS Glue per avviare un processo al termine di un'esecuzione del crawler. Tuttavia, quando si utilizzano i trigger, la console AWS Glue supporta solo i processi e non i crawler. Puoi utilizzare l'interfaccia della linea di comando AWS (AWS CLI) o l'API AWS Glue per configurare i trigger sia per i processi che per i crawler.
Esegui il seguente comando AWS CLI per creare un trigger in grado di avviare un processo al termine di un'esecuzione del crawler:
$ aws glue create-trigger --name testTrigger --type CONDITIONAL --predicate 'Logical=AND,Conditions=[{LogicalOperator=EQUALS,CrawlerName=testCrawler,CrawlState=SUCCEEDED}]' --actions JobName=testJob --start-on-creation
Nota: se si verificano errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.
Puoi anche creare un trigger usando Python boto3 SDK:
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,
)
Con uno dei metori precedenti è possibile creare il trigger testTrigger per avviare il processo testJob dopo che il crawler testCrawler è stato eseguito correttamente.
Nota: il crawler testCrawler deve essere avviato solo utilizzando un trigger. Se si avvia il crawler manualmente, il processo non viene avviato dal trigger. In AWS Glue, tutti i processi o i crawler vengono avviati solo se avviati da un trigger. Assicurati che tutti i processi o i crawler di una catena di dipendenze discendano dai trigger pianificati o su richiesta.
Inoltre, puoi utilizzare uno dei seguenti metodi: