Compartilhar via


Criar fluxos de trabalho de aplicativo lógico Standard para implantação híbrida em sua própria infraestrutura (versão prévia)

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

Observação

Essa funcionalidade está em versão prévia, incorre em encargos de uso e está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.

Para cenários em que você precisa usar, controlar e gerenciar sua própria infraestrutura, é possível criar fluxos de trabalho de aplicativo lógico Standard usando o modelo de implantação híbrida nos 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. Com o modelo híbrido, o fluxo de trabalho do aplicativo lógico Standard é alimentado pelo runtime dos Aplicativos Lógicos do Azure, que é hospedado no local como parte de uma extensão dos 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 de instruções mostra como criar e implantar um fluxo de trabalho de aplicativo lógico Standard usando o modelo de implantação híbrida depois de configurar os recursos locais necessários para hospedar seu aplicativo.

Limitações

  • A implantação híbrida para aplicativos lógicos Standard está disponível e tem suporte apenas nas mesmas regiões que os Aplicativos de Contêiner do Azure no AKS habilitado para Azure Arc.

  • Atualmente, os seguintes recursos não estão disponíveis nesta versão prévia:

    • Autenticação de identidade gerenciada
    • Acesso ao SAP por meio do conector integrado do SAP
    • Código personalizado em C# com o .NET Framework e a ação interna denominada Chamar função local neste aplicativo lógico
    • XSLT 1.0 para código personalizado

    Atualmente, os clusters Kubernetes habilitados para Azure Arc não oferecem suporte à autenticação de identidade gerenciada para conexões de API gerenciadas. Em vez disso, você deve criar seu próprio registro de aplicativo usando o Microsoft Entra ID. Para obter mais informações, siga estas etapas mais adiante neste guia.

  • 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 do aplicativo lógico no Visual Studio Code, adicione a seguinte configuração de aplicativo e forneça a cadeia de conexão da sua conta de armazenamento:

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

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 locais, que devem estar todos na mesma rede para a conectividade necessária:

    • Um cluster do Serviço de Kubernetes do Azure conectado ao Azure Arc
    • Um banco de dados SQL para armazenar localmente o histórico de execução do fluxo de trabalho, entradas e saídas para processamento
    • Um compartilhamento de arquivos SMB (Server Message Block) para armazenar localmente artefatos usados por seus fluxos de trabalho

    Para atender a esses requisitos, configure esses recursos no local para dar suporte à implantação híbrida de aplicativos lógicos Standard.

  • 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

Depois de atender aos pré-requisitos, 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 <Azure-subscription-name> 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 <logic-app-name> 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 <Azure-region> Uma região do Azure com suporte aos Aplicativos de Contêiner do Azure no AKS habilitado para Azure Arc.

    Este exemplo usa Leste dos EUA.
    Ambiente conectado de aplicativo de contêiner Sim <connected-environment-name> 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 <file-share-host-name> O nome do host para o compartilhamento de arquivos SMB.
    Caminho do compartilhamento de arquivo Sim <file-share-path> O caminho do compartilhamento de arquivo para o compartilhamento de arquivo SMB.
    Nome de usuário Sim <file-share-user-name> O nome de usuário do compartilhamento de arquivo SMB.
    Senha Sim <file-share-password> 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.

    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.

    Observação

    Existem vários problemas conhecidos no portal em torno de aplicativos lógicos Standard que usam a opção de hospedagem híbrida. Esses aplicativos lógicos aparecem com o rótulo Aplicativo Contêiner, que é diferente dos aplicativos lógicos Standard que usam a opção de hospedagem Plano de Serviço do Fluxo de Trabalho ou Ambiente do Serviço de Aplicativo V3. Para obter mais informações, confira Problemas conhecidos e solução de problemas — portal do Azure.

  8. No portal do Azure, no menu de recursos, 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.

    Observação

    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 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:

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

Para editar as configurações de CPU e memória do recurso de aplicativo lógico Standard, siga estas etapas:

  1. No portal do Azure, abra seu recurso de 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 CPU 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 (Gi) para atribuir à instância do contêiner. Você pode aumentar esse valor em 0,1 Gi até o valor máximo. A capacidade total em todas as instâncias de contêiner para esse aplicativo lógico é limitada a 4 Gi.
  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 seu recurso de 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

Para autenticar conexões de API gerenciadas em fluxos de trabalho de aplicativos lógicos Standard hospedados em clusters do Kubernetes habilitados para Azure Arc, crie seu próprio registro de aplicativo usando o Microsoft Entra ID. Em seguida, você pode adicionar os valores desse registro de aplicativo como variáveis de ambiente no seu recurso de aplicativo lógico Standard para autenticar suas conexões de API.

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
    • Segredo do cliente
  4. 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.

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

CLI do Azure

  1. Para criar o registro do aplicativo, use o comandoaz ad sp create.

  2. Para examinar todas as propriedades, use o comandoaz ad sp show.

  3. Na saída de ambos os comandos, localize e salve os seguintes valores, que você precisará mais tarde para autenticação de conexão:

    • ID do Cliente
    • ID de objeto
    • ID do locatário
    • Segredo do cliente
  4. Agora, adicione os valores salvos como variáveis de ambiente ao recurso de aplicativo lógico Standard.

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>
    WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>
  6. Quando terminar, selecione Salvar.

Armazenar e referenciar a ID do cliente e o segredo do cliente

Você pode armazenar a ID do cliente e os valores de segredo do cliente em seu recurso de aplicativo lógico como segredos e, em seguida, referenciar esses valores na guia Variáveis de ambiente.

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

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

  3. Na barra de ferramentas, selecione Adicionar.

  4. No painel Adicionar segredo, forneça as seguintes informações para cada segredo e selecione Adicionar:

    Chave Valor
    WORKFLOWAPP_AAD_CLIENTID <my-client-ID>
    WORKFLOWAPP_AAD_CLIENTSECRET <my-client-secret>

Problemas conhecidos e soluções de problemas

Portal do Azure

  • Seu aplicativo lógico Standard é implantado e aparece como um recurso de Aplicativos de Contêiner do Azure, mas o tipo aparece como Aplicativo Lógico (Híbrido).

  • O Azure inclui seu aplicativo lógico Standard na lista de recursos de Aplicativos de Contêiner, e não na lista de recursos de Aplicativos Lógicos.

  • Seu ambiente conectado aos Aplicativos de Contêiner do Azure lista seu aplicativo lógico Standard como tendo um Tipo de Aplicativo chamado Aplicativo Lógico Híbrido.

  • Para refletir as alterações no designer depois de salvar o fluxo de trabalho, talvez seja necessário atualizar ocasionalmente o designer.

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. No portal do Azure, acesse o recurso de aplicativo de contêiner para seu aplicativo lógico.

  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 o aplicativo tiver alguma falha, verifique se os pods do AKS estão sendo executados corretamente. No Windows PowerShell, execute os seguintes comandos:

    az aks get-credentials {resource-group-name} --name {aks-cluster-name} --admin
    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:

O cluster não tem nós suficientes

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 aumentar o número de nós e configurar a escala automática, siga estas etapas:

  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:

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, no Windows PowerShell, execute os seguintes comandos:

kubectl get csidrivers

Se a lista de resultados exibida não incluir smb.csi.k8s.io, em um prompt de comando do Windows, execute o seguinte comando:

helm repo add csi-driver-smb
help repo update helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0

Para verificar o status dos pods do Driver SMB do CSI, no prompt de comando do Windows, execute o seguinte comando:

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

Para obter mais informações, confira Drivers do CSI (Interface de Armazenamento de Contêiner) no AKS (Serviço de Kubernetes do Azure)