Partilhar via


Criar um fluxo de trabalho de aplicativo lógico padrão em Aplicativos Lógicos do Azure de locatário único usando o Visual Studio Code

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

Este guia de instruções mostra como criar um fluxo de trabalho de integração de exemplo que é executado em Aplicativos Lógicos do Azure de locatário único usando o Visual Studio Code com a extensão Azure Logic Apps (Standard). Antes de criar esse fluxo de trabalho, você criará um recurso de aplicativo lógico padrão, que fornece os seguintes recursos:

  • Seu aplicativo lógico pode incluir vários fluxos de trabalho com e sem monitoração de estado.

  • Os fluxos de trabalho no mesmo aplicativo lógico e locatário são executados no mesmo processo que o tempo de execução dos Aplicativos Lógicos do Azure, portanto, eles compartilham os mesmos recursos e fornecem melhor desempenho.

  • Você pode criar, executar e testar fluxos de trabalho localmente usando o ambiente de desenvolvimento do Visual Studio Code.

    Quando estiver pronto, você poderá implantar seu aplicativo lógico no Azure, onde seu fluxo de trabalho poderá ser executado no ambiente de Aplicativos Lógicos do Azure de locatário único ou em um Ambiente do Serviço de Aplicativo v3 (somente planos do Serviço de Aplicativo baseados no Windows). Você também pode implantar e executar seu fluxo de trabalho em qualquer lugar que o Kubernetes possa executar, incluindo o Azure, o Serviço Kubernetes do Azure, no local ou até mesmo outros provedores de nuvem, devido ao tempo de execução em contêiner dos Aplicativos Lógicos do Azure.

    Nota

    A implantação de seu aplicativo lógico em um cluster Kubernetes está atualmente em visualização pública.

    Para obter mais informações sobre os Aplicativos Lógicos do Azure de locatário único, consulte Locatário único versus multilocatário nos Aplicativos Lógicos do Azure.

Embora o fluxo de trabalho de exemplo seja baseado na nuvem e tenha apenas duas etapas, você pode criar fluxos de trabalho a partir de centenas de operações que podem conectar uma ampla gama de aplicativos, dados, serviços e sistemas na nuvem, no local e em ambientes híbridos. O fluxo de trabalho de exemplo começa com o gatilho Solicitação interno e segue com uma ação do Office 365 Outlook. O gatilho cria um ponto de extremidade chamável para o fluxo de trabalho e aguarda uma solicitação HTTPS de entrada de qualquer chamador. Quando o gatilho recebe uma solicitação e é acionado, a próxima ação é executada enviando e-mail para o endereço de e-mail especificado junto com as saídas selecionadas do gatilho.

Gorjeta

Se não tiver uma conta do Office 365, pode utilizar qualquer outra ação disponível que possa enviar mensagens a partir da sua conta de e-mail, por exemplo, Outlook.com.

Para criar este fluxo de trabalho de exemplo usando o portal do Azure, siga as etapas em Criar fluxos de trabalho de integração usando os Aplicativos Lógicos do Azure de locatário único e o portal do Azure. Ambas as opções fornecem a capacidade de desenvolver, executar e implantar fluxos de trabalho de aplicativos lógicos nos mesmos tipos de ambientes. No entanto, com o Visual Studio Code, você pode desenvolver, testar e executar fluxos de trabalho localmente em seu ambiente de desenvolvimento.

Captura de tela que mostra o Visual Studio Code, o projeto do aplicativo lógico e o fluxo de trabalho.

À medida que progride, você concluirá estas tarefas de alto nível:

  • Crie um projeto para seu aplicativo lógico e um fluxo de trabalho com monitoração de estado em branco.
  • Adicione um gatilho e uma ação.
  • Execute, teste, depure e revise o histórico de execução localmente.
  • Encontre detalhes do nome de domínio para acesso ao firewall.
  • Implante no Azure, o que inclui habilitar opcionalmente o Application Insights.
  • Gerencie seu aplicativo lógico implantado no Visual Studio Code e no portal do Azure.
  • Habilite o histórico de execução para fluxos de trabalho sem monitoração de estado.
  • Habilite ou abra o Application Insights após a implantação.

Pré-requisitos

Acesso e conectividade

  • Se você planeja criar localmente projetos de aplicativo lógico padrão e executar fluxos de trabalho usando apenas os conectores internos que são executados nativamente no tempo de execução dos Aplicativos Lógicos do Azure, não precisará dos seguintes requisitos. No entanto, certifique-se de que tem a seguinte conectividade e credenciais de conta do Azure para publicar ou implementar o seu projeto a partir do Visual Studio Code para o Azure, utilizar os conectores geridos que são executados no Azure global ou aceder a recursos e fluxos de trabalho da aplicação lógica padrão já implementados no Azure:

    • Acesso à Internet para que você possa baixar os requisitos, conectar-se do Visual Studio Code à sua conta do Azure e publicar do Visual Studio Code no Azure.

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

  • Para criar o mesmo fluxo de trabalho de exemplo neste artigo, você precisa de uma conta de email do Office 365 Outlook que use uma conta corporativa ou de estudante da Microsoft para entrar.

    Se você escolher um conector de e-mail diferente, como Outlook.com, ainda poderá seguir o exemplo, e as etapas gerais gerais serão as mesmas. No entanto, suas opções podem diferir em alguns aspetos. Por exemplo, se utilizar o conector Outlook.com, utilize a sua conta Microsoft pessoal para iniciar sessão.

Ferramentas

  1. Baixe e instale o Visual Studio Code, que é gratuito.

  2. Baixe e instale a extensão da Conta do Azure para Visual Studio Code para que você tenha uma única experiência comum para entrada no Azure e filtragem de assinatura em todas as extensões do Azure no Visual Studio Code. Este guia de instruções inclui etapas que usam essa experiência.

  3. Baixe e instale as seguintes dependências do Visual Studio Code para seu sistema operacional específico usando qualquer um dos métodos:

    Instalar todas as dependências automaticamente

    A partir da versão 2.81.5, a extensão Aplicativos Lógicos do Azure (Padrão) para Visual Studio Code inclui um instalador de dependência que instala automaticamente todas as dependências necessárias em uma nova pasta binária e deixa todas as dependências existentes inalteradas. Para obter mais informações, consulte Introdução mais facilmente com a extensão Aplicativos Lógicos do Azure (Padrão) para Visual Studio Code.

    Esta extensão inclui as seguintes dependências:

    Dependency Description
    C# para o Visual Studio Code Permite que a funcionalidade F5 execute seu fluxo de trabalho.
    Azurite para Visual Studio Code Fornece um armazenamento de dados local e emulador para usar com o Visual Studio Code para que você possa trabalhar em seu projeto de aplicativo lógico e executar seus fluxos de trabalho em seu ambiente de desenvolvimento local. Se não quiser que o Azurite inicie automaticamente, pode desativar esta opção:

    1. No menu Arquivo, selecione Configurações de preferências>.

    2. Na guia Usuário, selecione Extensões>Aplicativos Lógicos do Azure (Padrão).

    3. Encontre a configuração chamada Azure Logic Apps Standard: Auto Start Azurite e desmarque a caixa de seleção selecionada.
    SDK do .NET 6.x.x Inclui o .NET Runtime 6.x.x, um pré-requisito para o tempo de execução dos Aplicativos Lógicos do Azure (Padrão).
    Ferramentas Principais do Azure Functions - versão 4.x Instala a versão baseada no seu sistema operativo (Windows, macOS ou Linux).

    Essas ferramentas incluem uma versão do mesmo tempo de execução que alimenta o tempo de execução do Azure Functions, que a extensão Aplicativos Lógicos do Azure (Padrão) usa no Visual Studio Code.
    Node.js versão 16.x.x, a menos que uma versão mais recente já esteja instalada Necessário para habilitar a ação Inline Code Operations que executa JavaScript.

    O instalador não executa as seguintes tarefas:

    • Verifique se as dependências necessárias já existem.
    • Instale apenas as dependências ausentes.
    • Atualize versões mais antigas de dependências existentes.
    1. Baixe e instale a extensão Azure Logic Apps (Standard) para Visual Studio Code, começando com a versão 2.81.5).

    2. No Visual Studio Code, na barra de atividades, selecione Extensões. (Teclado: pressione Ctrl+Shift+X)

    3. No painel Extensões, abra o menu de reticências (...) e selecione Instalar a partir do VSIX.

    4. Localize e selecione o arquivo VSIX baixado.

      Após a conclusão da instalação, a extensão ativa e executa automaticamente o comando binários de dependência Validar e instalar. Para visualizar os logs de processo, abra a janela Saída .

    5. Quando o seguinte prompt for exibido, selecione Sim (Recomendado) para confirmar que deseja instalar automaticamente as dependências necessárias:

      A captura de tela mostra o prompt para instalar dependências automaticamente.

    6. Recarregue o código do Visual Studio, se necessário.

    7. Confirme se as dependências aparecem corretamente na seguinte pasta:

      C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies\<dependency-name>

    8. Confirme as seguintes configurações de extensão no Visual Studio Code:

      1. No menu Arquivo, selecione Configurações de preferências>.

      2. Na guia Usuário, selecione Extensões>Aplicativos Lógicos do Azure (Padrão).

      3. Analise as seguintes configurações:

        Configuração de extensão Value
        Caminho das dependências C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies
        Tempo limite de dependência 60 segundos
        Caminho binário Dotnet C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies\DotNetSDK\dotnet.exe
        Caminho binário das ferramentas principais do func C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies\FuncCoreTools\func
        Caminho binário JS do nó C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies\NodeJs\node
        Início automático do Azurite Ativado(a)
        Tempo de design de início automático Ativado(a)
    9. Se você tiver um projeto de aplicativo lógico existente com tarefas personalizadas armazenadas no arquivo .vscode/tasks.json, salve o arquivo tasks.json em outro lugar antes de abrir o projeto.

      Ao abrir seu projeto, você será solicitado a atualizar tasks.json arquivo para usar as dependências necessárias. Se você optar por continuar, a extensão substituirá o arquivo tasks.json .

    10. Quando você abre seu projeto de aplicativo lógico, as seguintes notificações aparecem:

      Notificação Ação
      Sempre iniciar o processo de tempo de design em segundo plano no lançamento? Para abrir o designer de fluxo de trabalho mais rapidamente, selecione Sim (Recomendado).
      Configurar o Azurite para iniciar automaticamente no lançamento do projeto? Para que o armazenamento Azurite seja iniciado automaticamente quando o projeto for aberto, selecione Ativar AutoStart. Na parte superior do Visual Studio Code, na janela de comando exibida, pressione enter para aceitar o caminho padrão:

      C:\Users\<seu-nome-de-usuário>\.azurelogicapps\.azurite

    Problemas conhecidos com a pré-visualização

    • Se você optou por instalar automaticamente todas as dependências em um computador que não tem nenhuma versão do SDK do .NET Core, a seguinte mensagem será exibida:

      "O SDK do .NET Core não pode ser localizado: Erro ao executar dotnet -- info: Erro: Falha no comando: dotnet --info 'dotnet não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes. 'dotnet' não é reconhecido como um comando interno ou externo, programa operável ou ficheiro batch. . A depuração do .NET Core não será habilitada. Verifique se o SDK do .NET Core está instalado e no caminho."

      Você recebe essa mensagem porque o .NET Core Framework ainda está sendo instalado quando a extensão é ativada. Você pode optar com segurança por desativar essa mensagem.

      Se você tiver problemas para abrir um projeto de aplicativo lógico existente ou iniciar a tarefa de depuração (tasks.json) para o início do host func e essa mensagem for exibida, siga estas etapas para resolver o problema:

      1. Adicione o caminho binário dotnet à variável PATH do seu ambiente.

        1. Na barra de tarefas do Windows, na caixa de pesquisa, insira variáveis de ambiente e selecione Editar as variáveis de ambiente do sistema.

        2. Na caixa Propriedades do Sistema, na guia Avançado, selecione Variáveis de Ambiente.

        3. Na caixa Variáveis de Ambiente, na lista Variáveis de usuário para <seu nome> de usuário, selecione CAMINHO e, em seguida, selecione Editar.

        4. Se o seguinte valor não aparecer na lista, selecione Novo para adicionar o seguinte valor:

          C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies\DotNetSDK

        5. Quando tiver terminado, selecione OK.

      2. Feche todas as janelas do Visual Studio Code e reabra seu projeto.

    • Se você tiver problemas para instalar e validar dependências binárias, por exemplo:

      • Problemas de permissões do Linux
      • Você recebe o seguinte erro: <Arquivo ou caminho> não existe
      • A validação fica presa no <nome> da dependência.

      Siga estas etapas para executar o comando Validar e instalar dependências binárias novamente:

      1. No menu Exibir, selecione Paleta de comandos.

      2. Quando a janela de comando aparecer, digite e execute o comando Validar e instalar dependências binárias.

    • Se você não tiver o .NET Core 7 ou uma versão posterior instalada e abrir um espaço de trabalho de Aplicativos Lógicos do Azure que contenha um projeto do Azure Functions, receberá a seguinte mensagem:

      Houve problemas ao carregar o projeto [function-name].csproj. Consulte o log para obter detalhes.

      Esse componente ausente não afeta o projeto do Azure Functions, portanto, você pode ignorar essa mensagem com segurança.

    Instale cada dependência separadamente

    Dependency Description
    SDK do .NET 6.x.x Inclui o .NET Runtime 6.x.x, um pré-requisito para o tempo de execução dos Aplicativos Lógicos do Azure (Padrão).
    Ferramentas Principais do Azure Functions - versão 4.x - Windows: Use a versão do Microsoft Installer (MSI), que é func-cli-X.X.XXXX-x*.msi.
    - macOS
    - Linux

    Essas ferramentas incluem uma versão do mesmo tempo de execução que alimenta o tempo de execução do Azure Functions, que a extensão Aplicativos Lógicos do Azure (Padrão) usa no Visual Studio Code.

    Se você tiver uma instalação anterior a essas versões, desinstale essa versão primeiro ou certifique-se de que a variável de ambiente PATH aponte para a versão que você baixa e instala.
    Node.js versão 16.x.x, a menos que uma versão mais recente já esteja instalada Necessário para habilitar a ação Inline Code Operations que executa JavaScript.

    Nota: Para Windows, transfira a versão MSI. Se você usar a versão ZIP em vez disso, terá que disponibilizar manualmente Node.js usando uma variável de ambiente PATH para seu sistema operacional.
  4. Se você já instalou a versão da extensão de Aplicativos Lógicos do Azure (Padrão) que instala automaticamente todas as dependências (visualização), ignore esta etapa. Caso contrário, baixe e instale a extensão Azure Logic Apps (Standard) para Visual Studio Code.

    1. No Visual Studio Code, na barra de ferramentas esquerda, selecione Extensões.

    2. Na caixa de pesquisa de extensões, insira azure logic apps standard. Na lista de resultados, selecione Instalação de Aplicativos Lógicos do Azure (Padrão). >

      Após a conclusão da instalação, a extensão aparece na lista Extensões: Instalado .

      A captura de tela mostra o Visual Studio Code com a extensão Azure Logic Apps (Standard) instalada.

      Gorjeta

      Se a extensão não aparecer na lista instalada, tente reiniciar o Visual Studio Code.

    Atualmente, você pode ter as extensões Consumo (multilocatário) e Standard (locatário único) instaladas ao mesmo tempo. As experiências de desenvolvimento diferem umas das outras em alguns aspetos, mas sua assinatura do Azure pode incluir os tipos de aplicativo lógico Standard e Consumption. No Visual Studio Code, a janela do Azure mostra todos os aplicativos lógicos implantados e hospedados no Azure em sua assinatura do Azure, mas organiza seus aplicativos das seguintes maneiras:

    • Seção Aplicativos lógicos (Consumo): Todos os aplicativos lógicos de consumo em sua assinatura.

    • Seção Recursos : Todos os aplicativos lógicos padrão em sua assinatura. Anteriormente, esses aplicativos lógicos apareciam na seção Aplicativos lógicos (padrão), que agora foi movida para a seção Recursos.

  5. Para executar localmente gatilhos e ações baseados em webhook, como o gatilho HTTP Webhook interno, no Visual Studio Code, você precisa configurar o encaminhamento para a URL de retorno de chamada.

  6. Se você criar seus recursos de aplicativo lógico com configurações que suportam o uso do Application Insights, poderá opcionalmente habilitar o registro e o rastreamento de diagnósticos para seu recurso de aplicativo lógico. Você pode fazer isso ao criar seu aplicativo lógico ou após a implantação. Você precisa ter uma instância do Application Insights, mas pode criar esse recurso com antecedência, ao criar seu aplicativo lógico ou após a implantação.

  7. Instale ou use uma ferramenta que possa enviar solicitações HTTP para testar sua solução, por exemplo:

    Atenção

    Para cenários em que você tem dados confidenciais, como credenciais, segredos, tokens de acesso, chaves de API e outras informações semelhantes, certifique-se de usar uma ferramenta que proteja seus dados com os recursos de segurança necessários, funcione offline ou localmente, não sincronize seus dados com a nuvem e não exija que você entre em uma conta online. Dessa forma, você reduz o risco de exposição de dados confidenciais ao público.

