Por que meu fluxo de trabalho do AWS Glue não é acionado?

5 minuto de leitura
0

Eu criei um fluxo de trabalho do AWS Glue, mas ele não está iniciando. Ou alguns dos trabalhos ou crawlers constituintes no fluxo de trabalho do AWS Glue não estão em execução.

Descrição resumida

Se o fluxo de trabalho do AWS Glue ou seus componentes não forem acionados, confirme o seguinte:

  • Se um acionador programado for usado como acionador de origem, confirme se ele está ativado. Verifique se a programação é mencionada no Horário Universal Coordenado (UTC) e que a expressão cron inclua todos os campos obrigatórios.
  • Se um acionador baseado em evento for usado como acionador de origem, confirme se a regra do Amazon EventBridge está correta, ativada e vinculada ao fluxo de trabalho. Confirme se a função usada para adicionar o fluxo de trabalho como destino tem as permissões necessárias para passar eventos para o AWS Glue.
  • Se um componente externo estiver acionando o acionador de origem, confirme se o componente externo não está funcionando incorretamente.
  • Verifique se a condição de predicado usada para acionar um componente não é atendida por um agente externo ao fluxo de trabalho.
  • O componente pode fazer parte de uma cadeia de dependência. Verifique se os trabalhos/crawlers upstream são iniciados como parte do mesmo fluxo de trabalho por meio de um único acionador de origem.

Resolução

O fluxo de trabalho não é iniciado com um acionador baseado em tempo

Se o acionador de origem do fluxo de trabalho estiver programado, verifique o seguinte:

  • Verifique se o acionador está no estado ATIVADO e não no estado CRIADO. Se o acionador não estiver no estado ATIVADO, ative-o manualmente.
  • Verifique se a expressão cron usada na programação de um acionador programado está em UTC. Verifique se os campos na expressão cron correspondem à conversão do fuso horário local em UTC. Além disso, verifique se a expressão cron inclui todos os campos obrigatórios no formato correto. Para obter mais informações, consulte Programações baseadas em tempo para trabalhos e crawlers.

O fluxo de trabalho não é iniciado com um acionador sob demanda

Seu acionador de origem pode estar sob demanda, com uma entidade upstream acionando-o usando a chamada de API StartWorkflowRun. Para esse caso de uso, verifique se a entidade de chamada funciona corretamente.

O fluxo de trabalho não é iniciado com um acionador condicional

Verifique se as condições do predicado no acionador não são atendidas por um agente externo ao fluxo de trabalho. Se as condições forem atendidas por um agente externo, o acionador não será acionado. Os acionadores condicionais serão iniciados somente se o evento monitorado for iniciado por um acionador.

Por exemplo, suponha que as seguintes condições sejam verdadeiras:

  • Você tem um fluxo de trabalho com um trabalho JOB_MAIN que é acionado pelo acionador TEST_TR.
  • O acionador TEST_TR depende da conclusão de outro trabalho JOB_DEP que não faz parte do fluxo de trabalho atual.

Nesse caso, mesmo que JOB_DEP seja concluído com êxito e a lógica de predicado do acionador TEST_TR seja atendida, o trabalho JOB_MAIN não será acionado. O trabalho não será acionado porque a condição do predicado é atendida por um agente que não faz parte do mesmo fluxo de trabalho.

O fluxo de trabalho não é iniciado com um acionador baseado em eventos

Você pode ter configurado o EventBridge (também conhecido como Amazon CloudWatch Events) para iniciar seus fluxos de trabalho. Se você estiver usando essa configuração e perceber que o acionador de origem não está sendo acionado, verifique o seguinte:

  • Se você estiver usando eventos de dados do Amazon Simple Storage Service (Amazon S3) como origem, confirme se criou corretamente uma trilha para a conta da AWS. Em seguida, verifique se os eventos do bucket do S3 em questão estão sendo registrados no AWS CloudTrail.
  • Verifique a regra do EventBridge para confirmar se eventSource, eventName e requestParameters estão conforme o esperado.
  • Confirme se a regra do EventBridge está anexada ao ARN de destino do fluxo de trabalho correto.
  • Confirme se o estado da regra do EventBridge está HABILITADO.
  • Confirme se o RoleArn usado para anexar a regra ao destino do fluxo de trabalho tem as políticas CloudWatchEventsBuiltInTargetExecutionAccess e CloudWatchEventsInvocationAccess anexadas. Em seguida, confirme se há permissões do IAM suficientes para realizar 'glue:NotifyEvent' no fluxo de trabalho. O seguinte exemplo mostra a política mínima exigida do AWS Glue:
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": ["glue:NotifyEvent"],
        "Resource": ["arn:aws:glue:<region>:<account-id>:workflow/<workflow-name>"]
    }]
}

O fluxo de trabalho não está sendo iniciado para um crawler ou trabalho de componente que faz parte de uma cadeia de dependências

Verifique se o crawler ou trabalho constituinte depende da conclusão de um crawler ou trabalho upstream que também é iniciado por um acionador. Um crawler ou trabalho dependente será iniciado somente se o trabalho ou crawler concluído tiver sido iniciado por um acionador. Verifique se os trabalhos ou crawlers em uma cadeia de dependências são descendentes de um único acionador programado ou sob demanda.

Por exemplo, suponha que essas condições sejam verdadeiras:

  • Seu fluxo de trabalho é iniciado com um acionador chamado TEST_TR1 que inicia o trabalho chamado JOB_1.
  • Outro acionador chamado TEST_TR2 depende da conclusão do JOB_1 para iniciar o trabalho chamado JOB_2.

Nesse caso, TEST_TR2 inicia JOB_2 quando as condições de predicado para TEST_TR2 forem atendidas.

Mas se JOB_1 for executado sob demanda e não for iniciado por TEST_TR1, TEST_TR2 não iniciará JOB_2 mesmo que as condições de predicado para TEST_TR2 forem atendidas.


Informações relacionadas

Acionadores do AWS Glue

Restrições de fluxo de trabalho no AWS Glue

Iniciar um fluxo de trabalho do AWS Glue com um evento do Amazon EventBridge

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos