Criar fluxos de trabalho do aplicativo lógico Standard para implantação híbrida em sua própria infraestrutura

Aplica-se a: Aplicativos Lógicos do Azure (Standard)

Para cenários em que você precisa usar, controlar e gerenciar sua própria infraestrutura, crie fluxos de trabalho de aplicativos de lógica padrão usando o modelo híbrido de implantação no Aplicativos Lógicos do Azure. Esse modelo fornece recursos para que você crie e hospede soluções de integração para ambientes parcialmente conectados que exigem processamento local, armazenamento e acesso à rede. Sua infraestrutura pode incluir sistemas locais, nuvens privadas e nuvens públicas. Ao usar o modelo híbrido, seu fluxo de trabalho do Standard Logic App é alimentado pelo runtime do Aplicativos Lógicos do Azure, que é hospedado na sua infraestrutura como parte de uma extensão do Aplicativos de Contêiner do Azure.

Para obter uma visão geral da arquitetura que mostra onde os fluxos de trabalho do aplicativo lógico Standard são hospedados e executados em um ambiente parcialmente conectado, confira Configurar requisitos de infraestrutura para implantação híbrida de aplicativos lógicos Standard.

Este guia prático mostra como criar e implantar um fluxo de trabalho de aplicativo de lógica padrão usando o modelo híbrido de implantação após você configurar os recursos necessários para hospedar seu app.

Importante

O runtime e fluxos de trabalho locais do Aplicativos Lógicos do Azure que utilizam apenas dependências disponíveis localmente podem continuar rodando quando a conectividade do Azure for interrompida. Gerenciamento, implantação, monitoramento, operações de identidade e conectores gerenciados dependentes do Azure podem estar indisponíveis enquanto desconectados. Após 24 horas, você poderá perder os dados de logs, embora a execução local no ambiente de runtime continue. Para mais informações, veja Limitações para implantação híbrida.

Limitações

Para as regiões Azure atualmente suportadas, clusters Kubernetes suportados e limitações em toda a plataforma, veja Limitações para implantação híbrida.

As seguintes limitações se aplicam ao criar e operar aplicativos de lógica híbrida:

Limitação Descrição
Autenticação de identidade gerenciada para conexões API gerenciadas Conexões gerenciadas de API atualmente não suportam autenticação de identidade gerenciada em aplicativos de lógica híbrida. Você deve criar seu próprio cadastro de aplicativo usando o Microsoft Entra ID. Para obter mais informações, siga estas etapas mais adiante neste guia.
Gatilhos baseados em função Alguns gatilhos baseados em função, como o Blob do Azure, o Cosmos DB e os Hubs de Eventos, exigem uma conexão com a conta de armazenamento do Azure associada ao seu aplicativo lógico Standard. Se você usar gatilhos baseados em função, nas variáveis de ambiente do aplicativo lógico Standard no portal do Azure ou no arquivo local.settings.json do projeto de aplicativo lógico no Visual Studio Code, adicione a configuração de aplicativo chamada AzureWebJobsStorage e forneça a cadeia de conexão da conta de armazenamento:

"Values": {
"name": "AzureWebJobsStorage",
"value": "{storage-account-connection-string}"
}

Comportamento durante uma interrupção de conectividade do Azure

  • Os fluxos de trabalho ainda podem continuar em execução se o ambiente de execução e todas as dependências necessárias do fluxo de trabalho permanecerem disponíveis localmente.
  • Operações embutidas rodam com o tempo de execução local, mas qualquer serviço externo chamado por uma operação deve permanecer acessível.
  • Operações gerenciadas de conectores exigem conectividade com seus serviços hospedados no Azure.
  • O gerenciamento do portal do Azure, a implantação baseada no Azure, as operações de identidade e o envio de telemetria podem se tornar indisponíveis ou sofrer atrasos.
  • Se o tempo de execução permanecer desconectado após 24 horas, você pode perder os dados de registro gerados após esse tempo.

