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.
À 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
Baixe e instale o Visual Studio Code, que é gratuito.
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.
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.
No Visual Studio Code, na barra de atividades, selecione Extensões. (Teclado: pressione Ctrl+Shift+X)
No painel Extensões, abra o menu de reticências (...) e selecione Instalar a partir do VSIX.
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 .
Quando o seguinte prompt for exibido, selecione Sim (Recomendado) para confirmar que deseja instalar automaticamente as dependências necessárias:
Recarregue o código do Visual Studio, se necessário.
Confirme se as dependências aparecem corretamente na seguinte pasta:
C:\Users\<seu-nome-de-usuário>\.azurelogicapps\dependencies\<dependency-name>
Confirme as seguintes configurações de extensão no Visual Studio Code:
No menu Arquivo, selecione Configurações de preferências>.
Na guia Usuário, selecione Extensões>Aplicativos Lógicos do Azure (Padrão).
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)
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 .
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:
Adicione o caminho binário dotnet à variável PATH do seu ambiente.
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.
Na caixa Propriedades do Sistema, na guia Avançado, selecione Variáveis de Ambiente.
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.
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
Quando tiver terminado, selecione OK.
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:
No menu Exibir, selecione Paleta de comandos.
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.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.
No Visual Studio Code, na barra de ferramentas esquerda, selecione Extensões.
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 .
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.
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.
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.
Instale ou use uma ferramenta que possa enviar solicitações HTTP para testar sua solução, por exemplo:
- Código do Visual Studio com uma extensão do Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ferramenta Network Console
- Adriano
- ondulação
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
Para certificar-se de que todas as extensões estão instaladas corretamente, recarregue ou reinicie o Visual Studio Code.
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.
No menu Arquivo, vá para Configurações de Preferências > .
Na guia Usuário, vá para Extensões de recursos > .
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.
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.
No menu Arquivo, vá para Configurações de Preferências > .
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:
Ligar à sua conta do Azure
Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure.
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.
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:
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.
Ou, na barra de status do Visual Studio Code, selecione sua conta do Azure.
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.
No seu computador, crie uma pasta local vazia para usar para o projeto que você criará posteriormente no Visual Studio Code.
No Visual Studio Code, feche todas as pastas abertas.
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.
Se o Firewall do Windows Defender solicitar que você conceda acesso à rede para
Code.exe
, que é o Visual Studio Code, e parafunc.exe
, que são as Ferramentas Principais do Azure Functions, selecione Redes privadas, como minha rede > doméstica ou de trabalho Permitir acesso.Navegue até o local onde você criou a pasta do projeto, selecione essa pasta e continue.
Na lista de modelos exibida, selecione Fluxo de trabalho com estado ou Fluxo de trabalho sem estado. Este exemplo seleciona Stateful Workflow.
Forneça um nome para seu fluxo de trabalho e pressione Enter. Este exemplo usa Stateful-Workflow como o nome.
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.
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.
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.
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:
Nota
A configuração FUNCTIONS_WORKER_RUNTIME aplicativo é necessária para seu aplicativo lógico padrão e o valor foi definido anteriormente como nó. 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.
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.
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:
Se ainda não o fez, converta seu projeto de baseado em pacote de extensão (Node.js) para baseado em pacote NuGet (.NET).
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:
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.
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.
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:
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.>
Abrir o arquivo de definição do fluxo de trabalho no designer
Expanda a pasta de projeto do fluxo de trabalho, chamada Stateful-Workflow neste exemplo, e abra o arquivo workflow.json .
Abra o menu de atalho do arquivo workflow.json e selecione Abrir Designer.
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.
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.
Depois que a lista Selecionar assinatura for aberta, selecione a assinatura do Azure a ser usada para seu projeto de aplicativo lógico.
Depois que a lista de grupos de recursos for aberta, selecione Criar novo grupo de recursos.
Forneça um nome para o grupo de recursos e pressione Enter. Este exemplo usa Fabrikam-Workflows-RG.
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.
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.
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.
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:
O gatilho de conector interno de solicitação chamado Quando uma solicitação HTTP é recebida, que pode receber chamadas ou solicitações de entrada e cria um ponto de extremidade que outros serviços ou fluxos de trabalho de aplicativos lógicos podem chamar.
A ação do conector gerenciado do Office 365 Outlook chamada Enviar um email. Para seguir este guia de instruções, precisa de uma conta de e-mail do Office 365 Outlook. Se você tiver uma conta de email suportada por um conector diferente, poderá usá-lo, mas a experiência do usuário desse conector será diferente das etapas deste exemplo.
A ação Solicitar conector interno chamada Resposta, que você usa para enviar uma resposta e retornar dados para o chamador.
Adicionar o gatilho de solicitação
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.
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.
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.
Gorjeta
Se o painel de informações não aparecer, certifique-se de que o gatilho esteja selecionado no designer.
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
No designer, no gatilho Solicitação , selecione o sinal de adição (+) >Adicionar uma ação.
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.
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.
Quando o painel de autenticação da ação abrir, selecione Entrar para criar uma conexão com sua conta de email.
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.
Quando o prompt da Microsoft for exibido, selecione a conta de usuário do Office 365 Outlook e selecione Permitir acesso.
Quando os Aplicativos Lógicos do Azure solicitarem a abertura de um link de Código do Visual Studio, selecione Abrir.
Quando o Visual Studio Code solicitar a abertura das Ferramentas do Microsoft Azure, selecione Abrir.
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.
No designer, se a ação Enviar um email não aparecer selecionada, selecione essa ação.
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:
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.
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
Vá para o site ngrok. Registe-se para obter uma nova conta ou inicie sessão na sua conta, se já tiver uma.
Obtenha seu token de autenticação pessoal, que seu cliente ngrok precisa para se conectar e autenticar o acesso à sua conta.
Para localizar a página do token de autenticação, no menu do painel da conta, expanda Autenticação e selecione Seu Authtoken.
Na caixa Your Authtoken, copie o token para um local seguro.
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.
No computador, abra a ferramenta de prompt de comando. Navegue até o local onde você tem o arquivo ngrok.exe .
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>
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
Na saída, localize a seguinte linha:
http://<domain>.ngrok.io -> http://localhost:7071
Copie e salve o URL que tem este formato:
http://<domain>.ngrok.io
Configurar o URL de reencaminhamento nas definições da aplicação
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 .
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 nomeadaWorkflows.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:
Abra o arquivo de workflow.json do fluxo de trabalho que você deseja depurar.
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.
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 .
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.
Para depurar um fluxo de trabalho sem estado mais facilmente, você pode habilitar o histórico de execução para esse fluxo de trabalho.
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:
No Visual Studio Code, no menu Exibir, selecione Paleta de comandos.
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.
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.
Agora, encontre a URL de retorno de chamada para o ponto de extremidade no gatilho Solicitação .
Reabra o painel Explorer para que você possa exibir seu projeto.
No menu de atalho do arquivo workflow.json , selecione Visão geral.
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>
Copie e salve o valor da propriedade URL de retorno de chamada.
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:
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.
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. 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.
O Visual Studio Code abre o modo de exibição de monitoramento e mostra o status de cada etapa da execução.
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. 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.
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.
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.
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.
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 .
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.
Na lista de conteúdo dinâmico, em Enviar um e-mail, selecione Corpo.
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.
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.
Na barra de atividade de código do Visual Studio, abra o menu Executar e selecione Iniciar depuração (F5).
Na sua ferramenta de criação e envio de pedidos, envie outro pedido para acionar o seu fluxo de trabalho.
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.
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:
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.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
Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure para abrir a janela do Azure.
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.
Se solicitado, selecione a assinatura do Azure a ser usada para sua implantação de aplicativo lógico.
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.
Para criar seu novo recurso de aplicativo lógico padrão, siga estas etapas:
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.
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.
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.
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.
Para fluxos de trabalho com monitoração de estado, selecione Criar nova conta de armazenamento ou uma conta de armazenamento existente.
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:
Selecione um recurso existente do Application Insights ou Criar novo recurso do Application Insights.
No portal do Azure, vá para o recurso do Application Insights.
No menu de recursos, selecione Visão geral. Localize e copie o valor da Chave de instrumentação.
No Visual Studio Code, na pasta raiz do projeto, abra o arquivo local.settings.json .
Values
No objeto, adicione aAPPINSIGHTS_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.
No portal do Azure, vá para o recurso do Application Insights.
No menu de recursos, em Investigar, selecione Mapa do aplicativo.
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.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, gatilhoInformation
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 umlogLevel
objeto que inclua aHost.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.
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.
Quando o Visual Studio Code concluir a implantação de seu aplicativo lógico no Azure, a seguinte mensagem será exibida:
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:
Gerencie aplicativos lógicos implantados no Visual Studio Code ou usando o portal do Azure.
Habilite o histórico de execução em fluxos de trabalho sem monitoração de estado.
Habilite o modo de exibição de monitoramento no portal do Azure para um aplicativo lógico implantado.
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:
Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure.
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.
Selecione o tipo de fluxo de trabalho que você deseja adicionar: Stateful ou Stateless
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.
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.
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.
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.
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.
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.
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.
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:
Na Barra de Atividades de Código do Visual Studio, selecione o ícone do Azure para abrir a janela do Azure.
Na seção Recursos, expanda sua assinatura, que mostra todos os aplicativos lógicos implantados para essa assinatura.
Expanda seu aplicativo lógico e, em seguida, expanda o nó chamado Fluxos de trabalho.
Abra um fluxo de trabalho e edite qualquer parte do gatilho desse fluxo de trabalho.
Guardar as suas alterações. Esta etapa redefine o estado atual do gatilho.
Repita para cada fluxo de trabalho.
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:
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.
No painel Aplicativos lógicos, selecione o aplicativo lógico que você implantou a partir do Visual Studio Code.
O portal do Azure abre a página de recursos individuais para o aplicativo lógico selecionado.
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.
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.
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.
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.
No portal do Azure, selecione seu recurso de aplicativo lógico padrão implantado.
No menu de recursos do aplicativo lógico, selecione Fluxos de trabalho. No painel Fluxos de trabalho, selecione Adicionar.
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.
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.
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.
Em seu projeto do Visual Studio Code, no nível da pasta raiz, abra o arquivo local.settings.json .
Adicione a
Workflows.{yourWorkflowName}.operationOptions
propriedade e defina o valor como , porWithStatelessRunHistory
exemplo: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" } }
Na pasta do projeto chamada workflow-designtime, abra o arquivo local.settings.json e faça a mesma alteração.
Para desativar o histórico de execução quando terminar, defina a
Workflows.{yourWorkflowName}.OperationOptions
propriedade comoNone
, 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.
No portal do Azure, abra o recurso do aplicativo lógico Padrão.
No menu de recursos do aplicativo lógico, em API, selecione CORS.
No painel CORS, em Origens permitidas, adicione o caractere curinga (*).
Quando terminar, na barra de ferramentas CORS , selecione Salvar.
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:
No portal do Azure, localize seu aplicativo lógico implantado.
No menu do aplicativo lógico, em Configurações, selecione Application Insights.
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:
- Aplicativos lógicos do Azure em execução em qualquer lugar - Monitorar com o Application Insights - parte 1
- Aplicativos lógicos do Azure em execução em qualquer lugar - Monitorar com o Application Insights - parte 2
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.
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:
No Visual Studio Code, abra a janela Saída. No menu Exibir, selecione Saída.
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:
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.
Salve qualquer trabalho que você não queira perder e feche o Visual Studio Code.
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
Exclua a pasta version do pacote anterior, por exemplo, se você tiver uma pasta para a versão 1.1.3, exclua essa pasta.
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
Exclua a pasta version do pacote anterior.
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.
No computador, abra a janela Executar e execute o
regedit
comando, que abre o editor do Registro.Na caixa Controle de Conta de Usuário, selecione Sim para permitir as alterações no computador.
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.
No painel direito, localize as chaves e
UrlSegmentMaxLength
doUrlSegmentMaxCount
Registro.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:
No menu de atalho Parâmetros, selecione Novo>valor DWORD (32 bits).
Na caixa de edição apresentada, introduza
UrlSegmentMaxCount
como o nome da nova chave.Abra o menu de atalho da nova tecla e selecione Modificar.
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 a1024
em decimal.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:
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.
Em seu projeto, expanda a pasta chamada .vscode e abra o arquivo tasks.json .
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)!
- Para bugs ou problemas, crie seus problemas no GitHub.
- Para perguntas, solicitações, comentários e outros comentários, use este formulário de feedback.