Partilhar via


Monitorar a integridade de fluxos de trabalho padrão nos Aplicativos Lógicos do Azure com Verificação de Integridade

Aplica-se a: Aplicativos Lógicos do Azure (Padrão)

Para ajudar os fluxos de trabalho do aplicativo lógico padrão a serem executados com alta disponibilidade e desempenho, configure o recurso Verificação de integridade no aplicativo lógico para monitorar a integridade do fluxo de trabalho. Esse recurso garante que seu aplicativo permaneça resiliente, fornecendo os seguintes benefícios:

  • Monitoramento proativo para que você possa encontrar e resolver problemas antes que eles afetem seus clientes.

  • Maior disponibilidade removendo instâncias não íntegras do balanceador de carga no Azure.

  • Recuperação automática substituindo instâncias não íntegras.

Como funciona a Verificação de Integridade nos Aplicativos Lógicos do Azure?

A Verificação de Integridade é um recurso da plataforma do Serviço de Aplicativo do Azure que redireciona solicitações de instâncias não íntegras e substitui essas instâncias se elas permanecerem não íntegras. Para um aplicativo lógico padrão, você pode especificar um caminho para um fluxo de trabalho de "integridade" criado para essa finalidade e para a plataforma do Serviço de Aplicativo executar ping em intervalos regulares. Por exemplo, o exemplo a seguir mostra o fluxo de trabalho mínimo básico:

A captura de tela mostra o fluxo de trabalho do aplicativo lógico padrão a ser usado como fluxo de trabalho de integridade.

Depois de habilitar a Verificação de Integridade, a plataforma do Serviço de Aplicativo executa ping no caminho do fluxo de trabalho especificado para todas as instâncias do aplicativo lógico em intervalos de 1 minuto. Se o aplicativo lógico exigir expansão, o Azure criará imediatamente uma nova instância. A plataforma do Serviço de Aplicativo executa ping no caminho do fluxo de trabalho novamente para garantir que a nova instância esteja pronta.

Se um fluxo de trabalho em execução em uma instância não responder ao ping após 10 solicitações, a plataforma do Serviço de Aplicativo determinará que a instância não está íntegra e removerá a instância desse aplicativo lógico específico do balanceador de carga no Azure. Com um mínimo de duas solicitações, você pode especificar o número necessário de solicitações com falha para determinar se uma instância não está íntegra. Para obter mais informações sobre como substituir o comportamento padrão, consulte Configuração: monitorar instâncias do Serviço de Aplicativo usando a Verificação de Integridade.

Depois que a Verificação de Integridade remove a instância não íntegra, o recurso continua executando ping na instância. Se a instância responder com um código de status íntegro, inclusive variando de 200 a 299, a Verificação de Integridade retornará a instância para o balanceador de carga. No entanto, se a instância permanecer não íntegra por uma hora, a Verificação de Integridade substituirá a instância por uma nova. Para obter mais informações, consulte O que o Serviço de Aplicativo faz com verificações de integridade.

Prerequisites

  • Uma conta e subscrição do Azure. Se não tiver uma subscrição, inscreva-se numa conta do Azure gratuita.

  • Um recurso de aplicativo lógico padrão com os seguintes atributos:

    • Um plano do Serviço de Aplicativo dimensionado para duas ou mais instâncias.

    • Um fluxo de trabalho de "integridade" que executa especificamente a verificação de integridade e os seguintes elementos:

      • Começa com o gatilho de solicitação chamado Quando uma solicitação HTTP é recebida.

      • Inclui a ação Solicitar chamada Resposta. Defina esta ação para retornar um código de status inclusive entre 200 e 299.

      Opcionalmente, você também pode fazer com que esse fluxo de trabalho execute outras verificações para garantir que os serviços dependentes estejam disponíveis e funcionem conforme o esperado. Como prática recomendada, certifique-se de que o caminho da verificação de integridade monitore componentes críticos em seu fluxo de trabalho. Por exemplo, se seu aplicativo depende de um banco de dados e sistema de mensagens, verifique se a Verificação de Integridade pode acessar esses componentes.

Limitations

  • O comprimento do caminho especificado deve ter menos de 65 caracteres.

  • As alterações no caminho especificado para a Verificação de Integridade fazem com que seu aplicativo lógico seja reiniciado. Para reduzir o impacto nos aplicativos de produção, configure e use slots de implantação.

  • A Verificação de integridade não segue redirecionamentos para o código de status 302. Portanto, evite redirecionamentos e certifique-se de selecionar um caminho que exista em seu aplicativo.

Configurar a verificação de integridade

  1. No portal do Azure, vá para o recurso do aplicativo lógico Padrão.

  2. No menu do aplicativo lógico, em Monitoramento, selecione Verificação de integridade. Na página Verificação de integridade , na guia Verificação de integridade , selecione Habilitar.

    A captura de tela mostra o portal do Azure, a página para verificação de integridade e a opção selecionada para Habilitar.

  3. Em Caminho da sonda de integridade, na caixa Caminho , insira um caminho de URL válido para seu fluxo de trabalho, por exemplo:

    /api/<workflow-name>/triggers/<request-trigger-name>/invoke?api-version=2022-05-01

  4. Guardar as suas alterações. Na barra de ferramentas, selecione Salvar.

  5. No recurso do aplicativo lógico, atualize o arquivo host.json seguindo estas etapas:

    1. No menu do aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Advanced Tools>Go.

    2. Na barra de ferramentas KuduPlus, no menu Depurar console, selecione CMD.

    3. Navegue até a pasta site/wwwroot e, ao lado do arquivo host.json , selecione Editar.

    4. No editor de arquivos host.json, adicione a propriedade Workflows.HealthCheckWorkflowName e o nome do fluxo de trabalho de integridade para habilitar a autenticação e a autorização da verificação de integridade, por exemplo:

      "extensions": {
          "workflow": {
              "settings": {
                  "Workflows.HealthCheckWorkflowName" : "<workflow-name>"
              }
          }
      }
      
    5. Quando terminar, selecione Guardar.

Troubleshooting

Depois de definir o caminho de integridade, meu fluxo de trabalho de integridade não é acionado.

  1. No menu do aplicativo lógico, selecione Diagnosticar e resolver problemas.

  2. Em Categorias de solução de problemas, selecione Disponibilidade e desempenho.

    A captura de tela mostra o portal do Azure, a página para Diagnosticar e resolver problemas e a opção selecionada para Disponibilidade e Desempenho.

  3. Localize e reveja a secção do código de estado.

    Se o código de status for 401, verifique os seguintes itens:

    • Confirme se a propriedade Workflows.HealthCheckWorkflowName e o nome do fluxo de trabalho de integridade aparecem corretamente.

    • Confirme se o caminho especificado corresponde ao fluxo de trabalho e ao nome do gatilho de solicitação .

Problemas de saúde comuns

Meu recurso de aplicativo lógico não tem fluxos de trabalho, mas o recurso ainda é dimensionado para várias instâncias, o que gera custos.

Esse comportamento pode acontecer se o recurso do aplicativo lógico não estiver íntegro ou, normalmente, quando o recurso não puder acessar a conta de armazenamento associada. Tente verificar se a conta de armazenamento tem uma configuração de rede que bloqueia o acesso ou se você tem uma política de firewall de rede que bloqueia o acesso.

Meu recurso de aplicativo lógico tem fluxos de trabalho, mas eles não estão sendo executados ou executados muito. No entanto, o recurso ainda é dimensionado para várias instâncias, o que gera custos.

  1. Verifique se o recurso pode acessar a conta de armazenamento associada.

    Por exemplo, a conta de armazenamento tem uma configuração de rede que bloqueia o acesso? Você tem uma política de firewall de rede que bloqueia o acesso?

  2. Se o fluxo de trabalho começar com um gatilho baseado em provedor de serviços, certifique-se de que o gatilho funcione com êxito conforme o esperado.

    • Um gatilho baseado em provedor de serviços com falha pode criar dimensionamento desnecessário, o que pode aumentar drasticamente os custos.

      Por exemplo, uma supervisão comum é definir um gatilho sem dar permissão ao aplicativo lógico ou acesso ao destino, como uma fila do Service Bus, contêiner de blob de armazenamento e assim por diante.

    • Certifique-se de monitorar esses gatilhos o tempo todo, para que você possa detetar e corrigir prontamente quaisquer problemas.

Meu fluxo de trabalho intermitentemente para de processar mensagens por horas, mas funciona bem na maioria das outras vezes.

Se seu aplicativo lógico padrão usa a opção de hospedagem chamada Plano de Serviço de Fluxo de Trabalho e não está hospedado em um Ambiente de Serviço de Aplicativo, verifique se o Monitoramento de Escala de Tempo de Execução está ativado e se Instâncias Sempre Prontas está definido como pelo menos 1.

  1. No portal do Azure, localize e abra seu aplicativo lógico, se ainda não estiver aberto.

  2. No menu do aplicativo lógico, em Configurações, selecione Configuração.

  3. Na guia Configurações de tempo de execução do fluxo de trabalho, ao lado de Monitoramento de escala de tempo de execução, selecione Ativado.

  4. Na barra de ferramentas da página Configuração , selecione Salvar.

  5. No menu do aplicativo lógico, em Configurações, selecione Dimensionamento (plano do Serviço de Aplicativo).

  6. Em Dimensionamento do aplicativo, verifique se o valor Instâncias sempre prontas não está definido como 0.