Configurar o Visual Studio Code

  1. Para certificar-se de que todas as extensões estão instaladas corretamente, recarregue ou reinicie o Visual Studio Code.

  2. Confirme se o Visual Studio Code localiza e instala automaticamente as atualizações de extensão para que todas as suas extensões obtenham as atualizações mais recentes. Caso contrário, você terá que desinstalar manualmente a versão desatualizada e instalar a versão mais recente.

    1. No menu Arquivo, vá para Configurações de Preferências > .

    2. Na guia Usuário, vá para Extensões de recursos > .

    3. Confirme se a opção Verificar atualizações automáticas está selecionada e se Atualização automática está definida como Todas as extensões.

  3. Confirme se a configuração Azure Logic Apps Standard: Project Runtime para a extensão Azure Logic Apps (Standard) está definida para a versão ~4:

    Nota

    Esta versão é necessária para usar as ações Inline Code Operations.

    1. No menu Arquivo, vá para Configurações de Preferências > .

    2. Na guia Usuário, vá para > Extensões > Aplicativos Lógicos do Azure (Padrão).

      Por exemplo, você pode encontrar a configuração Azure Logic Apps Standard: Project Runtime aqui ou usar a caixa de pesquisa para encontrar outras configurações:

      A captura de tela mostra as configurações do Visual Studio Code para a extensão Azure Logic Apps (Standard).

Ligar à sua conta do Azure

  1. Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure.

    A captura de tela mostra a Barra de Atividades de Código do Visual Studio e o ícone do Azure selecionado.

  2. Na janela do Azure, em Recursos, selecione Entrar no Azure. Quando a página de autenticação do Visual Studio Code for exibida, entre com sua conta do Azure.

    A captura de tela mostra a janela do Azure e o link selecionado para entrar no Azure.

    Depois de iniciar sessão, a janela do Azure mostra as subscrições do Azure associadas à sua conta do Azure. Se as subscrições esperadas não aparecerem ou se pretender que o painel mostre apenas subscrições específicas, siga estes passos:

    1. Na lista de subscrições, mova o ponteiro para junto à primeira subscrição até aparecer o botão Selecionar Subscrições (ícone de filtro). Selecione o ícone de filtro.

      A captura de tela mostra a janela do Azure com assinaturas e ícone de filtro selecionado.

      Ou, na barra de status do Visual Studio Code, selecione sua conta do Azure.

    2. Quando for apresentada outra lista de subscrições, selecione as subscrições pretendidas e, em seguida, certifique-se de que seleciona OK.

Criar um projeto local

Antes de criar seu aplicativo lógico, crie um projeto local para que você possa gerenciar, executar e implantar seu aplicativo lógico a partir do Visual Studio Code. O projeto subjacente é semelhante a um projeto do Azure Functions, também conhecido como um projeto de aplicativo de função. No entanto, esses tipos de projeto são separados uns dos outros, portanto, aplicativos lógicos e aplicativos de função não podem existir no mesmo projeto.

  1. No seu computador, crie uma pasta local vazia para usar para o projeto que você criará posteriormente no Visual Studio Code.

  2. No Visual Studio Code, feche todas as pastas abertas.

  3. Na janela do Azure, na barra de ferramentas da seção Espaço de trabalho, no menu Aplicativos Lógicos do Azure, selecione Criar Novo Projeto.

    A captura de tela mostra a janela do Azure, a barra de ferramentas Espaço de Trabalho e o menu Aplicativos Lógicos do Azure com Criar Novo Projeto selecionado.

  4. Se o Firewall do Windows Defender solicitar que você conceda acesso à rede para Code.exe, que é o Visual Studio Code, e para func.exe, que são as Ferramentas Principais do Azure Functions, selecione Redes privadas, como minha rede > doméstica ou de trabalho Permitir acesso.

  5. Navegue até o local onde você criou a pasta do projeto, selecione essa pasta e continue.

    A captura de tela mostra a caixa Selecionar pasta e a nova pasta do projeto com o botão Selecionar selecionado.

  6. Na lista de modelos exibida, selecione Fluxo de trabalho com estado ou Fluxo de trabalho sem estado. Este exemplo seleciona Stateful Workflow.

    A captura de tela mostra a lista de modelos de fluxo de trabalho com o Fluxo de Trabalho com Estado selecionado.

  7. Forneça um nome para seu fluxo de trabalho e pressione Enter. Este exemplo usa Stateful-Workflow como o nome.

    A captura de tela mostra a caixa Criar novo Fluxo de Trabalho com Estado (3/4) e o nome do fluxo de trabalho, Fluxo de Trabalho com Monitoração de Estado.

    Nota

    Você pode receber um erro chamado azureLogicAppsStandard.createNewProject com a mensagem de erro Não é possível gravar em Configurações do espaço de trabalho porque azureFunctions.suppressProject não é uma configuração registrada. Se você fizer isso, tente instalar a extensão do Azure Functions para Visual Studio Code, diretamente do Visual Studio Marketplace ou de dentro do Visual Studio Code.

  8. Se o Visual Studio Code solicitar que você abra seu projeto no Visual Studio Code atual ou em uma nova janela do Visual Studio Code, selecione Abrir na janela atual. Caso contrário, selecione Abrir em nova janela.

    O Visual Studio Code conclui a criação do seu projeto.

  9. Na Barra de Atividades do Visual Studio, abra o painel Explorer, se ainda não estiver aberto.

    O painel Explorer mostra seu projeto, que agora inclui arquivos de projeto gerados automaticamente. Por exemplo, o projeto tem uma pasta que mostra o nome do seu fluxo de trabalho. Dentro dessa pasta, o arquivo workflow.json contém a definição JSON subjacente do seu fluxo de trabalho.

    A captura de tela mostra o painel Explorer com pasta de projeto, pasta de fluxo de trabalho e arquivo workflow.json.

    No Visual Studio Code, seu projeto de aplicativo lógico tem um dos seguintes tipos:

    • Baseado em pacote de extensão (Node.js), que é o tipo padrão
    • Baseado em pacote NuGet (.NET), que você pode converter do tipo padrão

    Com base nesses tipos, seu projeto inclui pastas e arquivos ligeiramente diferentes. Um projeto baseado em NuGet inclui uma pasta .bin que contém pacotes e outros arquivos de biblioteca. Um projeto baseado em pacote não inclui a pasta .bin e outros arquivos. Alguns cenários exigem um projeto baseado em NuGet para que seu aplicativo seja executado, por exemplo, quando você deseja desenvolver e executar operações internas personalizadas. Para obter mais informações sobre como converter seu projeto para usar o NuGet, consulte Habilitar a criação de conector interno.

    Para o projeto baseado em pacote padrão, seu projeto tem uma estrutura de pasta e arquivo semelhante ao exemplo a seguir:

    MyBundleBasedLogicAppProjectName
    | .vscode
    | Artifacts
      || Maps 
         ||| MapName1
         ||| ...
      || Schemas
         ||| SchemaName1
         ||| ...
    | WorkflowName1
      || workflow.json
      || ...
    | WorkflowName2
      || workflow.json
      || ...
    | workflow-designtime
    | .funcignore
    | connections.json
    | host.json
    | local.settings.json
    

    No nível raiz do seu projeto, você pode encontrar os seguintes arquivos e pastas com outros itens:

    Nome Pasta ou ficheiro Description
    .vscode Pasta Contém arquivos de configurações relacionados ao Visual Studio Code, como arquivos extensions.json, launch.json, settings.json e tasks.json .
    Artefactos Pasta Contém artefatos de conta de integração que você define e usa em fluxos de trabalho que oferecem suporte a cenários B2B (business-to-business). Por exemplo, a estrutura de exemplo inclui mapas e esquemas para operações de transformação e validação XML.
    <Nome do fluxo de trabalho> Pasta Para cada fluxo de trabalho, a <pasta WorkflowName> inclui um arquivo workflow.json, que contém a definição JSON subjacente desse fluxo de trabalho.
    workflow-designtime Pasta Contém arquivos de configurações relacionadas ao ambiente de desenvolvimento.
    .funcignore Ficheiro Contém informações relacionadas às Ferramentas Principais do Azure Functions instaladas.
    connections.json Ficheiro Contém os metadados, pontos de extremidade e chaves para quaisquer conexões gerenciadas e funções do Azure que seus fluxos de trabalho usam.

    Importante: Para usar conexões e funções diferentes para cada ambiente, certifique-se de parametrizar esse arquivo de connections.json e atualizar os pontos de extremidade.
    host.json Ficheiro Contém definições e valores de configuração específicos do tempo de execução, por exemplo, os limites padrão para a plataforma de Aplicativos Lógicos do Azure de locatário único, aplicativos lógicos, fluxos de trabalho, gatilhos e ações. No nível raiz do seu projeto de aplicativo lógico, o arquivo de metadados host.json contém as definições de configuração e os valores padrão que todos os fluxos de trabalho no mesmo aplicativo lógico usam durante a execução, seja localmente ou no Azure.

    Nota: Quando você cria seu aplicativo lógico, o Visual Studio Code cria um arquivo host.snapshot.*.json de backup em seu contêiner de armazenamento. Se você excluir seu aplicativo lógico, esse arquivo de backup não será excluído. Se você criar outro aplicativo lógico com o mesmo nome, outro arquivo de instantâneo será criado. Você pode ter apenas até 10 instantâneos para o mesmo aplicativo lógico. Se você exceder esse limite, você receberá o seguinte erro:

    Microsoft.Azure.WebJobs.Script.WebHost: Repository has more than 10 non-decryptable secrets backups (host))

    Para resolver esse erro, exclua os arquivos de instantâneo extras do contêiner de armazenamento.
    local.settings.json Ficheiro Contém configurações de aplicativos, cadeias de conexão e outras configurações que seus fluxos de trabalho usam durante a execução local. Em outras palavras, essas configurações e valores se aplicam somente quando você executa seus projetos em seu ambiente de desenvolvimento local. Durante a implantação no Azure, o arquivo e as configurações são ignorados e não são incluídos na sua implantação.

    Esse arquivo armazena configurações e valores como variáveis de ambiente local que são usadas por suas ferramentas de desenvolvimento local como os appSettings valores. Você pode chamar e fazer referência a essas variáveis de ambiente em tempo de execução e de implantação usando as configurações e os parâmetros do aplicativo.

    Importante: O arquivo local.settings.json pode conter segredos, portanto, certifique-se de excluir esse arquivo do controle do código-fonte do projeto.

    Nota

    A configuração FUNCTIONS_WORKER_RUNTIME aplicativo é necessária para seu aplicativo lógico padrão e o valor foi definido anteriormente como . No entanto, o valor necessário agora é dotnet para todos os aplicativos lógicos Standard implantados novos e existentes. Essa alteração no valor não deve afetar o tempo de execução do fluxo de trabalho, portanto, tudo deve funcionar da mesma maneira que antes. Para obter mais informações, consulte a configuração do aplicativo FUNCTIONS_WORKER_RUNTIME.

    A configuração APP_KIND aplicativo é necessária para seu aplicativo lógico padrão e o valor deve ser workflowApp. No entanto, em alguns cenários, essa configuração de aplicativo pode estar faltando, por exemplo, devido à automação usando modelos do Azure Resource Manager ou outros cenários em que a configuração não está incluída. Se determinadas ações não funcionarem, como a ação Executar código JavaScript, ou se o fluxo de trabalho parar de funcionar, verifique se a configuração APP_KIND aplicativo existe e está definida como workflowApp. Para obter mais informações, consulte a configuração do aplicativo APP_KIND.

Converta seu projeto para NuGet baseado em pacote (.NET)

Por padrão, o Visual Studio Code cria um projeto de aplicativo lógico que é baseado em pacote de extensão (Node.js), não baseado em pacote NuGet (.NET). Se você precisar de um projeto de aplicativo lógico baseado em pacote NuGet (.NET), por exemplo, para habilitar a criação de conector interno, deverá converter seu projeto de baseado em pacote de extensão (Node.js) para baseado em pacote NuGet (.NET).

Importante

Esta ação é uma operação unidirecional que não pode ser desfeita.

  1. No painel Explorer, na raiz do projeto, mova o ponteiro do mouse sobre qualquer área em branco abaixo de todos os outros arquivos e pastas, abra o menu de atalho e selecione Converter em projeto de aplicativo lógico baseado em NuGet.

    A captura de tela mostra o painel Explorer com o menu de atalho do projeto aberto da área em branco na janela do projeto.

  2. Quando o prompt aparecer, confirme a conversão do projeto.

Habilitar a criação de conector integrado

Você pode criar seus próprios conectores internos para qualquer serviço necessário usando a estrutura de extensibilidade dos Aplicativos Lógicos do Azure de locatário único. Semelhante aos conectores internos, como o Barramento de Serviço do Azure e o SQL Server, esses conectores fornecem maior taxa de transferência, baixa latência, conectividade local e são executados nativamente no mesmo processo que o tempo de execução dos Aplicativos Lógicos do Azure de locatário único.

Atualmente, o recurso de criação está disponível apenas no Visual Studio Code, mas não está habilitado por padrão. Para criar estes conectores, siga estes passos:

  1. Se ainda não o fez, converta seu projeto de baseado em pacote de extensão (Node.js) para baseado em pacote NuGet (.NET).

  2. Analise e siga as etapas no artigo, Azure Logic Apps Running Anywhere - Built-in connector extensibility.

Adicionar artefatos personalizados ao seu projeto

Em um fluxo de trabalho de aplicativo lógico, alguns conectores têm dependências em artefatos como mapas, esquemas ou assemblies. No Visual Studio Code, você pode carregar esses artefatos em seu projeto de aplicativo lógico, semelhante a como você pode carregar esses artefatos no portal do Azure por meio do menu de recursos do aplicativo lógico em Artefatos, por exemplo:

A captura de tela mostra o portal do Azure e o menu de recursos do aplicativo lógico padrão com a seção Artefatos realçada.

Adicionar mapas ao seu projeto

Para adicionar mapas ao seu projeto, na hierarquia do projeto, expanda Mapas de Artefatos>, que é a pasta onde você pode colocar seus mapas.

A captura de tela mostra a hierarquia do projeto do Visual Studio Code com as pastas Artefatos e Mapas expandidas.

Adicionar esquemas ao seu projeto

Para adicionar esquemas ao seu projeto, na hierarquia do projeto, expanda Esquemas de Artefatos>, que é a pasta onde você pode colocar seus esquemas.

A captura de tela mostra a hierarquia do projeto do Visual Studio Code com as pastas Artefatos e Esquemas expandidas.

Adicionar assemblies ao seu projeto

Um aplicativo lógico padrão pode usar ou fazer referência a tipos específicos de assemblies, que você pode carregar para seu projeto no Visual Studio Code. No entanto, você deve adicioná-los a pastas específicas em seu projeto. A tabela a seguir fornece mais informações sobre cada tipo de montagem e onde exatamente colocá-los em seu projeto.

Tipo de montagem Description
Cliente/SDK Assembly (.NET Framework) Esse tipo de assembly fornece armazenamento e implantação de cliente e SDK personalizado para o .NET Framework. Por exemplo, o conector integrado do SAP usa esses assemblies para carregar os arquivos DLL não redistribuíveis do SAP NCo.

Certifique-se de adicionar esses assemblies à seguinte pasta: \lib\builtinOperationSdks\net472
Montagem de cliente/SDK (Java) Esse tipo de assembly fornece armazenamento e implementação de SDK personalizado para Java. Por exemplo, o conector interno JDBC usa esses arquivos JAR para localizar drivers JDBC para bancos de dados relacionais personalizados (RDBs).

Certifique-se de adicionar esses assemblies à seguinte pasta: \lib\builtinOperationSdks\JAR
Assembly personalizado (.NET Framework) Esse tipo de assembly fornece armazenamento e implantação de DLLs personalizadas. Por exemplo, a operação Transformar XML usa esses assemblies para as funções de transformação personalizadas que são necessárias durante a transformação XML.

Certifique-se de adicionar esses assemblies à seguinte pasta: \lib\custom\net472

A imagem a seguir mostra onde colocar cada tipo de montagem em seu projeto:

A captura de tela mostra o Visual Studio Code, o projeto de aplicativo lógico e onde carregar assemblies.

Para obter mais informações sobre como carregar assemblies para seu recurso de aplicativo lógico no portal do Azure, consulte Adicionar assemblies referenciados.

Migrar projetos baseados em NuGet para usar assemblies "lib\*"

Importante

Essa tarefa é necessária apenas para projetos de aplicativos lógicos baseados em NuGet.

Se você criou seu projeto de aplicativo lógico quando o suporte a assemblies não estava disponível para fluxos de trabalho de aplicativo lógico padrão, você pode adicionar as seguintes linhas ao seu <arquivo project-name.csproj> para trabalhar com projetos que usam assemblies:

  <ItemGroup>
    <LibDirectory Include="$(MSBuildProjectDirectory)\lib\**\*"/>
  </ItemGroup>
  <Target Name="CopyDynamicLibraries" AfterTargets="_GenerateFunctionsExtensionsMetadataPostPublish">
    <Copy SourceFiles="@(LibDirectory)" DestinationFiles="@(LibDirectory->'$(MSBuildProjectDirectory)\$(PublishUrl)\lib\%(RecursiveDir)%(Filename)%(Extension)')"/>
  </Target>

Importante

Para um projeto executado em Linux ou macOS, certifique-se de atualizar o separador de diretório. Por exemplo, revise a imagem a seguir que mostra o código anterior adicionado ao <arquivo project-name.csproj.>

A captura de tela mostra assemblies migrados e código adicionado no arquivo CSPROJ.