Se suas cargas de trabalho exigirem implantação, monitoramento, alertas, execução de reenvio ou operações de identidade durante uma desconexão prolongada, valide o comportamento para sua configuração específica com sua conta Microsoft ou equipe de produto.

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure.

  • Os seguintes recursos gerenciados pelo cliente, que devem existir todos dentro da mesma rede para a conectividade necessária:

    • Um cluster Kubernetes suportado que está conectado ao Azure Arc
    • Um banco de dados SQL para armazenar localmente o histórico de execução de fluxos de trabalho, entradas e saídas para processamento
    • Um compartilhamento de arquivos SMB (protocolo SMB) para armazenar localmente artefatos usados por seus fluxos de trabalho

    Para atender a esses requisitos, configure esses recursos para suportar a implantação híbrida em fluxos de trabalho padrão.

  • Para trabalhar no Visual Studio Code, você precisa da extensão de Aplicativos Lógicos do Azure (Standard) para o Visual Studio Code com os pré-requisitos relacionados.

    Dica

    Se você tiver uma nova instalação do Visual Studio Code, confirme se pode executar localmente um fluxo de trabalho Standard básico antes de tentar implantar em sua própria infraestrutura. Essa execução de teste ajuda a isolar todos os erros que possam existir em seu projeto de fluxo de trabalho Standard.

Criar seu aplicativo lógico Standard

Crie seu aplicativo lógico Standard para implantação híbrida seguindo estas etapas:

  1. Na caixa de pesquisa do portal do Microsoft Azure, insira Aplicativos lógicos e selecione Aplicativos lógicos.

  2. Na barra de ferramentas da página Aplicativos lógicos, selecione Adicionar.

  3. Na página Criar Aplicativo Lógico, em Standard, selecione Híbrido.

  4. Na página Criar Aplicativo Lógico (Híbrido), forneça as seguintes informações:

    Propriedade Obrigatório Valor Descrição
    Assinatura Sim < Nome da assinatura do Azure> Seu nome da assinatura do Azure.

    Este exemplo usa Pagamento Conforme o Uso.
    Grupo de recursos Sim < Azure-resource-group-name> O grupo de recursos do Azure onde você cria seu aplicativo híbrido e os recursos relacionados. O nome desse recurso precisa ser exclusivo em todas as regiões e pode conter somente letras, números, hífens (-), sublinhados (_), parênteses (()) e pontos (.).

    Esse exemplo cria um grupo de recursos chamado Hybrid-RG.
    Nome do Aplicativo Lógico Sim < nome do aplicativo lógico> Seu nome de aplicativo lógico, que deve ser exclusivo em todas as regiões e pode conter apenas letras minúsculas, números ou hifens (-).

    Esse exemplo usa o my-logic-app-hybrid.
    Região Sim < Região do Azure> Uma região do Azure que suporta implantação híbrida.

    Este exemplo usa Leste dos EUA.
    Ambiente conectado de aplicativo de contêiner Sim < nome-do-ambiente-conectado> O cluster do Kubernetes habilitado para Arc que você criou como o ambiente de implantação para seu aplicativo lógico. Para obter mais informações, confira Tutorial: Habilitar Aplicativos de Contêiner do Azure no Kubernetes habilitado para Azure Arc.
    Definir as configurações de armazenamento Sim Habilitado ou desabilitado Continua para a guia Armazenamento na página Criar Aplicativo Lógico (Híbrido).

    O exemplo a seguir mostra a página de criação do aplicativo lógico no portal do Azure com valores de exemplo:

    Captura de tela que mostra o portal do Azure e a página de criação do aplicativo lógico.

  5. Na página Armazenamento, forneça as seguintes informações sobre o provedor de armazenamento e o compartilhamento de arquivos SMB que você configurou anteriormente:

    Propriedade Obrigatório Valor Descrição
    Cadeia de Conexão SQL Sim < sql-server-connection-string> A cadeia de conexão do SQL Server que você salvou anteriormente. Para obter mais informações, confira Criar provedor de armazenamento do SQL Server.
    Nome do host Sim < nome-do-host-de-compartilhamento-de-arquivo> O nome do host para o compartilhamento de arquivos SMB.
    Caminho do compartilhamento de arquivo Sim < caminho-de-compartilhamento-de-arquivos> O caminho do compartilhamento de arquivo para o compartilhamento de arquivo SMB.
    Nome de usuário Sim <<> O nome de usuário do compartilhamento de arquivo SMB.
    Senha Sim < senha-compartilhamento de arquivos> A senha do compartilhamento de arquivo SMB.
  6. Quando você terminar, selecione Examinar + Criar. Confirme as informações fornecidas e selecione Criar.

  7. Depois que o Azure concluir a implantação, selecione Ir para o recurso.

    O portal do Azure abre seu recurso de aplicativo lógico, por exemplo:

    A captura de tela mostra o portal do Azure com o aplicativo lógico Standard para implantação híbrida criado como um aplicativo de contêiner.

  8. No menu de recursos do aplicativo lógico, em Fluxos de Trabalho, selecione Fluxos de Trabalho.

  9. Na barra de ferramentas da página Fluxos de Trabalho, selecione Adicionar para adicionar um fluxo de trabalho vazio com estado ou sem estado.

  10. Depois que o designer for aberto, crie seu fluxo de trabalho adicionando um gatilho e ações.

    Para obter mais informações, confira Criar um fluxo de trabalho com um gatilho e ações.

Controle de versão para implantações híbridas

Um aplicativo lógico Standard com a opção de hospedagem híbrida cria automaticamente uma nova revisão, que é um conceito de controle de versão dos Aplicativos de Contêiner do Azure, sempre que você salva alterações em um fluxo de trabalho filho. Essa revisão pode levar algum tempo para ser ativada, o que significa que, depois de salvar as alterações, talvez seja necessário aguardar alguns instantes antes de testar o fluxo de trabalho.

Se suas alterações ainda não aparecerem no fluxo de trabalho, você pode verificar se a revisão existe:

  1. No portal do Azure, abra o recurso. No menu de recursos, em Revisões, selecione Revisões e réplicas.

  2. Na página Revisões e réplicas, na guia Revisões ativas, verifique se uma nova revisão aparece na lista.

Para saber mais, consulte os recursos a seguir:

Configurar telemetria aprimorada ou OpenTelemetry para monitoramento de desempenho

Você pode configurar a coleta de telemetria aprimorada no Application Insights para seu aplicativo lógico Standard e, em seguida, exibir os dados coletados depois que o fluxo de trabalho concluir uma execução. Essa funcionalidade oferece uma experiência mais simples para obter insights sobre seus fluxos de trabalho e mais controle sobre a filtragem de eventos na fonte de dados, o que ajuda a reduzir os custos de armazenamento. Essas melhorias focam as métricas de desempenho em tempo real que fornecem insights sobre a integridade e o comportamento do sistema.

Para cenários locais e parcialmente conectados, você pode configurar seu aplicativo lógico Standard para emitir telemetria com base nas configurações de aplicativo com suporte do OpenTelemetry que você define para o ambiente específico. Por padrão, esses dados de telemetria são enviados para o Application Insights. Para obter mais informações, consulte Habilitar telemetria aprimorada no Application Insights para fluxos de trabalho Standard nos Aplicativos Lógicos do Azure.

O Application Insights requer conectividade Azure. Durante a interrupção da conectividade, a entrega de telemetria pode enfrentar atrasos, e você pode perder os dados de registro gerados após 24 horas. Valide qualquer requisito de monitoramento local e alertas em relação ao destino e à configuração da telemetria que você utiliza.

Alterar a alocação de vCPU e memória no portal do Azure

Você pode editar as configurações de vCPU e memória para o recurso de aplicativo lógico Standard. Essas alterações afetam o custo de cobrança das cargas de trabalho do aplicativo lógico Standard.

  1. No portal do Azure, abra o recurso do aplicativo lógico padrão.

  2. No menu de recursos, em Configurações, selecione Contêineres.

  3. Na barra de ferramentas da página Contêineres, selecione Editar e implantar, que abre o painel Editar um contêiner.

  4. Na guia Propriedades, em Alocação de recursos do contêiner, altere os seguintes valores para adequá-los ao seu cenário:

    Propriedade Valor Descrição
    Núcleos de CPU - Padrão: 1
    - Mínimo: 0,25
    - Máximo: 2
    Determina os núcleos de vCPU a serem atribuídos à instância de contêiner. Você pode aumentar esse valor em 0,25 núcleos até o valor máximo. O número total em todas as instâncias de contêiner para esse aplicativo lógico é limitado a dois núcleos.
    Memória - Padrão: 2
    - Mínimo: 0,1
    - Máximo: 4
    Determina a capacidade de memória em gibibytes (GiB) a ser atribuída à instância do contêiner. Você pode aumentar esse valor em 0,1 GiB até o valor máximo. A capacidade total em todas as instâncias de contêiner para este aplicativo lógico é limitada a 4 GiB.
  5. Quando terminar, selecione Salvar.

Alterar a escala de réplicas no portal do Azure

Você pode controlar a escala automática para o intervalo de réplicas que são implantadas em resposta a um evento de gatilho. Uma réplica é uma nova instância de uma versão ou revisão de recurso de aplicativo lógico. Para alterar os valores mínimo e máximo desse intervalo, você pode modificar as regras de escala para determinar os tipos de eventos que disparam a escala. Para saber mais, confira Definir regras de escala nos Aplicativos de Contêiner do Azure.

  1. No portal do Azure, abra o recurso do aplicativo lógico padrão.

  2. No menu de recursos, em Configurações, selecione Escala.

  3. Na página Escala, em Configuração da regra de escala, altere os seguintes valores para se ajustar ao seu cenário:

    Propriedade Valor Descrição
    Mínimo de réplicas - Padrão: 1
    - Mínimo: 0
    - Máximo: 1000
    Determina o número mínimo de réplicas permitidas para a revisão em um determinado momento. Esse valor substitui as regras de escala e deve ser menor que o número máximo de réplicas.
    Máximo de réplicas - Padrão: 30
    - Mínimo: 0
    - Máximo: 1000
    Determina o número máximo de réplicas permitidas para a revisão em um determinado momento. Esse valor substitui as regras de escala.
  4. Quando terminar, selecione Salvar.

Controlar o tráfego de entrada para seu aplicativo lógico no portal do Azure

Você pode expor seu aplicativo lógico à Web pública, à sua rede virtual e a outros aplicativos lógicos em seu ambiente habilitando a entrada. O Azure impõe configurações de entrada por meio de um conjunto de regras que controlam o roteamento do tráfego externo e interno para seu aplicativo lógico. Ao habilitar a entrada, não é necessário criar um Azure Load Balancer, um endereço IP público ou qualquer outro recurso do Azure para habilitar solicitações HTTP ou tráfego TCP de entrada. Para obter mais informações, confira Entrada em Aplicativos de Contêiner.

Observação

Ao habilitar a entrada, todo o tráfego será direcionado para sua revisão mais recente por padrão. Vá para a página Gerenciamento de Revisão para alterar as configurações de tráfego.

  1. No menu de recursos, em Configurações, selecione Entrada.

  2. Na página Entrada, ao lado de Entrada, selecione a caixa Habilitada.

  3. Com base em seu cenário, configure as opções restantes.

    Para saber mais, confira a seguinte documentação:

Configurar a autenticação para conexões de API gerenciada

Conexões gerenciadas de API atualmente não suportam autenticação de identidade gerenciada em aplicativos de lógica híbrida. Para autenticar essas conexões, você deve criar seu próprio registro de aplicativo usando o Microsoft Entra ID. Você pode então adicionar os valores deste registro de aplicativo como variáveis de ambiente em seu recurso de Aplicativo Lógico Standard. Esse modelo de autenticação requer conectividade ao Microsoft Entra ID.

Criar um registro de aplicativo com o Microsoft Entra ID

portal do Azure

  1. No portal do Azure, siga o Início Rápido: Registrar um aplicativo na plataforma de identidade da Microsoft para criar um registro de aplicativo.

  2. Após a conclusão da criação, localize seu novo registro de aplicativo no portal.

  3. No menu de recursos, selecione Visão Gerale salve os seguintes valores, que você precisará mais tarde para autenticação de conexão:

    • ID do Cliente
    • ID do locatário
  4. Na barra lateral de recursos, selecione Certificados & segredos>Segredos do cliente Novo>segredo do cliente.

  5. Crie o segredo do cliente e salve imediatamente o Valor do segredo. O valor não aparece novamente depois que você sai da página.

  6. Para a ID do objeto, siga estas etapas:

    1. Na página Visão Geral, selecione o link Aplicativo gerenciado no diretório local para o registro do aplicativo, conforme mostrado:

      A captura de tela mostra o registro do aplicativo com o link selecionado para o aplicativo gerenciado no diretório local.

    2. Na página que é aberta, copie e salve o valor da ID do objeto:

      A captura de tela mostra o registro do aplicativo com a ID do objeto selecionada.

  7. Agora, adicione os valores salvos como variáveis de ambiente ao recurso de aplicativo lógico Standard.

CLI do Azure

  1. Para criar um registro de aplicativo e seu principal de serviço sem atribuir um papel no Azure, execute o seguinte comando:

    az ad sp create-for-rbac \
       --name <app-registration-name> \
       --skip-assignment
    
  2. A partir da saída do comando, salve os valores appId, password e tenant como os valores de ID do cliente, segredo do cliente e ID do locatário. O segredo do cliente aparece apenas na saída do comando.

  3. Obtenha a ID de objeto da entidade de serviço:

    az ad sp show \
       --id <client-ID> \
       --query id \
       --output tsv
    
  4. Agora, adicione os valores salvos como variáveis de ambiente ao recurso de aplicativo lógico Standard.

Para obter mais informações, consulte:

Adicionar valores de registro de aplicativo ao aplicativo lógico Standard

  1. No portal do Azure, acesse seu recurso de aplicativo lógico Standard.

  2. No menu de recursos, em Configurações, selecione Contêineres e, em seguida, selecione a guia Variáveis de ambiente.

    Para obter mais informações sobre as configurações do aplicativo e do host, confira Editar configurações do aplicativo e do host.

  3. Na barra de ferramentas, selecione Editar e implantar.

  4. No painel Editar um contêiner, selecione Variáveis de ambiente e, em seguida, selecione Adicionar.

  5. Na tabela a seguir, adicione cada variável de ambiente com o valor especificado:

    Variável de ambiente Valor
    WORKFLOWAPP_AAD_CLIENTID < my-client-ID>
    WORKFLOWAPP_AAD_OBJECTID < my-object-ID>
    WORKFLOWAPP_AAD_TENANTID < my-tenant-ID>
  6. Quando terminar, selecione Salvar.

Armazenar e referenciar o segredo do cliente

Armazene o segredo do cliente como um segredo no recurso do seu app Logic. Faça referência a esse segredo da variável de ambiente WORKFLOWAPP_AAD_CLIENTSECRET .

Importante

Rotacione o segredo antes de expirar.

  1. No portal do Azure, acesse o recurso Aplicativo lógico.

  2. Na barra lateral do app Logic, em Configurações, selecione Segredos.

  3. Na barra de ferramentas, selecione Adicionar.

  4. No painel Adicionar segredo , forneça as seguintes informações e então selecione Adicionar:

    Chave Valor
    WORKFLOWAPP_AAD_CLIENTSECRET < Meu-Cliente-Segredo>
  5. Na barra lateral do app Logic, em Configurações, selecione Containers e depois selecione a aba Variáveis de Ambiente .

  6. Na barra de ferramentas, selecione Editar e implantar.

  7. Adicione a variável de ambiente WORKFLOWAPP_AAD_CLIENTSECRET , selecione a opção de referenciar um segredo e selecione o segredo que você criou.

  8. Quando terminar, selecione Salvar.

