Troubleshoot and diagnose workflow failures in Azure Logic Apps (Resolução de problemas e diagnóstico de falhas de fluxo de trabalho no Azure Logic Apps)
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Seu fluxo de trabalho de aplicativo lógico gera informações que podem ajudá-lo a diagnosticar e depurar problemas em seu aplicativo. Você pode diagnosticar seu fluxo de trabalho revisando as entradas, saídas e outras informações para cada etapa do fluxo de trabalho usando o portal do Azure. Ou, você pode adicionar algumas etapas a um fluxo de trabalho para depuração de tempo de execução.
Verifique o histórico do gatilho
Cada execução de fluxo de trabalho começa com um gatilho, que é acionado em uma agenda ou aguarda uma solicitação ou evento de entrada. O histórico de gatilhos lista todas as tentativas de gatilho que seu fluxo de trabalho fez e informações sobre as entradas e saídas para cada tentativa de disparo. Se o gatilho não disparar, tente as etapas a seguir.
Para verificar o status do gatilho em seu aplicativo Lógica de consumo, revise o histórico do gatilho. Para exibir mais informações sobre a tentativa de disparo, selecione esse evento de disparo, por exemplo:
Verifique as entradas do gatilho para confirmar se elas aparecem como você espera. No painel Histórico, em Link Entradas, selecione o link, que mostra o painel Entradas.
As entradas de gatilho incluem os dados que o gatilho espera e requer para iniciar o fluxo de trabalho. A revisão dessas entradas pode ajudá-lo a determinar se as entradas de gatilho estão corretas e se a condição foi atendida para que o fluxo de trabalho possa continuar.
Verifique as saídas dos gatilhos, se houver, para confirmar se eles aparecem como você espera. No painel Histórico, em Link Saídas, selecione o link, que mostra o painel Saídas.
As saídas de gatilho incluem os dados que o gatilho passa para a próxima etapa do seu fluxo de trabalho. A revisão dessas saídas pode ajudá-lo a determinar se os valores corretos ou esperados passaram para a próxima etapa do fluxo de trabalho.
Por exemplo, uma mensagem de erro indica que o feed RSS não foi encontrado:
Gorjeta
Se encontrar algum conteúdo que não reconheça, saiba mais sobre os diferentes tipos de conteúdo nas Aplicações Lógicas do Azure.
Verificar o histórico de execução do fluxo de trabalho
Sempre que o gatilho é acionado, os Aplicativos Lógicos do Azure criam uma instância de fluxo de trabalho e executam essa instância. Se uma execução falhar, tente as etapas a seguir para que você possa revisar o que aconteceu durante essa execução. Você pode revisar o status, as entradas e as saídas de cada etapa do fluxo de trabalho.
Para verificar o status de execução do fluxo de trabalho em seu aplicativo de lógica de consumo, revise o histórico de execuções. Para exibir mais informações sobre uma execução com falha, incluindo todas as etapas executadas em seu status, selecione a execução com falha.
Depois que todas as etapas da execução aparecerem, selecione cada etapa para expandir suas formas.
Revise as entradas, saídas e quaisquer mensagens de erro para a etapa com falha.
Por exemplo, a captura de tela a seguir mostra as saídas da ação RSS com falha.
Executar a depuração do runtime
Para ajudar com a depuração, você pode adicionar etapas de diagnóstico a um fluxo de trabalho de aplicativo lógico, além de revisar o gatilho e o histórico de execuções. Por exemplo, você pode adicionar etapas que usam o serviço Webhook Tester , para que possa inspecionar solicitações HTTP e determinar seu tamanho, forma e formato exatos.
Em um navegador, vá para o site do Webhook Tester e copie a URL exclusiva gerada.
Em seu aplicativo lógico, adicione uma ação HTTP POST com o conteúdo do corpo que você deseja testar, por exemplo, uma expressão ou outra saída de etapa.
Cole seu URL do Webhook Tester na ação HTTP POST.
Para analisar como os Aplicativos Lógicos do Azure geram e formam uma solicitação, execute o fluxo de trabalho do aplicativo lógico. Em seguida, você pode visitar novamente o site do Webhook Tester para obter mais informações.
Desempenho - perguntas frequentes (FAQ)
Por que a duração de execução do fluxo de trabalho é maior do que a soma de todas as durações de ação do fluxo de trabalho?
A sobrecarga de agendamento existe ao executar ações, enquanto o tempo de espera entre as ações pode acontecer devido à carga do sistema de back-end. A duração da execução de um fluxo de trabalho inclui esses tempos de agendamento e tempos de espera, juntamente com a soma de todas as durações de ação.
Normalmente, meu fluxo de trabalho é concluído em 10 segundos. Mas, às vezes, a conclusão pode levar muito mais tempo. Como posso garantir que o fluxo de trabalho termine sempre em 10 segundos?
Não existe garantia de SLA na latência.
Os fluxos de trabalho de consumo são executados em Aplicativos Lógicos do Azure multilocatário, portanto, as cargas de trabalho de outros clientes podem afetar negativamente o desempenho do seu fluxo de trabalho.
Para um desempenho mais previsível, você pode considerar a criação de fluxos de trabalho Padrão, que são executados em Aplicativos Lógicos do Azure de locatário único. Você terá mais controle para aumentar ou diminuir a escala para melhorar o desempenho.
Minha ação expira após 2 minutos. Como posso aumentar o valor do tempo limite?
O valor do tempo limite da ação não pode ser alterado e é fixado em 2 minutos. Se você estiver usando a ação HTTP e for o proprietário do serviço chamado pela ação HTTP, poderá alterar o serviço para evitar o tempo limite de 2 minutos usando o padrão assíncrono. Para obter mais informações, consulte Executar tarefas de longa execução com o padrão de ação de sondagem.
Problemas comuns - Aplicativos lógicos padrão
Artefatos inacessíveis na conta de armazenamento do Azure
Os aplicativos lógicos padrão armazenam todos os artefatos em uma conta de armazenamento do Azure. Você pode obter os seguintes erros se esses artefatos não estiverem acessíveis. Por exemplo, a conta de armazenamento em si pode não estar acessível ou a conta de armazenamento está atrás de um firewall, mas nenhum ponto de extremidade privado está configurado para os serviços de armazenamento usarem.
Localização do portal do Azure | Erro |
---|---|
Painel Descrição geral | - System.private.corelib:Acesso ao caminho 'C:\home\site\wwwroot\host.json é negado - Azure.Storage.Blobs: esta solicitação não está autorizada a executar esta operação |
Painel Fluxos de trabalho | - Não é possível alcançar o tempo de execução do host. Detalhes do erro, Código: 'BadRequest', Mensagem: 'Encontrou um erro (InternalServerError) do tempo de execução do host.' - Não é possível alcançar o tempo de execução do host. Detalhes do erro, Código: 'BadRequest', Mensagem: 'Encontrou um erro (ServiceUnavailable) do tempo de execução do host.' - Não é possível alcançar o tempo de execução do host. Detalhes do erro, Código: 'BadRequest', Mensagem: 'Encontrou um erro (BadGateway) do tempo de execução do host.' |
Durante a criação e execução do fluxo de trabalho | - Falha ao salvar o fluxo de trabalho - Erro no designer: GetCallFailed. Operações de busca com falha - ajaxExtended chamada falhou |
Opções de solução de problemas
A lista a seguir inclui possíveis causas para esses erros e etapas para ajudar a solucionar problemas.
Para uma conta de armazenamento público, verifique o acesso à conta de armazenamento das seguintes maneiras:
Verifique a conectividade da conta de armazenamento usando o Gerenciador de Armazenamento do Azure.
Nas configurações do aplicativo do recurso do aplicativo lógico, confirme a cadeia de conexão da conta de armazenamento nas configurações do aplicativo, AzureWebJobsStorage e WEBSITE_CONTENTAZUREFILECONNECTIONSTRING. Para obter mais informações, revise Configurações de host e aplicativo para aplicativos lógicos em Aplicativos Lógicos do Azure de locatário único.
Se a conectividade falhar, verifique se a chave SAS (Assinatura de Acesso Compartilhado) na cadeia de conexão é a mais recente.
Importante
Quando você tiver informações confidenciais, como cadeias de conexão que incluem nomes de usuário e senhas, certifique-se de usar o fluxo de autenticação mais seguro disponível. Por exemplo, em fluxos de trabalho de aplicativos lógicos padrão, não há suporte para tipos de dados seguros, como
securestring
esecureobject
, . A Microsoft recomenda que você autentique o acesso aos recursos do Azure com uma identidade gerenciada quando possível e atribua uma função que tenha o menor privilégio necessário.Se esse recurso não estiver disponível, certifique-se de proteger as cadeias de conexão por meio de outras medidas, como
Azure Key Vault, que você pode usar com as configurações do aplicativo. Em seguida, você pode fazer referência direta a cadeias de caracteres seguras, como cadeias de conexão e chaves. Semelhante aos modelos ARM, onde você pode definir variáveis de ambiente no momento da implantação, você pode definir as configurações do aplicativo dentro da definição do fluxo de trabalho do aplicativo lógico. Em seguida, você pode capturar valores de infraestrutura gerados dinamicamente, como pontos de extremidade de conexão, cadeias de caracteres de armazenamento e muito mais. Para obter mais informações, consulte Tipos de aplicativo para a plataforma de identidade da Microsoft.
Para uma conta de armazenamento que esteja atrás de um firewall, verifique o acesso à conta de armazenamento das seguintes maneiras:
Se as restrições de firewall estiverem habilitadas na conta de armazenamento, verifique se os pontos de extremidade privados estão configurados para os serviços de armazenamento de Blob, Arquivo, Tabela e Fila.
Verifique a conectividade da conta de armazenamento usando o Gerenciador de Armazenamento do Azure.
Se você encontrar problemas de conectividade, continue com as seguintes etapas:
Na mesma rede virtual integrada ao seu aplicativo lógico, crie uma máquina virtual do Azure, que você pode colocar em uma sub-rede diferente.
Em um prompt de comando, execute nslookup para verificar se os serviços de armazenamento Blob, File, Table e Queue são resolvidos para os endereços IP esperados.
Sintaxe:
nslookup [StorageaccountHostName] [OptionalDNSServer]
Blob:
nslookup {StorageaccountName}.blob.core.windows.net
Ficheiro:
nslookup {StorageaccountName}.file.core.windows.net
Tabela:
nslookup {StorageaccountName}.table.core.windows.net
Fila:
nslookup {StorageaccountName}.queue.core.windows.net
Se o serviço de armazenamento tiver um ponto de extremidade de serviço, o serviço será resolvido para um endereço IP público.
Se o serviço de armazenamento tiver um ponto de extremidade privado, o serviço será resolvido para os respetivos endereços IP privados do controlador de interface de rede (NIC).
Se as consultas anteriores do servidor de nomes de domínio (DNS) forem resolvidas com êxito, execute os comandos psping ou tcpping para verificar a conectividade com a conta de armazenamento pela porta 443:
Sintaxe:
psping [StorageaccountHostName] [Port] [OptionalDNSServer]
Blob:
psping {StorageaccountName}.blob.core.windows.net:443
Ficheiro:
psping {StorageaccountName}.file.core.windows.net:443
Tabela:
psping {StorageaccountName}.table.core.windows.net:443
Fila:
psping {StorageaccountName}.queue.core.windows.net:443
Se cada serviço de armazenamento puder ser resolvido a partir da sua máquina virtual do Azure, localize o DNS usado pela máquina virtual para resolução.
Defina a configuração WEBSITE_DNS_SERVER aplicativo lógico do seu aplicativo lógico para o DNS e confirme se o DNS funciona com êxito.
Confirme se a integração de rede virtual está configurada corretamente com a rede virtual e a sub-rede apropriadas em seu aplicativo lógico padrão.
Se você usar zonas DNS privadas do Azure para os serviços de ponto de extremidade privados da sua conta de armazenamento, verifique se um link de rede virtual foi criado para a rede virtual integrada do seu aplicativo lógico.
Para obter mais informações, consulte Implantar aplicativo lógico padrão em uma conta de armazenamento atrás de um firewall usando pontos de extremidade de serviço ou privados.