Abrir o arquivo de definição do fluxo de trabalho no designer

  1. Expanda a pasta de projeto do fluxo de trabalho, chamada Stateful-Workflow neste exemplo, e abra o arquivo workflow.json .

  2. Abra o menu de atalho do arquivo workflow.json e selecione Abrir Designer.

    A captura de tela mostra o painel Explorer, workflow.json menu de atalho de arquivo e Abrir Designer selecionado.

  3. Depois que a lista Habilitar conectores no Azure for aberta, selecione Usar conectores do Azure, que se aplica a todos os conectores gerenciados ou "compartilhados", que são hospedados e executados no Azure versus os conectores internos, nativos ou "no aplicativo", que são executados diretamente com o tempo de execução dos Aplicativos Lógicos do Azure.

    A captura de tela mostra o painel do Explorer, a lista aberta chamada Habilitar conectores no Azure e a opção selecionada para Usar conectores do Azure.

    Nota

    Atualmente, os fluxos de trabalho sem estado suportam apenas ações de conectores gerenciados, não gatilhos. Embora você tenha a opção de habilitar conectores no Azure para seu fluxo de trabalho sem monitoração de estado, o designer não mostra nenhum gatilho de conector gerenciado para você selecionar.

  4. Depois que a lista Selecionar assinatura for aberta, selecione a assinatura do Azure a ser usada para seu projeto de aplicativo lógico.

    A captura de tela mostra o painel Explorer com a lista chamada Selecionar assinatura e uma assinatura selecionada.

  5. Depois que a lista de grupos de recursos for aberta, selecione Criar novo grupo de recursos.

    A captura de tela mostra o painel Explorer com a lista de grupos de recursos e a opção selecionada para criar um novo grupo de recursos.

  6. Forneça um nome para o grupo de recursos e pressione Enter. Este exemplo usa Fabrikam-Workflows-RG.

    A captura de tela mostra o painel Explorer e a caixa de nome do grupo de recursos.

  7. Na lista de locais, selecione a região do Azure a ser usada ao criar seu grupo de recursos e recursos. Este exemplo usa West Central US.

    Captura de ecrã que mostra o painel Explorador com a lista de localizações e

    Depois de executar esta etapa, o Visual Studio Code abre o designer de fluxo de trabalho.

    Nota

    Quando o Visual Studio Code inicia a API de tempo de design do fluxo de trabalho, você pode receber uma mensagem informando que a inicialização pode levar alguns segundos. Pode ignorar esta mensagem ou selecionar OK.

    Se o designer não abrir, revise a seção de solução de problemas, o Designer não abrirá.

    Depois que o designer aparece, o prompt Adicionar um gatilho aparece no designer.

  8. No designer, selecione Adicionar um gatilho, que abre o painel Adicionar um gatilho e uma galeria mostrando todos os conectores que têm gatilhos para você selecionar.

    A captura de tela mostra o designer de fluxo de trabalho, o prompt selecionado chamado Adicionar um gatilho e a galeria de conectores com gatilhos.

  9. Em seguida, adicione um gatilho e ações ao seu fluxo de trabalho.

Adicionar um gatilho e ações

Depois de abrir um fluxo de trabalho em branco no designer, o prompt Adicionar um gatilho aparece no designer. Agora você pode começar a criar seu fluxo de trabalho adicionando um gatilho e ações.

Importante

Para executar localmente um fluxo de trabalho que usa um gatilho ou ações baseados em webhook, como o gatilho ou ação HTTP Webhook interno, você deve habilitar esse recurso configurando o encaminhamento para a URL de retorno de chamada do webhook.

O fluxo de trabalho neste exemplo usa o seguinte gatilho e ações:

Adicionar o gatilho de solicitação

  1. No designer de fluxo de trabalho, no painel Adicionar um gatilho , abra a lista Tempo de execução e selecione No aplicativo para exibir apenas os gatilhos de conector internos disponíveis.

  2. Localize o gatilho de solicitação chamado Quando uma solicitação HTTP é recebida usando a caixa de pesquisa e adicione esse gatilho ao seu fluxo de trabalho. Para obter mais informações, consulte Criar um fluxo de trabalho com um gatilho e ações.

    A captura de tela mostra o designer de fluxo de trabalho, Adicionar um painel de gatilho e o gatilho selecionado chamado Quando uma solicitação HTTP é recebida.

    Quando o gatilho aparece no designer, o painel de informações do gatilho é aberto e mostra os parâmetros, configurações e outras tarefas relacionadas do gatilho.

    A captura de tela mostra o painel de informações do gatilho chamado Quando uma solicitação HTTP é recebida.

    Gorjeta

    Se o painel de informações não aparecer, certifique-se de que o gatilho esteja selecionado no designer.

  3. Salve seu fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.

Se você precisar excluir um item do designer, siga estas etapas para excluir itens do designer.

Adicionar a ação do Office 365 Outlook

  1. No designer, no gatilho Solicitação , selecione o sinal de adição (+) >Adicionar uma ação.

  2. No painel Adicionar uma ação que é aberto, na lista Tempo de execução, selecione Compartilhado para exibir apenas as ações do conector gerenciado disponíveis.

  3. Encontre a ação do conector gerenciado do Outlook do Office 365 chamada Enviar um email (V2) usando a caixa de pesquisa e adicione essa ação ao seu fluxo de trabalho. Para obter mais informações, consulte Criar um fluxo de trabalho com um gatilho e ações.

    A captura de tela mostra o designer de fluxo de trabalho e Adicionar um painel de ações com a ação selecionada do Office 365 Outlook chamada Enviar um email.

  4. Quando o painel de autenticação da ação abrir, selecione Entrar para criar uma conexão com sua conta de email.

    A captura de tela mostra a ação chamada Enviar um e-mail (V2) com o botão de entrada selecionado.

  5. Siga as instruções subsequentes para selecionar sua conta, permitir acesso e permitir retornar ao Visual Studio Code.

    Nota

    Se passar muito tempo antes de concluir os prompts, o processo de autenticação expirará e falhará. Nesse caso, retorne ao designer e tente entrar novamente para criar a conexão.

    1. Quando o prompt da Microsoft for exibido, selecione a conta de usuário do Office 365 Outlook e selecione Permitir acesso.

    2. Quando os Aplicativos Lógicos do Azure solicitarem a abertura de um link de Código do Visual Studio, selecione Abrir.

      A captura de tela mostra o prompt para abrir o link para o Visual Studio Code.

    3. Quando o Visual Studio Code solicitar a abertura das Ferramentas do Microsoft Azure, selecione Abrir.

      A captura de tela mostra o prompt para abrir as ferramentas do Microsoft Azure.

    Gorjeta

    Para ignorar esses prompts futuros, selecione as seguintes opções quando os prompts associados aparecerem:

    • Permissão para abrir link para Visual Studio Code: Selecione Sempre permitir que logic-apis-westcentralus.consent.azure-apim.net abra links desse tipo no aplicativo associado. Esse domínio muda com base na região do Azure que você selecionou para seu recurso de aplicativo lógico.

    • Permissão para abrir as Ferramentas do Microsoft Azure: selecione Não pedir novamente esta extensão.

    Depois que o Visual Studio Code cria sua conexão, alguns conectores mostram a mensagem de que A conexão será válida apenas por {n} dias. Esse limite de tempo se aplica somente à duração enquanto você cria seu fluxo de trabalho de aplicativo lógico no Visual Studio Code. Após a implantação, esse limite não se aplica mais porque seu fluxo de trabalho pode se autenticar em tempo de execução usando sua identidade gerenciada atribuída ao sistema habilitada automaticamente. Essa identidade gerenciada difere das credenciais de autenticação ou da cadeia de conexão que você usa ao criar uma conexão. Se você desabilitar essa identidade gerenciada atribuída ao sistema, as conexões não funcionarão em tempo de execução.

  6. No designer, se a ação Enviar um email não aparecer selecionada, selecione essa ação.

  7. No painel de informações da ação, na guia Parâmetros , forneça as informações necessárias para a ação, por exemplo:

    A captura de tela mostra informações para a ação do Office 365 Outlook chamada Enviar um email.

    Property Necessário Valor Description
    De Sim <your-email-address> O destinatário do e-mail, que pode ser o seu endereço de e-mail para fins de teste. Este exemplo usa o e-mail fictício, sophia.owen@fabrikam.com.
    Assunto Sim Um e-mail do seu fluxo de trabalho de exemplo O assunto do e-mail
    Corpo Sim Olá do seu fluxo de trabalho de exemplo! O conteúdo do corpo do e-mail

    Nota

    Se você fizer alterações na guia Teste , selecione Salvar para confirmar essas alterações antes de alternar entre guias ou mudar o foco para o designer. Caso contrário, o Visual Studio Code não manterá suas alterações.

  8. Salve seu fluxo de trabalho. No designer, selecione Salvar.

Habilite webhooks em execução local

Quando você usa um gatilho ou ação baseada em webhook, como HTTP Webhook, com um fluxo de trabalho de aplicativo lógico em execução no Azure, o tempo de execução dos Aplicativos Lógicos do Azure assina o ponto de extremidade do serviço gerando e registrando uma URL de retorno de chamada com esse ponto de extremidade. Em seguida, o gatilho ou ação aguarda que o ponto de extremidade do serviço chame a URL. No entanto, quando você estiver trabalhando no Visual Studio Code, a URL de retorno de chamada gerada começa com http://localhost:7071/.... Este URL destina-se ao seu servidor localhost, que é privado, pelo que o ponto de extremidade do serviço não pode chamar este URL.

Para executar localmente gatilhos e ações baseados em webhook no Visual Studio Code, você precisa configurar uma URL pública que exponha seu servidor localhost e encaminhe chamadas com segurança do ponto de extremidade do serviço para a URL de retorno de chamada do webhook. Você pode usar um serviço de encaminhamento e uma ferramenta como ngrok, que abre um túnel HTTP para sua porta localhost, ou você pode usar sua própria ferramenta equivalente.

Configurar o encaminhamento de chamadas usando ngrok

  1. Vá para o site ngrok. Registe-se para obter uma nova conta ou inicie sessão na sua conta, se já tiver uma.

  2. Obtenha seu token de autenticação pessoal, que seu cliente ngrok precisa para se conectar e autenticar o acesso à sua conta.

    1. Para localizar a página do token de autenticação, no menu do painel da conta, expanda Autenticação e selecione Seu Authtoken.

    2. Na caixa Your Authtoken, copie o token para um local seguro.

  3. Na página de download do ngrok ou no painel da sua conta, baixe a versão do ngrok desejada e extraia o arquivo .zip. Para obter mais informações, consulte Etapa 1: descompactar para instalar.

  4. No computador, abra a ferramenta de prompt de comando. Navegue até o local onde você tem o arquivo ngrok.exe .

  5. Conecte o cliente ngrok à sua conta ngrok executando o seguinte comando. Para obter mais informações, consulte Etapa 2: conectar sua conta.

    ngrok authtoken <your_auth_token>

  6. Abra o túnel HTTP para a porta localhost 7071 executando o seguinte comando. Para obter mais informações, consulte Etapa 3: acioná-lo.

    ngrok http 7071

  7. Na saída, localize a seguinte linha:

    http://<domain>.ngrok.io -> http://localhost:7071

  8. Copie e salve o URL que tem este formato: http://<domain>.ngrok.io

Configurar o URL de reencaminhamento nas definições da aplicação

  1. No Visual Studio Code, no designer, adicione o gatilho ou ação baseada em webhook que você deseja usar.

    Este exemplo continua com o gatilho HTTP + Webhook .

  2. Quando o prompt for exibido para o local do ponto de extremidade do host, insira a URL de encaminhamento (redirecionamento) que você criou anteriormente.

    Nota

    Ignorar o prompt faz com que apareça um aviso de que você deve fornecer a URL de encaminhamento, portanto, selecione Configurar e insira a URL. Depois de concluir esta etapa, o prompt não aparecerá para gatilhos de webhook subsequentes ou ações que você possa adicionar.

    Para fazer com que o prompt apareça, no nível raiz do projeto, abra o menu de atalho do arquivo local.settings.json e selecione Configurar ponto de extremidade de redirecionamento Webhook. O prompt agora aparece para que você possa fornecer a URL de encaminhamento.

    O Visual Studio Code adiciona a URL de encaminhamento ao arquivo local.settings.json na pasta raiz do projeto. No objeto, a Values propriedade nomeada Workflows.WebhookRedirectHostUri agora aparece e é definida como a URL de encaminhamento, por exemplo:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet",
          "FUNCTIONS_V2_COMPATIBILITY_MODE": "true",
          <...>
          "Workflows.WebhookRedirectHostUri": "http://xxxXXXXxxxXXX.ngrok.io",
          <...>
       }
    }
    

    Nota

    Anteriormente, o valor padrão da configuração FUNCTIONS_WORKER_RUNTIME era node. Agora, dotnet é o valor padrão para todos os aplicativos lógicos Standard implantados novos e existentes, mesmo para aplicativos que tinham um valor diferente. Essa alteração não deve afetar o tempo de execução do fluxo de trabalho e tudo deve funcionar da mesma maneira que antes. Para obter mais informações, consulte a configuração do aplicativo FUNCTIONS_WORKER_RUNTIME.

Na primeira vez em que você inicia uma sessão de depuração local ou executa o fluxo de trabalho sem depuração, o tempo de execução dos Aplicativos Lógicos do Azure registra o fluxo de trabalho com o ponto de extremidade do serviço e assina esse ponto de extremidade para notificar as operações do webhook. Na próxima vez que o fluxo de trabalho for executado, o tempo de execução não será registrado ou re-assinado, porque o registro de assinatura já existe no armazenamento local.

Quando você interrompe a sessão de depuração para uma execução de fluxo de trabalho que usa gatilhos ou ações baseados em webhook executados localmente, os registros de assinatura existentes não são excluídos. Para cancelar o registo, tem de remover ou eliminar manualmente os registos de subscrição.

Nota

Depois que o fluxo de trabalho começar a ser executado, a janela do terminal pode mostrar erros como este exemplo:

message='Http request failed with unhandled exception of type 'InvalidOperationException' and message: 'System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead.'

Nesse caso, abra o arquivo local.settings.json na pasta raiz do projeto e verifique se a propriedade está definida como true:

"FUNCTIONS_V2_COMPATIBILITY_MODE": "true"

Gerenciar pontos de interrupção para depuração

Antes de executar e testar o fluxo de trabalho do aplicativo lógico iniciando uma sessão de depuração, você pode definir pontos de interrupção dentro do arquivo workflow.json para cada fluxo de trabalho. Nenhuma outra configuração é necessária.

Neste momento, os pontos de interrupção são suportados apenas para ações, não para gatilhos. Cada definição de ação tem estes locais de ponto de interrupção:

  • Defina o ponto de interrupção inicial na linha que mostra o nome da ação. Quando esse ponto de interrupção atinge durante a sessão de depuração, você pode revisar as entradas da ação antes que elas sejam avaliadas.

  • Defina o ponto de interrupção final na linha que mostra a chave de fechamento da ação (}). Quando esse ponto de interrupção atinge durante a sessão de depuração, você pode revisar os resultados da ação antes que ela termine de ser executada.

Para adicionar um ponto de interrupção, siga estes passos:

  1. Abra o arquivo de workflow.json do fluxo de trabalho que você deseja depurar.

  2. Na linha onde pretende definir o ponto de interrupção, na coluna da esquerda, selecione dentro dessa coluna. Para remover o ponto de interrupção, selecione esse ponto de interrupção.

    Quando você inicia a sessão de depuração, o modo de exibição Executar aparece no lado esquerdo da janela de código, enquanto a barra de ferramentas Depurar aparece perto da parte superior.

    Nota

    Se a vista Executar não aparecer automaticamente, prima Ctrl+Shift+D.

  3. Para revisar as informações disponíveis quando um ponto de interrupção for atingido, no modo de exibição Executar, examine o painel Variáveis .

  4. Para continuar a execução do fluxo de trabalho, na barra de ferramentas Depurar, selecione Continuar (botão reproduzir).

Você pode adicionar e remover pontos de interrupção a qualquer momento durante a execução do fluxo de trabalho. No entanto, se você atualizar o arquivo de workflow.json após o início da execução, os pontos de interrupção não serão atualizados automaticamente. Para atualizar os pontos de interrupção, reinicie o aplicativo lógico.

Para obter informações gerais, consulte Pontos de interrupção - Visual Studio Code.

Executar, testar e depurar localmente

Para testar o fluxo de trabalho do aplicativo lógico, siga estas etapas para iniciar uma sessão de depuração e localizar a URL do ponto de extremidade criado pelo gatilho Solicitação . Você precisa dessa URL para poder enviar posteriormente uma solicitação para esse ponto de extremidade.

  1. Para depurar um fluxo de trabalho sem estado mais facilmente, você pode habilitar o histórico de execução para esse fluxo de trabalho.

  2. Se o emulador do Azurite já estiver em execução, avance para o passo seguinte. Caso contrário, certifique-se de iniciar o emulador antes de executar o fluxo de trabalho:

    1. No Visual Studio Code, no menu Exibir, selecione Paleta de comandos.

    2. Depois que a paleta de comandos for exibida, digite Azurite: Start.

    Para obter mais informações sobre comandos Azurite, consulte a documentação para a extensão Azurite no Visual Studio Code.

  3. Na barra de atividade de código do Visual Studio, abra o menu Executar e selecione Iniciar depuração (F5).

    A janela Terminal é aberta para que você possa revisar a sessão de depuração.

    Nota

    Se você receber o erro, "O erro existe depois de executar preLaunchTask 'generateDebugSymbols'", consulte a seção de solução de problemas, Falha ao iniciar a sessão de depuração.

  4. Agora, encontre a URL de retorno de chamada para o ponto de extremidade no gatilho Solicitação .

    1. Reabra o painel Explorer para que você possa exibir seu projeto.

    2. No menu de atalho do arquivo workflow.json , selecione Visão geral.

      A captura de tela mostra o painel Explorer, workflow.json menu de atalho do arquivo com a opção selecionada, Visão geral.

    3. Encontre o valor de URL de retorno de chamada, que é semelhante a este URL para o gatilho de solicitação de exemplo:

      http://localhost:7071/api/<workflow-name>/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>

      A captura de tela mostra a página de visão geral do fluxo de trabalho com URL de retorno de chamada.

    4. Copie e salve o valor da propriedade URL de retorno de chamada.

  5. Para testar a URL de retorno de chamada e acionar o fluxo de trabalho, envie uma solicitação HTTP para a URL, incluindo o método que o gatilho de solicitação espera, usando sua ferramenta de solicitação HTTP e suas instruções.

    Este exemplo usa o método GET com a URL copiada, que se parece com o exemplo a seguir:

    GET http://localhost:7071/api/Stateful-Workflow/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>

    Quando o gatilho é acionado, o fluxo de trabalho de exemplo é executado e envia um e-mail semelhante a este exemplo:

    A captura de tela mostra o email do Outlook conforme descrito no exemplo.

  6. No Visual Studio Code, retorne à página de visão geral do fluxo de trabalho.

    Se você criou um fluxo de trabalho com monitoração de estado, depois que a solicitação enviada acionar o fluxo de trabalho, a página de visão geral mostrará o status e o histórico de execução do fluxo de trabalho.

    Gorjeta

    Se o status de execução não aparecer, tente atualizar a página de visão geral selecionando Atualizar. Nenhuma execução acontece para um gatilho que é ignorado devido a critérios não atendidos ou não encontrar dados.

    Captura de tela que mostra a página de visão geral do fluxo de trabalho com o status e o histórico de execução

    A tabela a seguir mostra os possíveis status finais que cada execução de fluxo de trabalho pode ter e mostrar no Visual Studio Code:

    Estado da execução Description
    Abortado A execução parou ou não foi concluída devido a problemas externos, por exemplo, uma interrupção do sistema ou uma assinatura do Azure caducada.
    Cancelado A execução foi acionada e iniciada, mas recebeu um pedido de cancelamento.
    Falhado Pelo menos uma ação na execução falhou. Nenhuma ação subsequente no fluxo de trabalho foi configurada para lidar com a falha.
    Em execução A execução foi acionada e está em andamento, mas esse status também pode aparecer para uma execução limitada devido a limites de ação ou ao plano de preços atual.

    Dica: Se você configurar o registro de diagnósticos, poderá obter informações sobre quaisquer eventos de aceleração que aconteçam.

    Bem sucedido A corrida foi bem-sucedida. Se alguma ação falhar, uma ação subsequente no fluxo de trabalho manipulou essa falha.
    Tempo limite esgotado A execução atingiu o tempo limite porque a duração atual excedeu o limite de duração da execução, que é controlado pela configuração Retenção do histórico de execução em dias. A duração de uma execução é calculada usando a hora de início da execução e o limite de duração da execução nessa hora de início.

    Nota: Se a duração da execução também exceder o limite de retenção do histórico de execução atual, que também é controlado pela configuração Retenção do histórico de execução em dias, a execução será limpa do histórico de execuções por um trabalho de limpeza diário. Quer a execução atinja o tempo limite ou seja concluída, o período de retenção é sempre calculado utilizando a hora de início da execução e o limite de retenção atual . Assim, se você reduzir o limite de duração para uma corrida em voo, o tempo limite de corrida. No entanto, a execução permanece ou é limpa do histórico de execuções com base em se a duração da execução excedeu o limite de retenção.

    A aguardar A execução não foi iniciada ou está pausada, por exemplo, devido a uma instância de fluxo de trabalho anterior que ainda está em execução.
  7. Para revisar os status de cada etapa em uma execução específica e as entradas e saídas da etapa, selecione o botão de reticências (...) para essa execução e selecione Mostrar execução.

    A captura de tela mostra a linha do histórico de execução do fluxo de trabalho com o botão de reticências selecionado e Mostrar Executar.

    O Visual Studio Code abre o modo de exibição de monitoramento e mostra o status de cada etapa da execução.

    A captura de tela mostra cada etapa na execução do fluxo de trabalho e seu status.

    Nota

    Se uma execução falhou e uma etapa no modo de exibição de monitoramento mostra o erro 400 Bad Request , esse problema pode resultar de um nome de gatilho mais longo ou nome de ação que faz com que o URI (Uniform Resource Identifier) subjacente exceda o limite de caracteres padrão. Para obter mais informações, consulte "400 Bad Request".

    A tabela a seguir mostra os possíveis status que cada ação de fluxo de trabalho pode ter e mostrar no Visual Studio Code:

    Estado da ação Description
    Abortado A ação parou ou não foi concluída devido a problemas externos, por exemplo, uma interrupção do sistema ou uma assinatura do Azure caducada.
    Cancelado A ação estava em execução, mas recebeu um pedido de cancelamento.
    Falhado A ação falhou.
    Em execução A ação está em execução no momento.
    Ignorado A ação foi ignorada porque a ação imediatamente anterior falhou. Uma ação tem uma runAfter condição que requer que a ação anterior seja concluída com êxito antes que a ação atual possa ser executada.
    Bem sucedido A ação foi bem-sucedida.
    Sucesso com novas tentativas A ação foi bem-sucedida, mas apenas após uma ou mais tentativas. Para revisar o histórico de tentativas, na exibição de detalhes do histórico de execução, selecione essa ação para que você possa visualizar as entradas e saídas.
    Tempo limite esgotado A ação foi interrompida devido ao limite de tempo limite especificado pelas configurações dessa ação.
    A aguardar Aplica-se a uma ação de webhook que está aguardando uma solicitação de entrada de um chamador.
  8. Para revisar as entradas e saídas de cada etapa, selecione a etapa que deseja inspecionar. Para revisar ainda mais as entradas e saídas brutas para essa etapa, selecione Mostrar entradas brutas ou Mostrar saídas brutas.

    A captura de tela mostra o status de cada etapa do fluxo de trabalho, além de entradas e saídas na ação expandida chamada Enviar um e-mail.

  9. Para interromper a sessão de depuração, no menu Executar , selecione Parar Depuração (Shift + F5).

Devolver uma resposta

Quando você tem um fluxo de trabalho que começa com o gatilho Solicitação , você pode retornar uma resposta ao chamador que enviou uma solicitação para seu fluxo de trabalho usando a ação interna Solicitação chamada Resposta.

  1. No designer de fluxo de trabalho, em Enviar uma ação de email, selecione o sinal de adição (+) >Adicionar uma ação.

    O painel Adicionar uma ação é aberto para que você possa selecionar a próxima ação.

  2. No painel Adicionar uma ação, na lista Tempo de execução, selecione No aplicativo. Localize e adicione a ação Resposta .

    Depois que a ação Resposta for exibida no designer, o painel de detalhes da ação será aberto automaticamente.

    A captura de tela mostra o designer de fluxo de trabalho e o painel Informações de resposta.

  3. Na guia Parâmetros, forneça as informações necessárias para a função que você deseja chamar.

    Este exemplo retorna o valor do parâmetro Body , que é a saída da ação Enviar um email .

    1. Para o parâmetro Body , selecione dentro da caixa de edição e selecione o ícone de relâmpago, que abre a lista de conteúdo dinâmico. Esta lista mostra os valores de saída disponíveis do gatilho anterior e as ações no fluxo de trabalho.

    2. Na lista de conteúdo dinâmico, em Enviar um e-mail, selecione Corpo.

      A captura de tela mostra a lista de conteúdo dinâmico aberta onde, em Enviar um cabeçalho de e-mail, o valor de saída Corpo está selecionado.

      Quando terminar, a propriedade Corpo da ação Resposta agora está definida como o valor de saída Corpo da ação Enviar um email.

      A captura de tela mostra o designer de fluxo de trabalho, o painel Informações de resposta e o parâmetro Body definidos como Valor de corpo para a ação chamada Enviar um email.

  4. No designer, selecione Salvar.

Teste novamente seu aplicativo lógico

Depois de fazer atualizações para seu aplicativo lógico, você pode executar outro teste executando novamente o depurador no Visual Studio Code e enviando outra solicitação para acionar seu aplicativo lógico atualizado, semelhante às etapas em Executar, testar e depurar localmente.

  1. Na barra de atividade de código do Visual Studio, abra o menu Executar e selecione Iniciar depuração (F5).

  2. Na sua ferramenta de criação e envio de pedidos, envie outro pedido para acionar o seu fluxo de trabalho.

  3. Se você criou um fluxo de trabalho com monitoração de estado, na página de visão geral do fluxo de trabalho, verifique o status da execução mais recente. Para visualizar o status, as entradas e as saídas de cada etapa dessa execução, selecione o botão de reticências (...) dessa execução e selecione Mostrar execução.

    Por exemplo, aqui está o status passo a passo de uma execução depois que o fluxo de trabalho de exemplo foi atualizado com a ação Resposta.

    A captura de tela mostra o status de cada etapa do fluxo de trabalho atualizado, além de entradas e saídas na ação Resposta expandida.

  4. Para interromper a sessão de depuração, no menu Executar , selecione Parar Depuração (Shift + F5).

Encontrar nomes de domínio para acesso por firewall

Antes de implantar e executar seu fluxo de trabalho de aplicativo lógico no portal do Azure, se seu ambiente tiver requisitos de rede rigorosos ou firewalls que limitem o tráfego, você precisará configurar permissões para quaisquer conexões de gatilho ou ação existentes em seu fluxo de trabalho.

Para localizar os FQDNs (nomes de domínio totalmente qualificados) para essas conexões, siga estas etapas:

  1. Em seu projeto de aplicativo lógico, abra o arquivo connections.json , que é criado depois que você adiciona o primeiro gatilho ou ação baseada em conexão ao seu fluxo de trabalho, e localize o managedApiConnections objeto.

  2. Para cada conexão que você criou, copie e salve o valor da connectionRuntimeUrl propriedade em algum lugar seguro para que você possa configurar seu firewall com essas informações.

    Este exemplo connections.json arquivo contém duas conexões, uma conexão AS2 e uma conexão do Office 365 com estes connectionRuntimeUrl valores:

    • AS2: "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba

    • Office 365: "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f

    {
       "managedApiConnections": {
          "as2": {
             "api": {
                "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/as2"
             },
             "connection": {
                "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}"
             },
             "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba,
             "authentication": {
                "type":"ManagedServiceIdentity"
             }
          },
          "office365": {
             "api": {
                "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/office365"
             },
             "connection": {
                "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}"
             },
             "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f,
             "authentication": {
                "type":"ManagedServiceIdentity"
             }
          }
       }
    }
    

Implementar no Azure

No Visual Studio Code, você pode publicar diretamente seu projeto no Azure para implantar seu recurso de aplicativo lógico padrão. Você pode publicar seu aplicativo lógico como um novo recurso, que cria automaticamente todos os recursos necessários, como uma conta de Armazenamento do Azure, semelhante aos requisitos do aplicativo de função. Ou, você pode publicar seu aplicativo lógico em um recurso de aplicativo lógico padrão implantado anteriormente, que substitui esse aplicativo lógico.

A implantação para o recurso de aplicativo lógico padrão requer um plano de hospedagem e uma camada de preço, que você seleciona durante a implantação. Para obter mais informações, consulte Planos de hospedagem e níveis de preços.

Publicar em um novo recurso de aplicativo lógico padrão

  1. Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure para abrir a janela do Azure.

  2. Na janela do Azure, na barra de ferramentas da seção Espaço de trabalho, no menu Aplicativos Lógicos do Azure, selecione Implantar no Aplicativo Lógico.

    A captura de tela mostra a janela do Azure com a barra de ferramentas Espaço de Trabalho e o menu de atalho Aplicativos Lógicos do Azure com Implantar no Aplicativo Lógico selecionado.

  3. Se solicitado, selecione a assinatura do Azure a ser usada para sua implantação de aplicativo lógico.

  4. Na lista que o Visual Studio Code abre, selecione uma destas opções:

    • Criar novo Aplicativo Lógico (Padrão) no Azure (rápido)
    • Criar novo Aplicativo Lógico (Padrão) no Azure Advanced
    • Um recurso de Aplicativo Lógico (Padrão) implantado anteriormente, se houver algum

    Este exemplo continua com Criar novo Aplicativo Lógico (Padrão) no Azure Advanced.

    A captura de tela mostra a lista de opções de implantação e a opção selecionada, Criar novo Aplicativo Lógico (Padrão) no Azure Advanced.

  5. Para criar seu novo recurso de aplicativo lógico padrão, siga estas etapas:

    1. Forneça um nome globalmente exclusivo para seu novo aplicativo lógico, que é o nome a ser usado para o recurso Aplicativo Lógico (Padrão ). Este exemplo usa Fabrikam-Workflows-App.

      A captura de tela mostra o prompt para fornecer um nome para o novo aplicativo lógico a ser criado.

    2. Selecione um plano de hospedagem para seu novo aplicativo lógico. Crie um nome para seu plano ou selecione um plano existente (somente planos do Serviço de Aplicativo baseados no Windows). Este exemplo seleciona Criar novo Plano do Serviço de Aplicativo.

      Captura de tela que mostra o painel

    3. Forneça um nome para o seu plano de hospedagem e, em seguida, selecione uma camada de preço para o plano selecionado.

      Para obter mais informações, consulte Planos de hospedagem e níveis de preços.

    4. Para um desempenho ideal, selecione o mesmo grupo de recursos que seu projeto para a implantação.

      Nota

      Embora você possa criar ou usar um grupo de recursos diferente, isso pode afetar o desempenho. Se você criar ou escolher um grupo de recursos diferente, mas cancelar depois que o prompt de confirmação for exibido, sua implantação também será cancelada.

    5. Para fluxos de trabalho com monitoração de estado, selecione Criar nova conta de armazenamento ou uma conta de armazenamento existente.

      Captura de tela que mostra o painel

    6. Se as configurações de criação e implantação do seu aplicativo lógico oferecerem suporte ao uso do Application Insights, você poderá, opcionalmente, habilitar o registro e o rastreamento de diagnósticos para seu aplicativo lógico. Você pode fazer isso ao implantar seu aplicativo lógico a partir do Visual Studio Code ou após a implantação. Você precisa ter uma instância do Application Insights, mas pode criar esse recurso com antecedência, quando implantar seu aplicativo lógico ou após a implantação.

      Para habilitar o registro em log e o rastreamento agora, siga estas etapas:

      1. Selecione um recurso existente do Application Insights ou Criar novo recurso do Application Insights.

      2. No portal do Azure, vá para o recurso do Application Insights.

      3. No menu de recursos, selecione Visão geral. Localize e copie o valor da Chave de instrumentação.

      4. No Visual Studio Code, na pasta raiz do projeto, abra o arquivo local.settings.json .

      5. Values No objeto, adicione a APPINSIGHTS_INSTRUMENTATIONKEY propriedade e defina o valor para a chave de instrumentação, por exemplo:

        {
           "IsEncrypted": false,
           "Values": {
              "AzureWebJobsStorage": "UseDevelopmentStorage=true",
              "FUNCTIONS_WORKER_RUNTIME": "dotnet",
              "APPINSIGHTS_INSTRUMENTATIONKEY": <instrumentation-key>
           }
        }
        

        Gorjeta

        Você pode verificar se os nomes de gatilho e ação aparecem corretamente em sua instância do Application Insights.

        1. No portal do Azure, vá para o recurso do Application Insights.

        2. No menu de recursos, em Investigar, selecione Mapa do aplicativo.

        3. Revise os nomes das operações que aparecem no mapa.

        Algumas solicitações de entrada de gatilhos internos podem aparecer como duplicatas no Mapa do Aplicativo. Em vez de usar o WorkflowName.ActionName formato, essas duplicatas usam o nome do fluxo de trabalho como o nome da operação e se originam do host do Azure Functions.

      6. Em seguida, você pode, opcionalmente, ajustar o nível de gravidade para os dados de rastreamento que seu aplicativo lógico coleta e envia para sua instância do Application Insights.

        Cada vez que um evento relacionado ao fluxo de trabalho acontece, como quando um fluxo de trabalho é acionado ou quando uma ação é executada, o tempo de execução emite vários rastreamentos. Esses rastreamentos cobrem o tempo de vida do fluxo de trabalho e incluem, entre outros, os seguintes tipos de eventos:

        • Atividade de serviço, como iniciar, parar e erros.
        • Trabalhos e atividade de despachante.
        • Atividade do fluxo de trabalho, como gatilho, ação e execução.
        • Atividade de solicitação de armazenamento, como sucesso ou falha.
        • Atividade de solicitação HTTP, como entrada, saída, êxito e falha.
        • Qualquer rastreamento de desenvolvimento, como mensagens de depuração.

        Cada tipo de evento é atribuído a um nível de gravidade. Por exemplo, o Trace nível captura as mensagens mais detalhadas, enquanto o nível captura a atividade geral em seu fluxo de trabalho, como quando seu aplicativo lógico, fluxo de trabalho, gatilho Information e ações começam e param. Esta tabela descreve os níveis de severidade e seus tipos de rastreamento:

        Nível de gravidade Tipo de rastreio
        Crítico Logs que descrevem uma falha irrecuperável em seu aplicativo lógico.
        Depurar Logs que você pode usar para investigação durante o desenvolvimento, por exemplo, chamadas HTTP de entrada e saída.
        Erro Logs que indicam uma falha na execução do fluxo de trabalho, mas não uma falha geral em seu aplicativo lógico.
        Informação Logs que rastreiam a atividade geral em seu aplicativo lógico ou fluxo de trabalho, por exemplo:

        - Quando um gatilho, ação ou execução começa e termina.
        - Quando seu aplicativo lógico começa ou termina.

        Rastreio Logs que contêm as mensagens mais detalhadas, por exemplo, solicitações de armazenamento ou atividade do dispatcher, além de todas as mensagens relacionadas à atividade de execução do fluxo de trabalho.
        Aviso Logs que destacam um estado anormal em seu aplicativo lógico, mas não impedem sua execução.

        Para definir o nível de gravidade, no nível raiz do projeto, abra o arquivo host.json e localize o logging objeto. Este objeto controla a filtragem de log para todos os fluxos de trabalho em seu aplicativo lógico e segue o layout ASP.NET Core para filtragem de tipo de log.

        {
           "version": "2.0",
           "logging": {
              "applicationInsights": {
                 "samplingExcludedTypes": "Request",
                 "samplingSettings": {
                    "isEnabled": true
                 }
              }
           }
        }
        

        Se o logging objeto não contiver um logLevel objeto que inclua a Host.Triggers.Workflow propriedade, adicione esses itens. Defina a propriedade para o nível de severidade para o tipo de rastreamento desejado, por exemplo:

        {
           "version": "2.0",
           "logging": {
              "applicationInsights": {
                 "samplingExcludedTypes": "Request",
                 "samplingSettings": {
                    "isEnabled": true
                 }
              },
              "logLevel": {
                 "Host.Triggers.Workflow": "Information"
              }
           }
        }
        

    Quando você terminar as etapas de implantação, o Visual Studio Code começará a criar e implantar os recursos necessários para publicar seu aplicativo lógico.

  6. Para revisar e monitorar o processo de implantação, no menu Exibir , selecione Saída. Na lista da barra de ferramentas Janela de saída, selecione Aplicativos Lógicos do Azure.

    A captura de tela mostra a janela Saída com os Aplicativos Lógicos do Azure selecionados na lista da barra de ferramentas, juntamente com o progresso e os status da implantação.

    Quando o Visual Studio Code concluir a implantação de seu aplicativo lógico no Azure, a seguinte mensagem será exibida:

    A captura de tela mostra uma mensagem que a implantação no Azure foi concluída com êxito.

    Parabéns, seu aplicativo lógico agora está ativo no Azure e habilitado por padrão.

