Comment puis-je automatiquement démarrer une tâche AWS Glue à la fin de l'exécution d'un analyseur ?

Date de la dernière mise à jour : 24/03/2022

Je veux configurer AWS Glue de manière à démarrer automatiquement une tâche à la fin de l'exécution d'un analyseur.

Solution

Vous pouvez utiliser des déclencheurs AWS Glue pour démarrer une tâche à la fin de l'exécution d'un analyseur. Toutefois, la console AWS Glue supporte uniquement les tâches et ne supporte pas les analyseurs lorsque vous travaillez avec des déclencheurs. Vous pouvez utiliser l'AWS Command Line Interface (AWS CLI) ou l'API AWS Glue pour configurer des déclencheurs pour les tâches et les analyseurs.

Exécutez la commande de l'AWS CLI suivante pour créer un déclencheur capable de démarrer une tâche lorsqu'une exécution de l'analyseur est terminée :

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

Remarque : en cas d'erreurs lors de l'exécution des commandes AWS CLI, vérifiez que vous utilisez la version la plus récente de l'AWS CLI.

Vous pouvez également créer un déclencheur à l'aide du kit SDK Python 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,
)

Avec l'une ou l'autre des approches précédentes, vous pouvez créer le déclencheur testTrigger qui peut démarrer la tâche testJob après l'exécution du crawler testCrawler est réussie.

Remarque : l'analyseur testCrawler doit être démarré uniquement à l'aide d'un déclencheur. Si vous démarrez l'analyseur manuellement, la tâche n'est pas activée par le déclencheur. Dans AWS Glue, toutes les tâches ou analyseurs sont démarrés uniquement s'ils sont démarrés par un déclencheur. Assurez-vous que tou(te)s les tâches ou les analyseurs d'une chaîne de dépendances sont des descendants d'un déclencheur planifié ou à la demande.

Vous pouvez également utiliser l'une des méthodes suivantes :


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?