Utilize o nó de gatilho HTTP para permitir que um sistema de agendamento externo acione um fluxo de trabalho do DataWorks após a conclusão de um job externo.
Pré-requisitos
Antes de começar, verifique se você possui:
DataWorks Enterprise Edition ou superior
Um fluxo de trabalho com o nó de computação de destino já criado (por exemplo, um nó MaxCompute SQL)
Funcionamento
O nó de gatilho HTTP atua como uma ponte entre seu agendador externo e o DataWorks. Ele não executa tarefas de computação diretamente; apenas aguarda um comando de gatilho externo e, em seguida, desbloqueia os nós downstream.
Dois padrões de implantação:
Sem nós upstream

Crie o nó de gatilho HTTP, configure o gatilho no seu sistema externo e defina as dependências de agendamento no DataWorks.
Com nós upstream

O nó dispara as tarefas downstream somente quando duas condições são atendidas simultaneamente: todos os nós upstream foram concluídos com êxito e o sistema externo emitiu um comando de gatilho.
Caso o sistema externo envie o comando antes da conclusão dos nós upstream, o DataWorks retém esse comando e o libera assim que os nós upstream forem finalizados.
O comando de gatilho tem validade de 24 horas. Se os nós upstream não forem concluídos dentro desse período, o comando expira e você precisará reemití-lo.
Limitações
Requer DataWorks Enterprise Edition ou superior. Consulte Detalhes dos recursos por edição do DataWorks.
Suporta apenas Geração de instâncias T+1, ou seja, o sistema externo pode acionar o nó somente a partir do dia seguinte à sua implantação em produção.
Não pode ser acionado por instâncias de backfill de dados. Para obter resultados históricos de execução dos nós downstream, realize uma operação de backfill de dados (consulte O&M de instância de backfill de dados). O backfill ignora o gatilho externo e executa os nós downstream diretamente, portanto, não serve para testar o acionamento externo.
Funciona exclusivamente como gatilho, sem capacidade de executar tarefas de computação diretamente. Configure o nó de tarefa como downstream do nó de gatilho HTTP.
Ao reexecutar o nó de gatilho após uma execução normal do fluxo de trabalho, emita também um novo comando de gatilho pelo sistema externo. A reexecução do nó de gatilho HTTP não dispara novamente os nós downstream que já foram concluídos com êxito.
Regiões suportadas: China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Chengdu), China (Hong Kong), Japão (Tóquio), Singapura, Malásia (Kuala Lumpur), Alemanha (Frankfurt) e EUA (Vale do Silício).
Lógica de acionamento
O nó de gatilho HTTP é disparado apenas quando todas as condições abaixo são verdadeiras:
|
Condição |
O que verificar |
|
Existe uma instância de ciclo para o nó |
Localize-a no painel Cycle Instance do Operation Center |
|
A instância está no estado Pending Trigger |
Uma instância acionada com êxito não pode ser acionada novamente |
|
Todos os nós pai foram concluídos com êxito |
As instâncias devem estar no estado de sucesso |
|
O horário agendado da instância de ciclo já passou |
Verifique o cronograma da instância |
|
O grupo de recursos de agendamento possui recursos suficientes |
Confirme a capacidade do grupo de recursos |
|
O nó não está congelado |
Cheque o status do nó no Data Studio |
Dica: Os dois requisitos mais frequentemente negligenciados são a janela de validade de 24 horas do comando e o estado Pending Trigger. Se um comando de gatilho falhar silenciosamente, comece verificando esses itens.
Criar um nó de gatilho HTTP
Faça login no console do DataWorks. Na barra de navegação superior, selecione a região. No painel de navegação à esquerda, escolha Data Development and O&M > Data Development, selecione o workspace e clique em Go to Data Development.
Na página Data Studio, passe o mouse sobre o ícone
e selecione Create Node > General > HTTP Trigger. Como alternativa, abra o fluxo de trabalho desejado, clique com o botão direito em General e selecione Create Node > HTTP Trigger.Na caixa de diálogo Create Node, configure Path e Name e clique em Confirm.
-
Clique em Properties no lado direito do editor de nós para configurar as propriedades de agendamento. Consulte Configurar propriedades básicas para mais detalhes.
O nó upstream padrão é o nó raiz do fluxo de trabalho. Configure manualmente quaisquer outros nós upstream adicionais.
-
Salve e envie o nó:
Clique no ícone
para salvar o nó.Clique no ícone
para enviar.Na caixa de diálogo, preencha Change description e clique em OK.
Se o workspace estiver no modo padrão, clique em Deploy no canto superior direito após o envio. Consulte Implantar tarefas.
ImportanteConfigure Rerun e Parent Nodes na aba Properties antes de enviar.
Para gerenciamento contínuo do nó, consulte Executar operações básicas de O&M em nós acionados automaticamente.
Acionar o nó a partir de um sistema externo
Todos os métodos chamam a API RunTriggerNode (versão 2020-05-18).
API
Para obter informações sobre como chamar a API, consulte RunTriggerNode.
Java SDK
-
Adicione a dependência do SDK do DataWorks ao seu arquivo
pom.xml:<dependency> <groupId>com.aliyun</groupId> <artifactId>dataworks_public20200518</artifactId> <version>8.0.0</version> </dependency>Para instalação do SDK, consulte Introdução ao Alibaba Cloud SDK V1.0 para Java.
-
Para um exemplo de código completo, acesse a página de depuração RunTriggerNodepágina de depuração RunTriggerNode e clique na aba SDK Sample.

Python SDK
-
Instale o SDK do DataWorks:
pip install aliyun-python-sdk-dataworks-public==2.1.2Para instalação do SDK, consulte Integrar um SDK.
-
Para um exemplo de código completo, acesse a página de depuração RunTriggerNodepágina de depuração RunTriggerNode e clique na aba SDK Sample.

Verificar o acionamento
Após emitir um comando de gatilho, confirme se o nó foi executado com êxito:
No Operation Center, abra o painel Cycle Instance e localize a instância correspondente ao nó de gatilho HTTP.
Confirme se o status da instância mudou de Pending Trigger para sucesso.
Verifique se os nós downstream estão em execução ou já foram concluídos.
Se o gatilho não for disparado, valide as condições descritas em Lógica de acionamento e certifique-se de que o comando foi emitido dentro da janela de validade de 24 horas.