Em seguida, você pode aprender como executar estas tarefas:

Adicionar fluxo de trabalho em branco ao projeto

Você pode ter vários fluxos de trabalho em seu projeto de aplicativo lógico. Para adicionar um fluxo de trabalho em branco ao seu projeto, siga estas etapas:

  1. Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure.

  2. Na janela do Azure, na barra de ferramentas da seção Espaço de trabalho, no menu Aplicativos Lógicos do Azure, selecione Criar fluxo de trabalho.

  3. Selecione o tipo de fluxo de trabalho que você deseja adicionar: Stateful ou Stateless

  4. Forneça um nome para o seu fluxo de trabalho.

Quando terminar, uma nova pasta de fluxo de trabalho aparecerá em seu projeto junto com um arquivo de workflow.json para a definição do fluxo de trabalho.

Gerenciar aplicativos lógicos implantados no Visual Studio Code

No Visual Studio Code, você pode exibir todos os aplicativos lógicos implantados em sua assinatura do Azure, sejam eles recursos de aplicativo lógico Consumo ou Padrão, e selecionar tarefas que ajudam a gerenciar esses aplicativos lógicos. No entanto, para acessar ambos os tipos de recursos, você precisa das extensões Aplicativos Lógicos do Azure (Consumo) e Aplicativos Lógicos do Azure (Padrão) para o Visual Studio Code.

  1. Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure. Em Recursos, expanda sua assinatura e expanda Aplicativo Lógico, que mostra todos os aplicativos lógicos implantados no Azure para essa assinatura.

  2. Abra o aplicativo lógico que você deseja gerenciar. No menu de atalho do aplicativo lógico, selecione a tarefa que deseja executar.

    Por exemplo, você pode selecionar tarefas como parar, iniciar, reiniciar ou excluir seu aplicativo lógico implantado. Você pode desabilitar ou habilitar um fluxo de trabalho usando o portal do Azure.

    Nota

    As operações do aplicativo lógico de parada e exclusão do aplicativo lógico afetam as instâncias de fluxo de trabalho de maneiras diferentes. Para obter mais informações, consulte Considerações para parar aplicativos lógicos e Considerações para excluir aplicativos lógicos.

    A captura de tela mostra a seção Código do Visual Studio com Recursos e o recurso do aplicativo lógico implantado.

  3. Para exibir todos os fluxos de trabalho no aplicativo lógico, expanda seu aplicativo lógico e, em seguida, expanda o nó Fluxos de trabalho.

  4. Para exibir um fluxo de trabalho específico, abra o menu de atalho do fluxo de trabalho e selecione Abrir no Designer, que abre o fluxo de trabalho no modo somente leitura.

    Para editar o fluxo de trabalho, você tem estas opções:

    • No Visual Studio Code, abra o arquivo de workflow.json do seu projeto no designer de fluxo de trabalho, faça suas edições e reimplante seu aplicativo lógico no Azure.

    • No portal do Azure, abra seu aplicativo lógico. Em seguida, você pode abrir, editar e salvar seu fluxo de trabalho.

  5. Para abrir o aplicativo lógico implantado no portal do Azure, abra o menu de atalho do aplicativo lógico e selecione Abrir no Portal.

    O portal do Azure é aberto em seu navegador, entra automaticamente no portal se você estiver conectado ao Visual Studio Code e mostra seu aplicativo lógico.

    A captura de tela mostra a página do portal do Azure para seu aplicativo lógico no Visual Studio Code.

    Também pode iniciar sessão separadamente no portal do Azure, utilizar a caixa de pesquisa do portal para localizar a sua aplicação lógica e, em seguida, selecionar a sua aplicação lógica na lista de resultados.

    A captura de tela mostra o portal do Azure e a barra de pesquisa com os resultados da pesquisa para o aplicativo lógico implantado, que aparece selecionado.

Considerações para interromper aplicativos lógicos

A interrupção de um aplicativo lógico afeta as instâncias de fluxo de trabalho das seguintes maneiras:

  • Os Aplicativos Lógicos do Azure cancelam todas as execuções em andamento e pendentes imediatamente.

  • Os Aplicativos Lógicos do Azure não criam nem executam novas instâncias de fluxo de trabalho.

  • Os gatilhos não serão acionados na próxima vez que suas condições forem atendidas. No entanto, os estados de gatilho lembram os pontos em que o aplicativo lógico foi interrompido. Portanto, se você reiniciar o aplicativo lógico, os gatilhos serão acionados para todos os itens não processados desde a última execução.

    Para impedir que um gatilho dispare em itens não processados desde a última execução, limpe o estado do gatilho antes de reiniciar o aplicativo lógico:

    1. Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure para abrir a janela do Azure.

    2. Na seção Recursos, expanda sua assinatura, que mostra todos os aplicativos lógicos implantados para essa assinatura.

    3. Expanda seu aplicativo lógico e, em seguida, expanda o nó chamado Fluxos de trabalho.

    4. Abra um fluxo de trabalho e edite qualquer parte do gatilho desse fluxo de trabalho.

    5. Guardar as suas alterações. Esta etapa redefine o estado atual do gatilho.

    6. Repita para cada fluxo de trabalho.

    7. Quando terminar, reinicie o aplicativo lógico.

Considerações para excluir aplicativos lógicos

A exclusão de um aplicativo lógico afeta as instâncias de fluxo de trabalho das seguintes maneiras:

  • Os Aplicativos Lógicos do Azure cancelam as execuções em andamento e pendentes imediatamente, mas não executam tarefas de limpeza no armazenamento usado pelo aplicativo.

  • Os Aplicativos Lógicos do Azure não criam nem executam novas instâncias de fluxo de trabalho.

  • Se você excluir um fluxo de trabalho e, em seguida, recriar o mesmo fluxo de trabalho, o fluxo de trabalho recriado não terá os mesmos metadados que o fluxo de trabalho excluído. Para atualizar os metadados, você precisa salvar novamente qualquer fluxo de trabalho chamado fluxo de trabalho excluído. Dessa forma, o chamador obtém as informações corretas para o fluxo de trabalho recriado. Caso contrário, as chamadas para o fluxo de trabalho recriado falharão com um Unauthorized erro. Esse comportamento também se aplica a fluxos de trabalho que usam artefatos em contas de integração e fluxos de trabalho que chamam funções do Azure.

Gerenciar aplicativos lógicos implantados no portal

Depois de implantar um aplicativo lógico no portal do Azure a partir do Visual Studio Code, você pode exibir todos os aplicativos lógicos implantados que estão em sua assinatura do Azure, sejam eles recursos do aplicativo lógico Consumo ou Padrão. Atualmente, cada tipo de recurso é organizado e gerenciado como categorias separadas no Azure. Para localizar aplicativos lógicos padrão, siga estas etapas:

  1. Na caixa de pesquisa do portal do Azure, insira aplicativos lógicos. Quando a lista de resultados for exibida, em Serviços, selecione Aplicativos lógicos.

    A captura de tela mostra a caixa de pesquisa do portal do Azure com aplicativos lógicos como texto de pesquisa.

  2. No painel Aplicativos lógicos, selecione o aplicativo lógico que você implantou a partir do Visual Studio Code.

    A captura de tela mostra o portal do Azure e os recursos do aplicativo lógico padrão implantados no Azure.

    O portal do Azure abre a página de recursos individuais para o aplicativo lógico selecionado.

    A captura de tela mostra o portal do Azure e sua página de recursos do aplicativo lógico.

  3. Para exibir os fluxos de trabalho neste aplicativo lógico, no menu do aplicativo lógico, selecione Fluxos de trabalho.

    O painel Fluxos de trabalho mostra todos os fluxos de trabalho no aplicativo lógico atual. Este exemplo mostra o fluxo de trabalho que você criou no Visual Studio Code.

    A captura de tela mostra a página de recursos do aplicativo lógico com o painel Fluxos de trabalho e fluxos de trabalho abertos.

  4. Para exibir um fluxo de trabalho, no painel Fluxos de trabalho, selecione esse fluxo de trabalho.

    O painel de fluxo de trabalho é aberto e mostra mais informações e tarefas que você pode executar nesse fluxo de trabalho.

    Por exemplo, para exibir as etapas no fluxo de trabalho, selecione Designer.

    A captura de tela mostra o painel Visão geral do fluxo de trabalho selecionado, enquanto o menu do fluxo de trabalho mostra o comando

    O designer de fluxo de trabalho abre e mostra o fluxo de trabalho que você criou no Visual Studio Code. Agora você pode fazer alterações nesse fluxo de trabalho no portal do Azure.

    A captura de tela mostra o designer de fluxo de trabalho e o fluxo de trabalho implantado a partir do Visual Studio Code.

Adicionar outro fluxo de trabalho no portal

Por meio do portal do Azure, você pode adicionar fluxos de trabalho em branco a um recurso de aplicativo lógico padrão implantado a partir do Visual Studio Code e criar esses fluxos de trabalho no portal do Azure.

  1. No portal do Azure, selecione seu recurso de aplicativo lógico padrão implantado.

  2. No menu de recursos do aplicativo lógico, selecione Fluxos de trabalho. No painel Fluxos de trabalho, selecione Adicionar.

    A captura de tela mostra o painel Fluxos de trabalho e a barra de ferramentas do aplicativo lógico selecionado com o comando Adicionar selecionado.

  3. No painel Novo fluxo de trabalho, forneça o nome para o fluxo de trabalho. Selecione Stateful ou Stateless > Create.

    Depois que o Azure implantar seu novo fluxo de trabalho, que aparece no painel Fluxos de trabalho, selecione esse fluxo de trabalho para que você possa gerenciar e executar outras tarefas, como abrir o designer ou o modo de exibição de código.

    A captura de tela mostra o fluxo de trabalho selecionado com opções de gerenciamento e revisão.

    Por exemplo, abrir o designer para um novo fluxo de trabalho mostra uma tela em branco. Agora você pode criar esse fluxo de trabalho no portal do Azure.

    A captura de tela mostra o designer de fluxo de trabalho e o fluxo de trabalho em branco.

Habilitar o histórico de execução para fluxos de trabalho sem monitoração de estado

Para depurar um fluxo de trabalho sem estado mais facilmente, você pode habilitar o histórico de execução para esse fluxo de trabalho e, em seguida, desabilitar o histórico de execução quando terminar. Siga estas etapas para o Visual Studio Code ou, se estiver trabalhando no portal do Azure, consulte Criar fluxos de trabalho baseados em locatário único no portal do Azure.

  1. Em seu projeto do Visual Studio Code, no nível da pasta raiz, abra o arquivo local.settings.json .

  2. Adicione a Workflows.{yourWorkflowName}.operationOptions propriedade e defina o valor como , por WithStatelessRunHistoryexemplo:

    Windows

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    

    macOS ou Linux

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=fabrikamstorageacct; \
              AccountKey=<access-key>;EndpointSuffix=core.windows.net",
          "FUNCTIONS_WORKER_RUNTIME": "dotnet",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    
  3. Na pasta do projeto chamada workflow-designtime, abra o arquivo local.settings.json e faça a mesma alteração.

  4. Para desativar o histórico de execução quando terminar, defina a Workflows.{yourWorkflowName}.OperationOptionspropriedade como None, ou exclua a propriedade e seu valor.

Habilitar o modo de exibição de monitoramento no portal do Azure

Depois de implantar um recurso de Aplicativo Lógico (Padrão) do Visual Studio Code no Azure, você pode revisar qualquer histórico de execução disponível e detalhes de um fluxo de trabalho nesse recurso usando o portal do Azure e a experiência do Monitor para esse fluxo de trabalho. No entanto, primeiro você precisa habilitar o recurso de exibição Monitor nesse recurso de aplicativo lógico.

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

  2. No menu de recursos do aplicativo lógico, em API, selecione CORS.

  3. No painel CORS, em Origens permitidas, adicione o caractere curinga (*).

  4. Quando terminar, na barra de ferramentas CORS , selecione Salvar.

    A captura de tela mostra o portal do Azure com o recurso de aplicativo lógico padrão implantado. No menu de recursos, CORS é selecionado com uma nova entrada para Origens permitidas definida como o caractere curinga *.

Habilitar ou abrir o Application Insights após a implantação

Durante a execução do fluxo de trabalho, seu aplicativo lógico emite telemetria junto com outros eventos. Você pode usar essa telemetria para obter melhor visibilidade sobre como seu fluxo de trabalho é executado e como o tempo de execução dos Aplicativos Lógicos funciona de várias maneiras. Você pode monitorar seu fluxo de trabalho usando o Application Insights, que fornece telemetria quase em tempo real (métricas ao vivo). Esse recurso pode ajudá-lo a investigar falhas e problemas de desempenho mais facilmente quando você usa esses dados para diagnosticar problemas, configurar alertas e criar gráficos.

Se as configurações de criação e implantação do seu aplicativo lógico oferecerem suporte ao uso do Application Insights, você poderá, opcionalmente, habilitar o registro e o rastreamento de diagnósticos para seu aplicativo lógico. Você pode fazer isso ao implantar seu aplicativo lógico a partir do Visual Studio Code ou após a implantação. Você precisa ter uma instância do Application Insights, mas pode criar esse recurso com antecedência, quando implantar seu aplicativo lógico ou após a implantação.

Para habilitar o Application Insights em um aplicativo lógico implantado ou para revisar os dados do Application Insights quando já habilitados, siga estas etapas:

  1. No portal do Azure, localize seu aplicativo lógico implantado.

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

  3. Se o Application Insights não estiver habilitado, no painel Application Insights , selecione Ativar Application Insights. Após as atualizações do painel, na parte inferior, selecione Aplicar.

    Se o Application Insights estiver habilitado, no painel Application Insights , selecione Exibir dados do Application Insights.

Depois que o Application Insights for aberto, você poderá revisar várias métricas para seu aplicativo lógico. Para obter mais informações, revise estes tópicos:

Excluir itens do designer

Para excluir um item do designer no fluxo de trabalho, siga uma destas etapas:

  • Selecione o item, abra o menu de atalho do item (Shift+F10) e selecione Excluir. Para confirmar, selecione OK.

  • Selecione o item e pressione a tecla delete. Para confirmar, selecione OK.

  • Selecione o item para que o painel de detalhes seja aberto para esse item. No canto superior direito do painel, abra o menu de reticências (...) e selecione Excluir. Para confirmar, selecione OK.

    A captura de tela mostra um item selecionado no designer com o painel de informações aberto, além do botão de reticências selecionadas e do comando

    Gorjeta

    Se o menu de reticências não estiver visível, expanda a janela Código do Visual Studio ampla o suficiente para que o painel de detalhes mostre o botão de reticências (...) no canto superior direito.

Solucionar erros e problemas

Falha ao abrir o designer

Quando você tenta abrir o designer, você recebe este erro, "O tempo de design do fluxo de trabalho não pôde ser iniciado". Se você tentou abrir o designer anteriormente e, em seguida, descontinuou ou excluiu seu projeto, o pacote de extensão pode não estar sendo baixado corretamente. Para verificar se esta causa é o problema, siga estes passos:

  1. No Visual Studio Code, abra a janela Saída. No menu Exibir, selecione Saída.

  2. Na lista na barra de título da janela Saída, selecione Aplicativos Lógicos do Azure (Padrão) para que você possa revisar a saída da extensão, por exemplo:

    Captura de ecrã que mostra a janela Saída com

  3. Revise a saída e verifique se essa mensagem de erro aparece:

    A host error has occurred during startup operation '{operationID}'.
    System.Private.CoreLib: The file 'C:\Users\{userName}\AppData\Local\Temp\Functions\
    ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows\1.1.7\bin\
    DurableTask.AzureStorage.dll' already exists.
    Value cannot be null. (Parameter 'provider')
    Application is shutting down...
    Initialization cancellation requested by runtime.
    Stopping host...
    Host shutdown completed.
    

Para resolver esse erro, exclua a pasta ExtensionBundles neste local ...\Users{your-username}\AppData\Local\Temp\Functions\ExtensionBundles e tente abrir novamente o arquivo workflow.json no designer.

Novos gatilhos e ações estão faltando no seletor de designer para fluxos de trabalho criados anteriormente

Os Aplicativos Lógicos do Azure de locatário único dão suporte a ações internas para Operações de Função do Azure, Operações Líquidas e Operações XML, como Validação XML e Transformação XML. No entanto, para aplicativos lógicos criados anteriormente, essas ações podem não aparecer no seletor de designer para você selecionar se o Visual Studio Code usa uma versão desatualizada do pacote de extensão, Microsoft.Azure.Functions.ExtensionBundle.Workflows.

Além disso, o conector e as ações das Operações de Função do Azure não aparecem no seletor de designers, a menos que você tenha habilitado ou selecionado Usar conectores do Azure quando criou seu aplicativo lógico. Se você não habilitou os conectores implantados no Azure no momento da criação do aplicativo, poderá habilitá-los a partir do seu projeto no Visual Studio Code. Abra o menu de atalho workflow.json e selecione Usar conectores do Azure.

Para corrigir o pacote desatualizado, siga estas etapas para excluir o pacote desatualizado, o que faz com que o Visual Studio Code atualize automaticamente o pacote de extensão para a versão mais recente.

Nota

Essa solução se aplica somente aos aplicativos lógicos que você cria e implanta usando o Visual Studio Code com a extensão Aplicativos Lógicos do Azure (Padrão), não aos aplicativos lógicos que você criou usando o portal do Azure. Consulte Gatilhos e ações suportados estão ausentes do designer no portal do Azure.

  1. Salve qualquer trabalho que você não queira perder e feche o Visual Studio Code.

  2. No computador, navegue até a seguinte pasta, que contém pastas versionadas para o pacote existente:

    ...\Users\{your-username}\.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows

  3. Exclua a pasta version do pacote anterior, por exemplo, se você tiver uma pasta para a versão 1.1.3, exclua essa pasta.

  4. Agora, navegue até a seguinte pasta, que contém pastas versionadas para o pacote NuGet necessário:

    ...\Users\{your-username}\.nuget\packages\microsoft.azure.workflows.webjobs.extension

  5. Exclua a pasta version do pacote anterior.

  6. Reabra o Visual Studio Code, seu projeto e o arquivo workflow.json no designer.

Os gatilhos e ações ausentes agora aparecem no designer.

"400 Bad Request" aparece em um gatilho ou ação

Quando uma execução falha e você inspeciona a execução no modo de exibição de monitoramento, esse erro pode aparecer em um gatilho ou ação que tenha um nome mais longo, o que faz com que o URI (Uniform Resource Identifier) subjacente exceda o limite de caracteres padrão.

Para resolver esse problema e ajustar para o URI mais longo, edite as chaves e UrlSegmentMaxLength do UrlSegmentMaxCount Registro no seu computador seguindo as etapas abaixo. Os valores padrão dessa chave são descritos neste tópico, Http.sys configurações do Registro para Windows.

Importante

Antes de começar, certifique-se de que guarda o seu trabalho. Esta solução requer que reinicie o computador depois de terminar para que as alterações possam entrar em vigor.

  1. No computador, abra a janela Executar e execute o regedit comando, que abre o editor do Registro.

  2. Na caixa Controle de Conta de Usuário, selecione Sim para permitir as alterações no computador.

  3. No painel esquerdo, em Computador, expanda os nós ao longo do caminho, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters e selecione Parâmetros.

  4. No painel direito, localize as chaves e UrlSegmentMaxLength do UrlSegmentMaxCount Registro.

  5. Aumente esses valores de chave o suficiente para que os URIs possam acomodar os nomes que você deseja usar. Se essas chaves não existirem, adicione-as à pasta Parâmetros seguindo estas etapas:

    1. No menu de atalho Parâmetros, selecione Novo>valor DWORD (32 bits).

    2. Na caixa de edição apresentada, introduza UrlSegmentMaxCount como o nome da nova chave.

    3. Abra o menu de atalho da nova tecla e selecione Modificar.

    4. Na caixa Editar Cadeia de Caracteres exibida, insira o valor da chave de dados do valor desejado no formato hexadecimal ou decimal. Por exemplo, 400 em hexadecimal é equivalente a 1024 em decimal.

    5. Para adicionar o valor da UrlSegmentMaxLength chave, repita estas etapas.

    Depois de aumentar ou adicionar esses valores de chave, o editor do Registro se parece com este exemplo:

    Captura de tela que mostra o editor do Registro.

  6. Quando estiver pronto, reinicie o computador para que as alterações entrem em vigor.

Falha ao iniciar a sessão de depuração

Quando você tenta iniciar uma sessão de depuração, você recebe o erro, "O erro existe depois de executar preLaunchTask 'generateDebugSymbols'". Para resolver esse problema, edite o arquivo tasks.json em seu projeto para ignorar a geração de símbolos.

  1. Em seu projeto, expanda a pasta chamada .vscode e abra o arquivo tasks.json .

  2. Na tarefa a seguir, exclua a linha, "dependsOn: "generateDebugSymbols"juntamente com a vírgula que termina a linha anterior, por exemplo:

    Antes:

     {
       "type": "func",
       "command": "host start",
       "problemMatcher": "$func-watch",
       "isBackground": true,
       "dependsOn": "generateDebugSymbols"
     }
    

    Depois:

     {
       "type": "func",
       "command": "host start",
       "problemMatcher": "$func-watch",
       "isBackground": true
     }
    

Próximos passos

Gostaríamos de ouvir de você sobre suas experiências com a extensão Azure Logic Apps (Standard)!