Perché il mio flusso di lavoro AWS Glue non viene attivato?

5 minuti di lettura
0

Ho creato un flusso di lavoro AWS Glue, ma non si avvia. Oppure alcuni dei processi o dei crawler che costituiscono il mio flusso di lavoro AWS Glue non sono in esecuzione.

Breve descrizione

Se il flusso di lavoro di AWS Glue o i suoi componenti non vengono attivati, verifica quanto segue:

  • Se un trigger pianificato viene utilizzato come trigger di origine, conferma che sia stato attivato. Assicurati che l'orario sia indicato in Coordinated Universal Time (UTC) e che l'espressione cron includa tutti i campi richiesti.
  • Se viene utilizzato un trigger basato su eventi come trigger sorgente, verifica che la regola Amazon EventBridge sia corretta, attivata e collegata al flusso di lavoro. Verifica che il ruolo utilizzato per aggiungere il flusso di lavoro come target disponga delle autorizzazioni necessarie per passare gli eventi ad AWS Glue.
  • Se un componente esterno attiva il trigger di origine, verifica che il componente esterno non funzioni in modo non corretto.
  • Assicurati che la condizione di predicato utilizzata per attivare un componente non sia soddisfatta da un agente esterno al flusso di lavoro.
  • Il componente potrebbe far parte di una catena di dipendenze. Assicurati che i processi/crawler a monte siano avviati come parte dello stesso flusso di lavoro da un unico trigger di origine.

Soluzione

Il flusso di lavoro non inizia con un trigger basato sul tempo

Se il trigger di origine del flusso di lavoro è pianificato, controlla quanto segue:

  • Assicurati che il trigger sia nello stato ATTIVATO e non nello stato CREATO. Se il trigger non è nello stato ATTIVATO, attivalo manualmente.
  • Assicurati che l'espressione cron utilizzata nella pianificazione per un trigger programmato sia in UTC. Assicurati che i campi dell'espressione cron corrispondano alla conversione del fuso orario locale in UTC. Inoltre, controlla se l'espressione cron include tutti i campi obbligatori nel formato corretto. Per ulteriori informazioni, consulta Pianificazioni temporali per processi e crawler.

Il flusso di lavoro non inizia con un trigger on-demand

Il tuo trigger sorgente potrebbe essere on-demand, con un'entità a monte che lo attiva utilizzando la chiamata API StartWorkflowRun. Per questo caso d'uso, assicurati che l'entità chiamante funzioni correttamente.

Il flusso di lavoro non inizia con un trigger condizionale

Assicurati che le condizioni del predicato nel trigger non siano soddisfatte da un agente esterno al flusso di lavoro. Se le condizioni sono soddisfatte da un agente esterno, il trigger non viene attivato. I trigger condizionali vengono avviati solo se l'evento osservato viene avviato da un trigger.

Ad esempio, supponiamo che siano true le seguenti condizioni:

  • Disponi di un flusso di lavoro con un processo JOB_MAIN che viene attivato dal trigger TEST_TR.
  • Il trigger TEST_TR dipende dal completamento di un altro processo JOB_DEP che non fa parte del flusso di lavoro corrente.

In questo caso, anche se JOB_DEP viene completato correttamente e la logica dei predicati del trigger TEST_TR è soddisfatta, il processo JOB_MAIN non viene attivato. Il processo non viene attivato perché la condizione fondamentale è soddisfatta da un agente che non fa parte dello stesso flusso di lavoro.

Il flusso di lavoro non inizia con un trigger basato su eventi

Potresti aver configurato EventBridge (noto anche come Amazon CloudWatch Events) per avviare i tuoi flussi di lavoro. Se stai usando questa configurazione e noti che il trigger di origine non viene attivato, controlla quanto segue:

  • Se utilizzi gli eventi dati di Amazon Simple Storage Service (Amazon S3) come origine, verifica di aver creato un percorso correttamente per l'account AWS. Quindi verifica che gli eventi per il bucket S3 interessato vengano registrati in AWS CloudTrail.
  • Verifica la regola EventBridge per verificare che eventSource, eventName e requestParameters siano nella condizione prevista.
  • Verifica che la regola EventBridge sia associata all'ARN di destinazione del flusso di lavoro corretto.
  • Verifica che lo stato della regola EventBridge sia ABILITATO.
  • Verifica che al RoleArn utilizzato per collegare la regola alla destinazione del flusso di lavoro siano collegati le policy CloudWatchEventsBuiltInTargetExecutionAccess e CloudWatchEventsInvocationAccess. Quindi, verifica che siano presenti autorizzazioni IAM sufficienti per eseguire 'glue:NotifyEvent' sul flusso di lavoro. L'esempio seguente mostra la policy minima richiesta da AWS Glue:
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": ["glue:NotifyEvent"],
        "Resource": ["arn:aws:glue:<region>:<account-id>:workflow/<workflow-name>"]
    }]
}

Flusso di lavoro non avviato per un componente, un processo o un crawler che fa parte di una catena di dipendenze

Controlla se il processo o il crawler costituente dipende dal completamento di un lavoro o di un crawler a monte, anch'esso avviato da un trigger. Un processo o un crawler dipendente viene avviato solo se il processo o il crawler completato sono stati avviati da un trigger. Assicurati che tutti i processi o i crawler di una catena di dipendenze discendano da un singolo trigger pianificato o su richiesta.

Ad esempio, supponiamo che queste condizioni siano soddisfatte:

  • Il flusso di lavoro inizia con un trigger denominato TEST_TR1 che avvia il processo denominato JOB_1.
  • Un altro trigger denominato TEST_TR2 dipende dal completamento di JOB_1 per avviare il processo denominato JOB_2.

In questo caso, TEST_TR2 avvia JOB_2 quando vengono soddisfatte le condizioni del predicato per TEST_TR2.

Tuttavia, se JOB_1 viene eseguito su richiesta e non viene avviato da TEST_TR1, TEST\ _TR2 non avvia JOB_2 anche se sono soddisfatte le condizioni del predicato per TEST\ _TR2.


Informazioni correlate

Trigger di AWS Glue

Restrizioni del flusso di lavoro in AWS Glue

Avvio di un flusso di lavoro AWS Glue con un evento Amazon EventBridge

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa