Detetar um evento externo com um acionador
Nos Aplicativos Lógicos do Azure, um gatilho sempre inicia um fluxo de trabalho como a primeira etapa. Para executar com êxito seu fluxo de trabalho, você precisa encontrar o gatilho apropriado e configurar as propriedades do gatilho para seu cenário. Neste exemplo, usamos o gatilho de Pesquisa do Bing para executar o fluxo de trabalho quando um artigo sobre o setor é publicado.
Nesta unidade, examinamos os tipos de gatilho mais os pontos fortes e fracos em torno das opções mais comuns e como um gatilho lida com entradas e saídas.
Tipos de acionador
Considere as várias condições de gatilho que as empresas podem usar para executar fluxos de trabalho de aplicativos lógicos. A maioria dos exemplos que vimos são gatilhos que detetam se os dados ou um evento em um serviço ou sistema atendem a uma condição específica. Por exemplo, quando um novo artigo está disponível, uma nova linha é adicionada a um banco de dados, um novo e-mail chega ou um novo arquivo é carregado para o armazenamento em nuvem. Os gatilhos que detetam dados ou eventos podem usar uma das seguintes técnicas:
Gatilhos que pesquisam ou verificam periodicamente um serviço ou sistema em busca de dados específicos ou de um evento que atenda a uma condição
Gatilhos que aguardam e recebem notificações por push de um serviço ou sistema quando dados específicos ou um evento atendem a uma condição
No entanto, e se você precisar de um gatilho que não esteja vinculado a dados ou eventos em um serviço ou sistema? Suponha que você queira executar seu fluxo de trabalho todos os sábados à meia-noite ou algum outro horário. Você pode usar o gatilho de Recorrência para agendar quando executar as ações em um fluxo de trabalho. Por exemplo, você pode agendar fluxos de trabalho que executam tarefas administrativas, como executar backups ou arquivar dados antigos.
Suponha que você queira executar seu fluxo de trabalho somente quando chamado a partir do código ou de outra fonte? Você pode usar o gatilho Solicitação ou "manual" para aguardar solicitações, por exemplo, enviadas a partir do código em seu aplicativo Web ou aplicativo móvel.
O diagrama a seguir resume os tipos de gatilho descritos anteriormente:
As seções a seguir fornecem mais informações sobre gatilhos de sondagem e gatilhos de push.
O que é um acionador de consultas?
Um gatilho de sondagem verifica periodicamente um serviço ou sistema em busca de dados ou eventos que atendam a uma condição específica. Após essa verificação, se o gatilho encontrar dados ou um evento que atenda à condição, o gatilho iniciará uma nova execução de fluxo de trabalho. Por exemplo, o conector RSS tem um gatilho de sondagem que pode verificar regularmente se há novas postagens em um feed RSS.
Depois de adicionar um gatilho de sondagem ao seu fluxo de trabalho, você define a Frequência e um Intervalo para controlar a frequência com que o gatilho é executado. A frequência é uma unidade de tempo, como Segundo, Minuto, Hora, Dia, Semana ou Mês. O intervalo é o número de unidades de tempo que expiram antes que o gatilho verifique novamente se há dados ou um evento. Por exemplo, um gatilho de sondagem com uma frequência de Minuto e um intervalo de 5 verifica a cada cinco minutos.
Os gatilhos de sondagem exigem que você escolha entre a frequência com que os gatilhos são executados e quanto custam para serem executados. Muitas vezes, há um atraso entre quando novos dados ou um evento acontecem e quando o gatilho deteta esses dados ou eventos. Por exemplo, suponha que um gatilho de sondagem verifique os dados a cada cinco minutos. Novos dados estão disponíveis após sete minutos. O gatilho não deteta os novos dados até a próxima pesquisa, que acontece aos 10 minutos. O diagrama a seguir mostra como essa sondagem funciona:
Na pior das hipóteses, o atraso potencial ao detetar novos dados é igual ao intervalo de sondagem. Então, porque é que não se utiliza um intervalo menor? Para verificar se há novos dados, o mecanismo de execução de Aplicativos Lógicos do Azure precisa executar seu fluxo de trabalho, o que incorre em um custo. Geralmente, quanto menor o intervalo, maior o custo, mas o gatilho responde mais rapidamente a novos dados ou eventos. O melhor intervalo de sondagem para o seu gatilho depende do seu processo de negócios e da tolerância ao atraso.
O que é um acionador push?
Um gatilho push aguarda notificações de um serviço ou sistema quando os dados ou um evento atendem a uma condição específica. O gatilho assina um ponto de extremidade em outro serviço ou sistema. Quando novos dados ou um evento atende à condição, o serviço ou sistema notifica o gatilho, que inicia imediatamente uma nova execução de fluxo de trabalho. Por exemplo, o conector do Barramento de Serviço do Azure tem um gatilho de push que deteta quando uma mensagem é adicionada a uma fila do Barramento de Serviço do Azure.
Nota
Os gatilhos push usam webhooks, que permitem que os gatilhos se inscrevam no serviço ou sistema externo. No momento da assinatura, os Aplicativos Lógicos do Azure geram uma URL de retorno de chamada para o gatilho e registram a URL no serviço ou sistema externo. Da mesma forma, os Aplicativos Lógicos do Azure cancelam a inscrição e cancelam o registro da URL de retorno de chamada quando você não precisa mais da assinatura, por exemplo, se você desabilitar ou excluir seu fluxo de trabalho.
No lado positivo, os gatilhos de push não são executados quando não há dados ou eventos disponíveis. Assim, não incorrem em tanto custo como as sondagens. Esses gatilhos também respondem imediatamente quando novos dados ou eventos existem. O diagrama a seguir mostra como esse processo de push funciona:
Por que não usar gatilhos de push o tempo todo quando eles respondem mais rápido e custam menos do que os gatilhos de sondagem? Infelizmente, nem todos os conectores oferecem um gatilho de push. Um serviço ou sistema pode não suportar gatilhos de push, ou talvez o autor do conector não tenha optado por implementar um trigger push. Geralmente, um conector oferece gatilhos de sondagem ou gatilhos de push, mas não ambos. Em casos raros em que um conector oferece ambas as opções, considere usar o gatilho de pressão para melhor eficiência e menor custo.
A captura de tela a seguir mostra o designer com o fluxo de trabalho do aplicativo lógico de monitoramento de notícias onde o gatilho de Pesquisa do Bing aparece como a primeira etapa:
Parâmetros de acionador e valores de retorno
Você pode pensar em uma operação de gatilho como uma chamada de função que tem parâmetros (entradas) e valores de retorno (saídas). Os parâmetros de acionador permitem-lhe configurar a operação. O gatilho de Pesquisa do Bing chamado Em novo artigo de notícias tem um parâmetro chamado Consulta de pesquisa. O gatilho usa esse parâmetro para encontrar artigos de notícias que correspondam a um termo de pesquisa para nós. Algumas operações usam parâmetros obrigatórios e opcionais. O gatilho do SQL Server chamado Quando um item é criado tem um parâmetro necessário chamado Nome da tabela e vários parâmetros opcionais, como Ordenar por e Selecionar consulta.
Os valores de retorno de um gatilho são os resultados ou saídas da operação de gatilho. Por exemplo, o gatilho Pesquisa do Bing chamado No caso de novo artigo de notícias retorna um objeto NewsArticle . Este objeto contém valores como Name, URL e Description. O conector Bitbucket tem um gatilho chamado Quando um pedido de pull é incorporado. O gatilho retorna um objeto que contém dados, como a identidade do repositório e o ator que aprovou a mesclagem.
Alguns gatilhos retornam uma matriz ou coleção, em vez de um único item. O diagrama a seguir mostra a aparência dessa matriz ou coleção de saída:
Para processar cada item, pode-se usar um ciclo, como um For each ou Until.
Alguns gatilhos aceitam uma matriz ou coleção como entrada. Por padrão, a maioria dos gatilhos divide automaticamente a matriz para processamento. Em vez de ter uma instância de fluxo de trabalho processando toda a matriz, o mecanismo de Aplicativos Lógicos do Azure cria uma instância de fluxo de trabalho para cada item e executa todas as instâncias em paralelo.
O diagrama a seguir mostra como o gatilho RSS chamado Quando um item de feed é publicado divide a matriz e envia cada item para uma instância de fluxo de trabalho individual para processamento:
Gatilhos no designer
O designer de fluxo de trabalho inclui uma galeria de conectores que contém os gatilhos e ações que você pode usar em seu fluxo de trabalho. Normalmente, você usa a caixa de pesquisa da galeria de conectores para localizar e selecionar um conector para seu cenário. Em seguida, você revise todos os gatilhos fornecidos pelo conector. A captura de tela a seguir mostra como o designer de fluxo de trabalho apresenta conectores para você selecionar:
Depois de selecionar um conector, os gatilhos disponíveis para esse conector aparecem:
A próxima unidade mostra como criar um recurso de aplicativo lógico e fluxo de trabalho no portal do Azure, juntamente com como adicionar e configurar gatilho no designer de fluxo de trabalho.
A galeria de conectores agrupa conectores nas seguintes categorias gerais:
| Grupo de conectores | Descrição |
|---|---|
| Integrado (no aplicativo) | Gatilhos e ações que são executados nativamente com o tempo de execução dos Aplicativos Lógicos do Azure. Algumas operações funcionam diretamente com serviços específicos do Azure sem exigir que você crie uma conexão, como o Azure Functions. Outras operações executam tarefas como trabalhar com variáveis, controlar o caminho através do fluxo de trabalho ou executar tarefas gerais de dados. |
| Gerenciado (compartilhado) | Gatilhos e ações que são executados no Azure multilocatário e gerenciados pela Microsoft. Essas operações são normalmente associadas a um único serviço ou sistema, e eles recebem ou enviam chamadas para seu serviço ou sistema específico. Essas operações geralmente exigem que você crie uma conexão primeiro. |