Solução de problemas e problemas conhecidos

A seção a seguir descreve problemas e diretrizes conhecidos no momento para solucionar problemas comuns.

Problemas gerais de configuração de ambiente ou implantação do portal

Para ajudá-lo a diagnosticar e depurar problemas com a configuração do ambiente ou falhas de implantação do portal, você pode tentar executar o script troubleshoot.ps1 PowerShell fornecido para a opção de implantação híbrida.

  1. Acesse o repositório GitHub do Aplicativos Lógicos do Azure: pasta scripts/hybrid.

  2. Copie o arquivo troubleshoot.ps1 para uma pasta no mesmo local que a implantação do aplicativo lógico.

  3. Execute o script usando o PowerShell.

Cluster do Kubernetes habilitados para Arc

Em cenários raros, você pode notar um volume de memória alto em seu cluster. Para evitar esse problema, expanda ou adicione escala automática para pools de nós.

O host de funções não está em execução

Depois de implantar seu aplicativo lógico Standard, confirme se o aplicativo está sendo executado corretamente.

  1. Abra o recurso de aplicativo lógico no portal do Azure.

  2. No menu de recursos, selecione Visão geral.

  3. Na página Visão Geral, ao lado do campo URL do Aplicativo, selecione a URL do recurso.

    Se o aplicativo estiver sendo executado corretamente, uma janela do navegador será aberta e mostrará a seguinte mensagem:

    Captura de tela que mostra o navegador e o aplicativo lógico em execução como um site.

    Caso contrário, se seu aplicativo apresentar falhas, verifique se seus pods do Kubernetes estão funcionando corretamente. Certifique-se de que kubectl use o contexto do seu cluster e, em seguida, execute os seguintes comandos:

    kubectl get ns
    kubectl get pods -n logicapps-aca-ns
    kubectl describe pod {logic-app-pod-name} -n logicapps-aca-ns 
    

    Para saber mais, confira a seguinte documentação:

Cluster não tem capacidade suficiente

Se você executou o comando anterior e recebe um aviso semelhante ao exemplo a seguir, o cluster não tem nós suficientes para processamento:

Warning: FailedScheduling  4m52s (x29 over 46m)  default-scheduler  0/2 nodes are available: 2 Too many pods. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod.

Para AKS, aumente o número de nós e configure o autoescalonamento seguindo estes passos:

  1. No portal do Azure, acesse sua instância de serviço do Kubernetes.

  2. No menu de instância, em Configurações, selecione Pools de nós.

  3. Na barra de ferramentas da página de Ferramentas de nós, selecione + Adicionar pool de nós.

Para saber mais, confira a seguinte documentação:

Para OpenShift ou RKE2, use o procedimento suportado para a distribuição do Kubernetes para aumentar a capacidade.

Driver CSI (Interface de Armazenamento de Contêiner SMB) não instalado

Depois de executar o comando anterior kubectl describe pod, se o seguinte aviso for exibido, confirme se o driver CSI do compartilhamento de arquivos SMB está instalado corretamente:

Warning FailedScheduling 5m16s (x2 over 5m27s)  default-scheduler 0/14 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/14 nodes are available: 14 Preemption is not helpful for scheduling.

Normal NotTriggerScaleUp 9m49s (x31 over 14m) cluster-autoscaler pod didn't trigger scale-up: 3 pod has unbound immediate PersistentVolumeClaims

Para confirmar, execute o seguinte comando:

kubectl get csidrivers

Se os resultados não incluírem smb.csi.k8s.io, siga as instruções específicas de distribuição para instalar o driver SMB.

Para verificar o status do pod do driver CSI SMB, execute o seguinte comando:

kubectl --namespace=kube-system get pods --selector="app.kubernetes.io/name=csi-driver-smb" --watch