Use o nó HTTP Trigger do DataWorks para iniciar uma tarefa a partir de um sistema de agendamento externo quando uma tarefa nesse sistema for concluída. Este tópico descreve como integrar o nó a um sistema externo e apresenta observações importantes.
Pré-requisitos
Você ativou o DataWorks Enterprise Edition ou uma edição superior.
Um workflow e os nós de computação a serem acionados foram criados. Por exemplo, se você usa o MaxCompute para computação baseada em SQL, crie uma tarefa ODPS SQL. Para mais informações, consulte Develop an ODPS SQL task.
Informações básicas
Um sistema de agendamento externo pode acionar uma tarefa em dois cenários típicos:
-
O nó HTTP Trigger não possui nós ancestrais
Neste cenário, crie o nó HTTP Trigger, configure o gatilho externo e defina as propriedades de agendamento e dependências para todos os nós no DataWorks. Para mais informações, consulte Create an HTTP Trigger node e Configure a trigger in an external scheduling system. -
O nó HTTP Trigger possui um ou mais nós ancestrais
Neste cenário:Crie o nó HTTP Trigger, configure o gatilho externo e defina as propriedades de agendamento e dependências para todos os nós no DataWorks. Para mais informações, consulte Create an HTTP Trigger node e Configure a trigger in an external scheduling system.
Por padrão, um nó HTTP Trigger depende do nó raiz do workflow. Se houver outros nós ancestrais, altere manualmente a dependência para o nó ancestral correto.
-
O nó HTTP Trigger inicia seus nós descendentes somente após a execução bem-sucedida dos nós ancestrais e o envio de uma solicitação de gatilho pelo sistema de agendamento externo.
Se o sistema externo enviar a solicitação de gatilho antes da conclusão dos nós ancestrais, o nó HTTP Trigger reterá a solicitação e aguardará. Assim que os ancestrais forem concluídos, o nó iniciará seus descendentes.
ImportanteEssa solicitação de gatilho é retida por apenas 24 horas. Caso os nós ancestrais não sejam concluídos dentro desse período, a solicitação expirará.
Limitações
O recurso de nó HTTP Trigger está disponível apenas no DataWorks Enterprise Edition e versões posteriores. Para mais informações sobre as edições do DataWorks, consulte Features by edition.
Um nó HTTP Trigger suporta apenas generating instances for the next day (T+1 scheduling). Não é possível acionar instâncias de backfill de dados. Portanto, um sistema externo só pode acionar um nó HTTP Trigger no dia seguinte à implantação do nó no ambiente de produção.
O nó HTTP Trigger funciona exclusivamente como gatilho e não executa computações. Configure a tarefa real como um nó descendente.
Para executar novamente um nó HTTP Trigger em um workflow em execução, execute o nó novamente e envie uma nova solicitação de gatilho do sistema externo. A reexecução de um nó HTTP Trigger não aciona nós descendentes já concluídos com sucesso.
Para obter resultados históricos de nós descendentes em um workflow em execução, realize um backfill de dados. Para mais informações, consulte Manage data backfill instances. Uma operação de backfill de dados não exige solicitação de gatilho de um sistema de agendamento externo, pois o nó HTTP Trigger aciona diretamente seus descendentes. Isso significa que um sistema externo não pode acionar uma tarefa de backfill para o nó.
Regiões suportadas: China (Hangzhou), China (Shanghai), China (Beijing), China (Shenzhen), China (Chengdu), China (Hong Kong), Japan (Tokyo), Singapore, Malaysia (Kuala Lumpur), Germany (Frankfurt) e US (Silicon Valley).
Condições de acionamento
Um nó HTTP Trigger é executado apenas se as seguintes condições forem atendidas:
Deve existir uma instância de ciclo para o nó. Encontre essa instância em Auto Triggered Instances na página Cycle Instance. Até que a API RunTriggerNode seja chamada com sucesso, a instância permanece em estado de espera por gatilho, bloqueando seus nós descendentes. Após a chamada bem-sucedida, o nó é executado.
Todos os nós ancestrais foram executados com sucesso.
O horário agendado do nó foi atingido.
O grupo de recursos de agendamento do nó possui recursos suficientes.
O nó HTTP Trigger não está em estado congelado.
O acionamento ocorre apenas se o nó estiver em estado de espera por gatilho. Não é possível acionar novamente uma instância bem-sucedida.
Criar um nó HTTP Trigger
-
Acesse a página Data Studio.
Faça login no console do DataWorks. Na região de destino, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
-
Na página DataStudio, passe o ponteiro do mouse sobre o ícone
e escolha .Alternativamente, abra o workflow de destino, clique com o botão direito em General e escolha .
Na caixa de diálogo Create Node, selecione um Path e insira um Name.
Clique em Commit.
-
Clique em Scheduling Settings no lado direito da aba de configuração do nó para definir as propriedades de agendamento. Para mais informações, consulte Configure basic properties.
NotaPor padrão, um nó HTTP Trigger depende do nó raiz do workflow. Se houver outros nós ancestrais, altere manualmente a dependência para o nó ancestral correto.
-
Salve e faça o commit do nó.
ImportanteDefina os parâmetros Rerun e Parent Nodes antes de fazer o commit do nó.
Clique no ícone
na barra de ferramentas para salvar o nó.Clique no ícone
na barra de ferramentas.Na caixa de diálogo Commit Node, insira seus comentários no campo Change description.
Clique em OK.
Teste o nó. Para mais informações, consulte Manage scheduled tasks.
Configurar gatilhos externos
Para configurar o gatilho externo, chame a versão 2020-05-18 da API RunTriggerNode de uma das seguintes maneiras para iniciar o nó.
-
Java
-
Instale o SDK Java . Para mais informações, consulte Get started.
Utilize a seguinte configuração pom para o SDK do DataWorks.
<dependency> <groupId>com.aliyun</groupId> <artifactId>dataworks_public20200518</artifactId> <version>8.0.0</version> </dependency> -
Código de exemplo
Acesse a página de depuração RunTriggerNode e visualize o exemplo completo em Java na aba SDK Sample. No OpenAPI Explorer, na página RunTriggerNode (executar um nó de gatilho), defina o Endpoint como China (Shanghai). Na aba Parameter Configuration à esquerda, preencha os seguintes parâmetros obrigatórios: NodeId (o ID do nó de gatilho), CycleTime (o timestamp de 13 dígitos em milissegundos da tarefa correspondente ao nó de gatilho), BizDate (o timestamp da data de negócios da instância onde reside o nó de gatilho) e AppId (o ID do workspace do DataWorks ao qual o nó de gatilho pertence). À direita, selecione a aba SDK Sample e escolha a linguagem Java para visualizar o código de exemplo do SDK Java. No código, o endpoint é
dataworks.cn-shanghai.aliyuncs.com, e você pode usar um par AccessKey (AK&SK) para inicializar o cliente. Clique em Run Sample para realizar a chamada ou em Download Full Project para obter o código completo.
-
-
Python
-
Instale o SDK Python . Para mais informações, consulte Integrate an SDK.
Execute o comando a seguir para instalar o SDK do DataWorks.
pip install aliyun-python-sdk-dataworks-public==2.1.2 -
Código de exemplo
Acesse a página de depuração RunTriggerNode e visualize o exemplo completo em Python na aba SDK Example. Na página da API RunTriggerNode no OpenAPI Explorer, mude a linguagem para Python, selecione China (Shanghai) como endpoint e insira os quatro parâmetros obrigatórios na área de parâmetros de entrada: NodeId, CycleTime, BizDate e AppId. A área de código à direita gera automaticamente um exemplo de código do SDK Python que inclui a lógica de inicialização do cliente para o SDK
alibabacloud_dataworks_public20200518(criando um cliente de conta usando um par AccessKey). Clique em Run Example para depurar online ou em Download Full Project para obter o código completo.
-
-
Chamada de API
Para detalhes sobre como chamar a API, consulte RunTriggerNode.
Referências
Também é possível usar um nó HTTP Trigger para iniciar tarefas entre tenants. Para mais informações, consulte Use an HTTP Trigger node to start a node in a cross-tenant environment.