Partilhar via


Tutorial: Criar fluxos de trabalho que processam emails usando os Aplicativos Lógicos do Azure, o Azure Functions e o Armazenamento do Azure

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

Este tutorial mostra como criar um fluxo de trabalho de exemplo que integra o Azure Functions e o Armazenamento do Azure usando os Aplicativos Lógicos do Azure. Este exemplo cria especificamente um fluxo de trabalho de aplicativo lógico de consumo que lida com emails de entrada e quaisquer anexos, analisa o conteúdo de email usando o Azure Functions, salva o conteúdo no armazenamento do Azure e envia emails para revisar o conteúdo.

Quando terminar, o fluxo de trabalho terá a seguinte aparência do seguinte exemplo de alto nível:

A captura de tela mostra um exemplo de fluxo de trabalho de alto nível de consumo.

Gorjeta

Para saber mais, você pode fazer estas perguntas ao Azure Copilot:

  • O que são os Aplicativos Lógicos do Azure?
  • O que é o Azure Functions?
  • O que é o Armazenamento do Azure?
  • O que é um fluxo de trabalho de aplicativo lógico de consumo?

Para localizar o Azure Copilot, na barra de ferramentas do portal do Azure, selecione Copilot.

Você pode criar um fluxo de trabalho semelhante com um recurso de aplicativo lógico padrão em que algumas operações de conector, como o Armazenamento de Blobs do Azure, também estão disponíveis como operações internas baseadas em provedor de serviços. No entanto, a experiência do usuário e as etapas do tutorial variam ligeiramente da versão de consumo.

Pré-requisitos

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

  • Uma conta de email de um provedor de email suportado pelos Aplicativos Lógicos do Azure, como o Office 365 Outlook, Outlook.com ou Gmail. Para outros provedores de email com suporte, consulte Conectores para Aplicativos Lógicos do Azure.

    Este exemplo usa o Office 365 Outlook com uma conta corporativa ou de estudante. Se você usar uma conta de e-mail diferente, as etapas gerais permanecerão as mesmas, mas a experiência do usuário pode ser ligeiramente diferente. Se utilizar Outlook.com, utilize a sua conta Microsoft pessoal para iniciar sessão.

    Nota

    Se você quiser usar o conector do Gmail, somente as contas comerciais do G-Suite poderão usar esse conector sem restrições nos fluxos de trabalho lógicos do aplicativo. Se tiver uma conta de consumidor do Gmail, pode utilizar este conector apenas com serviços específicos aprovados pela Google ou pode criar uma aplicação cliente Google para utilizar na autenticação com o conector do Gmail. Para obter mais informações, consulte Políticas de segurança e privacidade de dados para conectores do Google em Aplicativos Lógicos do Azure.

  • Transferir e instalar o Explorador de Armazenamento do Microsoft Azure gratuito. Esta ferramenta ajuda-o a verificar se o seu contentor de armazenamento está configurado corretamente.

  • Se o seu fluxo de trabalho precisar se comunicar por meio de um firewall que limita o tráfego a endereços IP específicos, esse firewall precisará permitir o acesso para os endereços IP de entrada e saída usados pelos Aplicativos Lógicos do Azure na região do Azure onde o recurso do aplicativo lógico existe. Se o seu fluxo de trabalho também usa conectores gerenciados, como o conector do Outlook do Office 365 ou o conector SQL, ou usa conectores personalizados, o firewall também precisa permitir o acesso a todos os endereços IP de saída do conector gerenciado na região do Azure do seu aplicativo lógico.

Configurar o armazenamento para guardar anexos

As etapas a seguir configuram o armazenamento do Azure para que você possa armazenar emails e anexos de entrada como blobs.

  1. No portal do Azure, entre com suas credenciais de conta do Azure.

  2. Siga estas etapas para criar uma conta de armazenamento, a menos que você já tenha uma.

    Na guia Noções básicas, forneça as seguintes informações:

    Property Necessário Valor Description
    Subscrição Sim <Azure-subscrição-nome> Seu nome de assinatura do Azure.

    Este exemplo usa Pay-As-You-Go.
    Grupo de recursos Sim <Azure-resource-group> O nome do grupo de recursos do Azure utilizado para organizar e gerir os recursos relacionados.

    Nota: os grupos de recursos existem dentro de regiões específicas. Embora os itens neste tutorial possam não estar disponíveis em todas as regiões, tente utilizar a mesma região sempre que possível.

    Este exemplo usa LA-Tutorial-RG.
    Nome da conta de armazenamento Sim <Azure-storage-account-name> Seu nome de conta de armazenamento exclusivo, que deve ter de 3 a 24 caracteres e pode conter apenas letras minúsculas e números.

    Este exemplo usa attachmentstorageacct.
    Região Sim <Azure-region> A região de dados do Azure para sua conta de armazenamento.

    Este exemplo usa West US.
    Serviço principal Não <Azure-storage-service> O tipo de armazenamento principal a ser usado em sua conta de armazenamento. Consulte Opções de revisão para armazenar dados no Azure.
    Desempenho Sim - Standard
    - Premium
    Esta definição especifica os tipos de dados suportados e os suportes de dados para armazenar dados. Consulte Visão geral da conta de armazenamento.

    Este exemplo usa Standard.
    Redundância Sim - Armazenamento com redundância local
    - Armazenamento georredundante (GRS)
    Essa configuração permite armazenar várias cópias de seus dados como proteção contra eventos planejados e não planejados. Para obter mais informações, veja Redundância do Armazenamento do Microsoft Azure.

    Este exemplo usa armazenamento com redundância geográfica (GRS).

    Para criar a sua conta de armazenamento, também pode utilizar o Azure PowerShell ou a CLI do Azure.

  3. Quando estiver pronto, selecione Rever + criar. Depois que o Azure validar as informações sobre seu recurso de conta de armazenamento, selecione Criar.

  4. Depois que o Azure implantar sua conta de armazenamento, selecione Ir para recurso. Ou localize e selecione sua conta de armazenamento usando a caixa de pesquisa do Azure.

  5. Obtenha a chave de acesso da conta de armazenamento seguindo estas etapas:

    1. No menu da conta de armazenamento, em Segurança + rede, selecione Chaves de acesso.

    2. Copie o nome e a chave da conta de armazenamento1. Guarde estes valores num local seguro para utilizar mais tarde.

    Para obter a chave de acesso à sua conta de armazenamento, também pode utilizar o Azure PowerShell ou a CLI do Azure.

  6. Crie um contentor de armazenamento de blobs para os anexos de e-mails.

    1. No menu da conta de armazenamento, em Armazenamento de dados, selecione Contêineres.

    2. Na barra de ferramentas da página Contêineres , selecione Contêiner.

    3. No painel Novo contêiner, forneça as seguintes informações:

      Property valor Descrição
      Nome Anexos O nome do contêiner.
      Nível de acesso anónimo Container (acesso de leitura anônimo para contêineres e blobs)
    4. Selecione Criar.

    Depois de terminar, a lista de contêineres agora mostra o novo contêiner de armazenamento.

Para criar um contêiner de armazenamento, você também pode usar o Azure PowerShell ou a CLI do Azure.

Depois, ligue o Explorador de Armazenamento à conta de armazenamento.

Configurar o Explorador de Armazenamento

As etapas a seguir conectam o Gerenciador de Armazenamento à sua conta de armazenamento para que você possa confirmar se o fluxo de trabalho salva corretamente os anexos como blobs no contêiner de armazenamento.

  1. Inicie o Gerenciador de Armazenamento do Microsoft Azure. Inicie sessão com a sua conta do Azure.

    Nota

    Se nenhum prompt for exibido, na barra de atividades do Storage Explorer, selecione Gerenciamento de conta (ícone de perfil).

  2. Na janela Selecionar Ambiente do Azure, selecione seu ambiente do Azure e selecione Avançar.

    Este exemplo continua selecionando o Azure global e multilocatário.

  3. Na janela do navegador exibida, entre com sua conta do Azure.

  4. Retorne ao Gerenciador de Armazenamento e à janela Gerenciamento de Conta. Confirme se o locatário e a assinatura corretos do Microsoft Entra estão selecionados.

  5. Na barra de atividades do Gerenciador de Armazenamento, selecione Abrir caixa de diálogo Conectar.

  6. Na janela Selecionar recurso, selecione Conta ou serviço de armazenamento.

  7. Na janela Selecionar Método de Conexão, selecione Nome da conta e chave>Avançar.

  8. Na janela Conectar ao Armazenamento do Azure, forneça as seguintes informações:

    Property valor
    Nome a apresentar Um nome amigável para a sua ligação
    Nome da conta O nome da sua conta de armazenamento
    Chave da conta A chave de acesso que guardou anteriormente
  9. Para Domínio de armazenamento, confirme se Azure (core.windows.net) está selecionado e selecione Avançar.

  10. Na janela Resumo, confirme as informações de conexão e selecione Conectar.

    O Storage Explorer cria a conexão. Sua conta de armazenamento aparece na janela Explorer em Emulator & Attached Storage Accounts>.

  11. Para localizar seu contêiner de armazenamento de blob, em Contas de armazenamento, expanda sua conta de armazenamento, que é attachmentstorageacct para este exemplo. Em Contêineres de Blob, onde você encontra o contêiner de anexos , por exemplo:

    Captura de ecrã a mostrar o Explorador de Armazenamento - localizar contentor de armazenamento.

Em seguida, crie um aplicativo de função do Azure e uma função que remova HTML do conteúdo.

Criar uma aplicação de funções

As etapas a seguir criam uma função do Azure que seu fluxo de trabalho chama para remover HTML do email de entrada.

  1. Antes de criar uma função, crie um aplicativo de função selecionando o Plano de consumo e seguindo estas etapas:

    1. Na guia Noções básicas, forneça as seguintes informações:

      Property Necessário Valor Description
      Subscrição Sim <Azure-subscrição-nome> A mesma assinatura do Azure que você usou anteriormente para sua conta de armazenamento.
      Grupo de Recursos Sim <Azure-recurso-grupo-nome> O mesmo grupo de recursos do Azure que você usou anteriormente para sua conta de armazenamento.

      Para este exemplo, selecione LA-Tutorial-RG.
      Nome da Aplicação de Funções Sim <nome-da-função-aplicativo> Seu nome de aplicativo de função, que deve ser exclusivo entre as regiões do Azure e pode conter apenas letras (sem diferenciar maiúsculas de minúsculas), números (0-9) e hífenes (-).

      Este exemplo já usa CleanTextFunctionApp, portanto, forneça um nome diferente, como MyCleanTextFunctionApp-your-name<>
      Pilha de runtime Sim <linguagem de programação> O tempo de execução para sua linguagem de programação de função preferida. Para funções C# e F#, selecione .NET.

      Este exemplo usa .NET.

      A edição no portal só está disponível para os seguintes idiomas:

      - JavaScript
      - PowerShell
      - TypeScript
      - Script C#

      Você deve desenvolver localmente qualquer biblioteca de classes C#, Java e funções Python.
      Versão Sim <número-versão> Selecione a versão para o tempo de execução instalado.
      Região Sim <Azure-region> A mesma região que você usou anteriormente.

      Este exemplo usa West US.
      Sistema operativo Sim <seu sistema operacional> Um sistema operacional é pré-selecionado para você com base na sua seleção de pilha de tempo de execução, mas você pode selecionar o sistema operacional que suporta sua linguagem de programação de função favorita. A edição no portal só é suportada no Windows.

      Este exemplo seleciona Windows.
    2. Selecione Next: Armazenamento. Na guia Armazenamento, forneça as seguintes informações:

      Property Necessário Valor Description
      Conta de armazenamento Sim <Azure-storage-account-name> Crie uma conta de armazenamento para seu aplicativo de função usar. Os nomes das contas de armazenamento devem ter entre 3 e 24 caracteres e podem conter apenas letras minúsculas e números.

      Este exemplo usa cleantextfunctionstorageacct.

      Nota: Esta conta de armazenamento contém as suas aplicações funcionais e difere da sua conta de armazenamento criada anteriormente para anexos de e-mail. Você também pode usar uma conta existente, que deve atender aos requisitos da conta de armazenamento.
    3. Quando terminar, selecione Rever + criar. Depois que o Azure validar as informações fornecidas, selecione Criar.

    4. Depois que o Azure implantar o recurso do aplicativo de função, selecione Ir para recurso.

Criar função para remover HTML

As etapas a seguir criam uma função do Azure que remove HTML de cada email de entrada usando o trecho de código de exemplo. Esta função torna o conteúdo do e-mail mais limpo e fácil de processar. Você pode chamar essa função a partir do seu fluxo de trabalho.

Para obter mais informações, consulte Criar sua primeira função no portal do Azure. Para a criação de funções expandidas, você também pode criar sua função localmente.

  1. No portal do Azure, abra seu aplicativo de função, se ainda não estiver aberto.

  2. Para executar sua função posteriormente no portal do Azure, configure seu aplicativo de função para aceitar explicitamente solicitações do portal. No menu do aplicativo de função, em API, selecione CORS. Em Origens permitidas, insira https://portal.azure.come selecione Salvar.

  3. No menu do aplicativo de função, selecione Visão geral. Na guia Funções, selecione Criar.

  4. No painel de funções Criar, selecione Gatilho HTTP: C#>Next.

    Nota

    Se você não vir a versão em C#, certifique-se de

  5. Forneça as seguintes informações para sua função e selecione Criar:

    Parâmetro Value
    Nome da função RemoveHTMLFunction
    Nível de autorização Função
  6. Na guia Código + Teste, insira o seguinte código de exemplo, que remove HTML e retorna os resultados para o chamador.

    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    using System.Text.RegularExpressions;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
       log.LogInformation("HttpWebhook triggered");
    
       // Parse query parameter
       string emailBodyContent = await new StreamReader(req.Body).ReadToEndAsync();
    
       // Replace HTML with other characters
       string updatedBody = Regex.Replace(emailBodyContent, "<.*?>", string.Empty);
       updatedBody = updatedBody.Replace("\\r\\n", " ");
       updatedBody = updatedBody.Replace(@"&nbsp;", " ");
    
       // Return cleaned text
       return (ActionResult)new OkObjectResult(new {updatedBody});
    }
    
  7. Quando terminar, na barra de ferramentas Código + Teste, selecione Salvar e, em seguida, selecione Testar/Executar.

  8. No painel Teste/Execução, na guia Entrada, na caixa Corpo, digite a seguinte entrada de exemplo e selecione Executar:

    {"name": "<p><p>Testing my function</br></p></p>"}

    A saída da sua função é semelhante ao seguinte resultado:

    {"updatedBody": "{\"name\": \"Testing my function\"}"}

Depois de confirmar que sua função funciona, crie o recurso e o fluxo de trabalho do aplicativo lógico. Embora este tutorial mostre como criar uma função que remove HTML de emails, os Aplicativos Lógicos do Azure também fornecem um conector HTML para Texto .

Criar um recurso de aplicativo lógico de consumo

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

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

    A página Criar Aplicativo Lógico é exibida e mostra as seguintes opções:

    Plano Descrição
    Consumo Cria um recurso de aplicativo lógico que dá suporte a apenas um fluxo de trabalho executado em Aplicativos Lógicos do Azure multilocatário e usa o modelo de Consumo para cobrança.
    Standard Cria um recurso de aplicativo lógico que oferece suporte a vários fluxos de trabalho. Você tem as seguintes opções:

    - Plano de Serviço de Fluxo de Trabalho: os fluxos de trabalho são executados em Aplicativos Lógicos do Azure de locatário único e usam o modelo Standard para cobrança.

    - Ambiente do Serviço de Aplicativo V3: os fluxos de trabalho são executados em Aplicativos Lógicos do Azure de locatário único e usam um plano de Ambiente do Serviço de Aplicativo para cobrança.
  3. Na página Criar Aplicativo Lógico, selecione Consumo (Multilocatário).

  4. Na guia Noções básicas, forneça as seguintes informações sobre o recurso do aplicativo lógico:

    Parâmetro Necessário Valor Description
    Subscrição Sim <Azure-subscrição-nome> A mesma assinatura do Azure que você usou anteriormente.
    Grupo de Recursos Sim LA-Tutorial-RG O mesmo grupo de recursos do Azure que você usou anteriormente.
    Nome da Aplicação Lógica Sim <logic-app-name> O nome do recurso do aplicativo lógico, que deve ser exclusivo entre regiões e pode conter apenas letras, números, hífenes (-), sublinhados (_), parênteses (()) e pontos (.).

    Este exemplo cria um recurso de aplicativo lógico chamado LA-ProcessAttachment. Um aplicativo de lógica de consumo e um fluxo de trabalho sempre têm o mesmo nome.
    Região Sim E.U.A. Oeste A mesma região que você usou anteriormente.
    Habilite a análise de log Sim Não Altere essa opção somente quando quiser habilitar o log de diagnóstico. Para este tutorial, mantenha a seleção padrão.

    Nota: Esta opção só está disponível com aplicações lógicas de consumo.

    Nota

    As zonas de disponibilidade são automaticamente habilitadas para fluxos de trabalho de aplicativos lógicos de consumo novos e existentes em regiões do Azure que dão suporte a zonas de disponibilidade. Para obter mais informações, consulte Confiabilidade no Azure Functions e Proteger aplicativos lógicos contra falhas de região com redundância de zona e zonas de disponibilidade.

  5. Quando estiver pronto, selecione Rever + criar. Depois que o Azure validar as informações sobre seu recurso de aplicativo lógico, selecione Criar.

  6. Depois que o Azure implantar seu recurso de aplicativo lógico, selecione Ir para recurso. Ou localize e selecione seu recurso de aplicativo lógico usando a caixa de pesquisa do Azure.

Adicionar um gatilho para monitorar o email de entrada

As etapas a seguir adicionam um gatilho que aguarda e-mails recebidos com anexos.

  1. No menu do aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Designer de aplicativo lógico.

  2. No designer de fluxo de trabalho, siga estas etapas gerais para adicionar o gatilho do Outlook do Office 365 chamado Quando um novo email chegar.

    O conector do Office 365 Outlook requer que você entre com uma conta corporativa ou de estudante da Microsoft. Se estiver a utilizar uma conta Microsoft pessoal, utilize o conector Outlook.com.

  3. Inicie sessão na sua conta de e-mail, o que cria uma ligação entre o seu fluxo de trabalho e a sua conta de e-mail.

  4. Na caixa de informações do gatilho, na lista Parâmetros avançados , adicione os seguintes parâmetros, se eles não aparecerem, e forneça as seguintes informações:

    Parâmetro valor Description
    Importância Qualquer Especifica o nível de importância do email desejado.
    Apenas com Anexos Sim Obter apenas os e-mails com anexos.

    Nota: o acionador não remove e-mails da sua conta; verifica apenas as mensagens novas e só processa os e-mails que correspondam ao filtro do assunto.
    Incluir Anexos Sim Obter os anexos como entrada para o seu fluxo de trabalho em vez de verificar apenas os anexos.
    Pasta Caixa de entrada A pasta de e-mail a ser verificada.
    Filtro de Assunto Analista de Negócios 2 #423501 Especifica o texto a ser encontrado no assunto do e-mail.

    Quando terminar, o gatilho será semelhante ao exemplo a seguir:

    A captura de tela mostra o fluxo de trabalho de Consumo e o gatilho do Office 365 Outlook.

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

    Seu fluxo de trabalho agora está ativo, mas não faz nada além de verificar seus e-mails. Em seguida, adicione uma condição que especifique critérios para continuar as ações subsequentes no fluxo de trabalho.

Adicionar uma condição para verificar se há anexos

As etapas a seguir adicionam uma condição que seleciona apenas e-mails com anexos.

  1. No designer de fluxo de trabalho, siga estas etapas gerais para adicionar a ação Controle chamada Condição.

  2. No painel Informações da ação Condição , renomeie a ação com Se o email tiver anexos e frase de assunto principal.

  3. Crie uma condição que verifique se há e-mails com anexos.

    1. Na guia Parâmetros, na primeira linha da lista E, selecione dentro da caixa à esquerda e, em seguida, selecione a lista de conteúdo dinâmico (ícone de relâmpago). Nessa lista, na seção de gatilho, selecione a saída Tem anexo .

      Gorjeta

      Se não vir a saída Tem anexo , selecione Ver Mais.

      A captura de tela mostra a ação da condição, a segunda linha com o cursor na caixa mais à esquerda, a lista de conteúdo dinâmico aberta e o Anexo selecionado.

    2. Na caixa do meio, mantenha o operador nomeado é igual a.

    3. Na caixa à direita, digite true, que é o valor a ser comparado com o valor de saída Tem Anexo do gatilho. Se ambos os valores forem iguais, o e-mail tem, pelo menos, um anexo, a condição é transmitida e o fluxo de trabalho continua.

      A captura de tela mostra o estado completo.

    Na definição de fluxo de trabalho subjacente, que você pode exibir selecionando Visualização de código na barra de ferramentas do designer, a condição é semelhante ao exemplo a seguir:

    "Condition": {
       "actions": { <actions-to-run-when-condition-passes> },
       "expression": {
          "and": [ {
             "equals": [
                "@triggerBody()?['HasAttachment']",
                  "true"
             ]
          } ]
       },
       "runAfter": {},
       "type": "If"
    }
    
  4. Salve seu fluxo de trabalho.

Testar a condição

  1. Na barra de ferramentas do designer, selecione Executar>Executar.

    Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontece até que você envie um e-mail de teste para sua caixa de entrada.

  2. Envie a si mesmo um e-mail que atenda aos seguintes critérios:

    • O assunto do seu e-mail tem o texto que você especificou no Filtro de assunto do gatilho: Business Analyst 2 #423501

    • O e-mail tem um anexo. Por agora, crie apenas um ficheiro de texto vazia e anexe-o ao e-mail.

    Quando o e-mail chega, seu fluxo de trabalho verifica se há anexos e o texto do assunto especificado. Se a condição passar, o gatilho será acionado e fará com que os Aplicativos Lógicos do Azure instanciem e executem uma instância de fluxo de trabalho.

  3. Para verificar se o gatilho disparou e o fluxo de trabalho foi executado com êxito, no menu do aplicativo lógico, selecione Visão geral.

    • Para exibir fluxos de trabalho executados com êxito, selecione Histórico de execuções.

    • Para visualizar os gatilhos disparados com êxito, selecione Histórico de disparos.

    Se o gatilho não disparou ou o fluxo de trabalho não foi executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.

Em seguida, defina as ações a serem executadas para a ramificação True . Para guardar o e-mail juntamente com eventuais anexos, remova todo o HTML do corpo do e-mail e crie blobs no contentor de armazenamento para a mensagem e os anexos.

Nota

Seu fluxo de trabalho pode deixar a ramificação Falso vazia e não executar nenhuma ação quando um email não tiver anexos. Como um exercício de bônus depois de terminar este tutorial, você pode adicionar qualquer ação apropriada que você deseja tomar para a ramificação Falso .

Chamar RemoveHTMLFunction

As etapas a seguir adicionam sua função do Azure criada anteriormente, que aceita o conteúdo do corpo do email do gatilho de email como entrada.

  1. No menu do aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Designer de aplicativo lógico. Na ramificação True, selecione Adicionar uma ação.

  2. Siga estas etapas gerais para adicionar a ação do Azure Functions chamada Escolher uma função do Azure.

  3. Selecione seu aplicativo de função criado anteriormente, que é CleanTextFunctionApp neste exemplo.

  4. Selecione sua função, que é chamada RemoveHTMLFunction neste exemplo e, em seguida, selecione Adicionar ação.

  5. No painel de informações de ação do Azure Functions , renomeie a ação com Call RemoveHTMLFunction.

  6. Agora, especifique a entrada para a função processar.

    1. Em Corpo da Solicitação, insira o seguinte texto com um espaço à direita:

      { "emailBody":

      Enquanto trabalha nesta entrada nos passos seguintes, obterá um erro relativo a JSON inválido até que a sua entrada esteja corretamente formatada como JSON. Quando testou esta função anteriormente, a entrada especificada para a mesma utilizou JavaScript Object Notation (JSON). Por isso, o corpo do pedido também tem de utilizar o mesmo formato.

    2. Selecione dentro da caixa Corpo da solicitação e, em seguida, selecione a lista de conteúdo dinâmico (ícone de relâmpago) para que você possa selecionar saídas de ações anteriores.

    3. Na lista de conteúdo dinâmico, em Quando um novo e-mail chegar, selecione a saída Corpo . Depois que esse valor for resolvido na caixa Corpo da solicitação , lembre-se de adicionar a chave de fechamento (}).

      A captura de tela mostra a caixa de informações da função do Azure com a lista de conteúdo dinâmico e o Corpo selecionado.

    Quando você terminar, a função do Azure se parece com o exemplo a seguir:

    A captura de tela mostra a função do Azure concluída com o conteúdo do corpo da solicitação para passar para sua função.

  7. Salve seu fluxo de trabalho.

Em seguida, adicione uma ação que crie um blob para armazenar o corpo do e-mail.

Adicionar uma ação para criar um blob para o corpo do e-mail

As etapas a seguir criam um blob que armazena o corpo do e-mail em seu contêiner de armazenamento.

  1. No designer, no bloco True da condição, em sua função do Azure, selecione Adicionar uma ação.

  2. Siga estas etapas gerais para adicionar a ação de Armazenamento de Blob do Azure chamada Criar blob.

  3. Forneça as informações de conexão para sua conta de armazenamento, por exemplo:

    Parâmetro Necessário Valor Description
    Nome da Ligação Sim <nome da conexão> Um nome descritivo para a conexão.

    Este exemplo usa AttachmentStorageConnection.
    Tipo de Autenticação Sim <tipo de autenticação> O tipo de autenticação a ser usado para a conexão.

    Este exemplo usa a Chave de Acesso.
    Nome da Conta de Armazenamento do Azure ou Ponto de Extremidade de Blob Sim <nome da conta de armazenamento> O nome da sua conta de armazenamento criada anteriormente.

    Este exemplo usa attachmentstorageacct.
    Chave de Acesso da Conta de Armazenamento do Azure Sim <chave de acesso à conta de armazenamento> A chave de acesso para sua conta de armazenamento criada anteriormente.
  4. Quando terminar, selecione Criar novo.

  5. No painel Informações da ação Criar blob , renomeie a ação com Criar blob para o corpo do email.

  6. Forneça as seguintes informações de ação:

    Gorjeta

    Se não conseguir encontrar uma saída especificada na lista de conteúdo dinâmico, selecione Ver mais ao lado do nome da operação.

    Parâmetro Necessário Valor Description
    Nome da conta de armazenamento ou ponto de extremidade de Blob Sim Usar configurações de conexão (<storage-account-name-or-blob-endpoint>) Selecione a opção que inclui o nome da sua conta de armazenamento.

    Este exemplo utiliza https://attachmentstorageacct.blob.core.windows.net.
    Caminho da pasta Sim <path-and-container-name> O caminho e o nome do contentor que criou anteriormente.

    Para este exemplo, selecione o ícone de pasta e, em seguida, selecione anexos.
    Nome do Blob Sim <nome-do-remetente> Para este exemplo, use o nome do remetente como o nome do blob.

    1. Selecione dentro da caixa Nome do Blob e, em seguida, selecione a opção de lista de conteúdo dinâmico (ícone relâmpago).

    2. Na seção Quando um novo e-mail chegar , selecione De.
    Conteúdo de Blob Sim <corpo do e-mail limpo> Neste exemplo, utilize o corpo do e-mail sem HTML como o conteúdo do blob.

    1. Selecione dentro da caixa Conteúdo de Blob e, em seguida, selecione a opção de lista de conteúdo dinâmico (ícone de relâmpago).

    2. Na seção Call RemoveHTMLFunction , selecione Body.

    A captura de tela a seguir mostra as saídas a serem selecionadas para a ação Criar blob para corpo de email:

    A captura de tela mostra o contêiner de armazenamento, o remetente e o corpo do e-mail sem HTML na ação Criar blob.

    Quando terminar, a ação será semelhante ao exemplo a seguir:

    A captura de tela mostra exemplos de informações do corpo do e-mail para a ação Criar blob concluída.

  7. Salve seu fluxo de trabalho.

Testar o manuseamento de acessórios

  1. Na barra de ferramentas do designer, selecione Executar>Executar.

    Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontece até que você envie um e-mail de teste para sua caixa de entrada.

  2. Envie a si mesmo um e-mail que atenda aos seguintes critérios:

    • O assunto do seu e-mail tem o texto que você especificou no parâmetro Filtro de assunto do gatilho: Business Analyst 2 #423501

    • O seu e-mail tem um ou mais anexos. Por enquanto, basta criar um arquivo de texto vazio e anexar esse arquivo ao seu e-mail.

    • Seu e-mail tem algum conteúdo de teste no corpo, por exemplo: Testando meu fluxo de trabalho de aplicativo lógico

    Se o fluxo de trabalho não foi acionado ou executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.

  3. Verifique se o fluxo de trabalho salvou o e-mail no contêiner de armazenamento correto.

    1. No Gerenciador de Armazenamento, expanda Emulator & Attached>Storage Accounts>attachmentstorageacct (Key)>Blob Containers>attachments.

    2. Verifique o contentor attachments relativamente ao e-mail.

      Neste ponto, apenas o e-mail aparece no contêiner porque o fluxo de trabalho ainda não processou os anexos.

      A captura de tela mostra o Gerenciador de Armazenamento apenas com o e-mail salvo.

    3. Quando terminar, exclua o e-mail no Gerenciador de Armazenamento.

  4. Opcionalmente, para testar a ramificação False , que não faz nada neste momento, você pode enviar um e-mail que não atenda aos critérios.

Em seguida, adicione um Para cada loop para processar cada anexo de e-mail.

Adicionar um loop para processar anexos

As etapas a seguir adicionam um loop para processar cada anexo no e-mail.

  1. Retorne ao designer de fluxo de trabalho. Na ação Criar blob para corpo de email, selecione Adicionar uma ação.

  2. Siga estas etapas gerais para adicionar a ação Control chamada For each.

  3. No painel Para cada ação, renomeie a ação com Para cada anexo de email.

  4. Agora selecione o conteúdo para o loop processar.

    1. No loop Para cada anexo de e-mail, selecione dentro da caixa Selecionar uma saída das etapas anteriores e, em seguida, selecione a opção de lista de conteúdo dinâmico (ícone do relâmpago).

    2. Na seção Quando um novo e-mail chegar, selecione Anexos.

      A saída Anexos inclui uma matriz com todos os anexos de um e-mail. O Para cada loop repete ações em cada item de matriz.

      Gorjeta

      Se não vir Anexos, selecione Ver Mais.

      A captura de tela mostra a lista de conteúdo dinâmico com a saída selecionada chamada Anexos.

  5. Salve seu fluxo de trabalho.

Em seguida, adicione uma ação que salve cada anexo como um blob no contêiner de armazenamento de anexos .

Adicionar uma ação para criar um blob por anexo

As etapas a seguir adicionam uma ação para criar um blob para cada anexo.

  1. No designer, no loop Para cada anexo de email, selecione Adicionar uma ação.

  2. Siga estas etapas gerais para adicionar a ação de Armazenamento de Blob do Azure chamada Criar blob.

  3. No painel Informações da ação Criar blob , renomeie a ação com Criar blob para anexo de email.

  4. Forneça as seguintes informações de ação:

    Gorjeta

    Se não conseguir encontrar uma saída especificada na lista de conteúdo dinâmico, selecione Ver mais ao lado do nome da operação.

    Parâmetro Necessário Valor Description
    Nome da conta de armazenamento ou ponto de extremidade de Blob Sim Usar configurações de conexão (<storage-account-name-or-blob-endpoint>) Selecione a opção que inclui o nome da sua conta de armazenamento.

    Este exemplo utiliza https://attachmentstorageacct.blob.core.windows.net.
    Caminho da pasta Sim <path-and-container-name> O caminho e o nome do contentor que criou anteriormente.

    Para este exemplo, selecione o ícone de pasta e, em seguida, selecione anexos.
    Nome do Blob Sim <nome-anexo> Para este exemplo, use o nome do anexo como o nome do blob.

    1. Selecione dentro da caixa Nome do Blob e, em seguida, selecione a opção de lista de conteúdo dinâmico (ícone relâmpago).

    2. Na seção Quando um novo e-mail chegar , selecione Nome.
    Conteúdo de Blob Sim <conteúdo de e-mail> Para este exemplo, use o conteúdo de e-mail como o conteúdo de blob.

    1. Selecione dentro da caixa Conteúdo de Blob e, em seguida, selecione a opção de lista de conteúdo dinâmico (ícone de relâmpago).

    2. Na seção Quando um novo e-mail chegar , selecione Conteúdo.

    Nota

    Se você selecionar uma saída que tenha uma matriz, como a saída Conteúdo , que é uma matriz que inclui anexos, o designer adicionará automaticamente um Para cada loop em torno da ação que faz referência a essa saída. Dessa forma, seu fluxo de trabalho pode executar essa ação em cada item de matriz. Para remover o loop, mova a ação que faz referência à saída para fora do loop e exclua o loop.

    A captura de tela a seguir mostra as saídas a serem selecionadas para a ação Criar blob para anexo de email:

    A captura de tela mostra informações de contêiner de armazenamento e anexo na ação Criar blob.

    Quando terminar, a ação será semelhante ao exemplo a seguir:

    A captura de tela mostra informações de anexo de exemplo para a ação Criar blob concluída.

  5. Salve seu fluxo de trabalho.

Retestar o manuseamento de acessórios

  1. Na barra de ferramentas do designer, selecione Executar>Executar.

    Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontece até que você envie um e-mail de teste para sua caixa de entrada.

  2. Envie a si mesmo um e-mail que atenda aos seguintes critérios:

    • O assunto do seu e-mail tem o texto que você especificou no parâmetro Filtro de assunto do gatilho: Business Analyst 2 #423501

    • O seu e-mail tem dois ou mais anexos. Por agora, crie apenas dois ficheiros de texto vazios e anexe-os ao e-mail.

    Se o fluxo de trabalho não foi acionado ou executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.

  3. Verifique se o fluxo de trabalho salvou o e-mail e os anexos no contêiner de armazenamento correto.

    1. No Gerenciador de Armazenamento, expanda Emulator & Attached>Storage Accounts>attachmentstorageacct (Key)>Blob Containers>attachments.

    2. Verifique o contentor attachments relativamente ao e-mail e aos anexos.

      A captura de ecrã mostra o Explorador de Armazenamento e os e-mails e anexos guardados.

    3. Quando terminar, exclua o e-mail e os anexos no Gerenciador de Armazenamento.

Em seguida, adicione uma ação no seu fluxo de trabalho que envie e-mails para revisar os anexos.

Adicionar uma ação para enviar e-mail

As etapas a seguir adicionam uma ação para que seu fluxo de trabalho envie emails para revisar os anexos.

  1. Retorne ao designer de fluxo de trabalho. Na ramificação True, em Para cada loop de anexo de email, selecione Adicionar uma ação.

  2. Siga estas etapas gerais para adicionar a ação do Office 365 Outlook chamada Enviar um email.

    Este exemplo continua com o conector do Outlook do Office 365, que funciona apenas com uma conta corporativa ou de estudante do Azure. Em contas Microsoft pessoais, selecione o conector Outlook.com.

  3. Se lhe forem solicitadas credenciais, inicie sessão na sua conta de e-mail para que as Aplicações Lógicas do Azure criem uma ligação à sua conta de e-mail.

  4. No painel Informações da ação Enviar um e-mail , renomeie a ação com Enviar e-mail para revisão.

  5. Forneça as seguintes informações de ação e selecione as saídas a serem incluídas no e-mail:

    Gorjeta

    Se não conseguir encontrar uma saída especificada na lista de conteúdo dinâmico, selecione Ver mais ao lado do nome da operação.

    Parâmetro Necessário Valor Description
    De Sim <recipient-email-address> Para fins de teste, use seu próprio endereço de e-mail.
    Assunto Sim <e-mail-assunto> O assunto do e-mail a incluir.

    Este exemplo usa ASAP - Review applicant for position:, e a saída Subject do gatilho.

    1. Na caixa Assunto , insira o texto de exemplo com um espaço à direita.

    2. Selecione dentro da caixa Assunto e, em seguida, selecione a opção de lista de conteúdo dinâmico (ícone relâmpago).

    3. Na lista, em Quando chegar um novo e-mail, selecione Assunto.
    Corpo Sim <corpo do e-mail> O corpo do e-mail a ser incluído.

    O exemplo usa Please review new applicant:, a saída do gatilho chamada From, a saída Path da ação Create blob for email body e a saída Body da ação Call RemoveHTMLFuntion .

    1. Na caixa Corpo, insira o texto de exemplo, Por favor, reveja o novo candidato:.

    2. Em uma nova linha, digite o texto de exemplo, Nome do candidato:, e adicione a saída De do gatilho.

    3. Em uma nova linha, digite o texto de exemplo, Local do arquivo do aplicativo:, e adicione a saída Caminho da ação Criar blob para corpo de email.

    4. Em uma nova linha, digite o texto de exemplo, Conteúdo do e-mail do aplicativo:, e adicione a saída Corpo da ação Call RemoveHTMLFuntion .

    Nota

    Se você selecionar uma saída que tenha uma matriz, como a saída Conteúdo , que é uma matriz que inclui anexos, o designer adicionará automaticamente um Para cada loop em torno da ação que faz referência a essa saída. Dessa forma, seu fluxo de trabalho pode executar essa ação em cada item de matriz. Para remover o loop, mova a ação que faz referência à saída para fora do loop e exclua o loop.

    A captura de tela a seguir mostra a ação Enviar um e-mail concluída:

    A captura de tela mostra um exemplo de e-mail a ser enviado.

  6. Salve seu fluxo de trabalho.

Seu fluxo de trabalho concluído agora se parece com o exemplo a seguir:

A captura de tela mostra o fluxo de trabalho concluído.

Testar o fluxo de trabalho

  1. Envie um e-mail para si próprio que cumpra estes critérios:

    • O assunto do seu e-mail tem o texto que você especificou no parâmetro Filtro de assunto do gatilho: Business Analyst 2 #423501

    • O seu e-mail tem um ou mais anexos. Pode reutilizar um ficheiro de texto vazio do teste anterior. Para um cenário realista, anexe um ficheiro de currículo.

    • O corpo do e-mail tem este texto, que pode copiar e colar:

      
      Name: Jamal Hartnett
      
      Street address: 12345 Anywhere Road
      
      City: Any Town
      
      State or Country: Any State
      
      Postal code: 00000
      
      Email address: jamhartnett@outlook.com
      
      Phone number: 000-000-0000
      
      Position: Business Analyst 2 #423501
      
      Technical skills: Dynamics CRM, MySQL, Microsoft SQL Server, JavaScript, Perl, Power BI, Tableau, Microsoft Office: Excel, Visio, Word, PowerPoint, SharePoint, and Outlook
      
      Professional skills: Data, process, workflow, statistics, risk analysis, modeling; technical writing, expert communicator and presenter, logical and analytical thinker, team builder, mediator, negotiator, self-starter, self-managing  
      
      Certifications: Six Sigma Green Belt, Lean Project Management
      
      Language skills: English, Mandarin, Spanish
      
      Education: Master of Business Administration
      
  2. Execute seu fluxo de trabalho. Se for bem-sucedido, seu fluxo de trabalho enviará um e-mail semelhante ao exemplo a seguir:

    A captura de tela mostra um exemplo de e-mail enviado pelo fluxo de trabalho do aplicativo lógico.

    Se não receber nenhuma mensagem de e-mail, verifique a pasta de lixo do e-mail. Caso contrário, se você não tiver certeza de que seu fluxo de trabalho foi executado corretamente, consulte Solucionar problemas de fluxo de trabalho do aplicativo lógico.

Parabéns, você criou e executou um fluxo de trabalho que automatiza tarefas em diferentes serviços do Azure e chama algum código personalizado!

Clean up resources (Limpar recursos)

Seu fluxo de trabalho continua em execução até que você desabilite ou exclua o recurso do aplicativo lógico. Quando já não precisar deste exemplo, elimine o grupo de recursos que contém a aplicação lógica e os recursos relacionados.

  1. Na caixa de pesquisa do portal do Azure, insira grupos de recursos e selecione Grupos de recursos.

  2. Na lista Grupos de recursos, selecione o grupo de recursos para este tutorial.

  3. No menu do grupo de recursos, selecione Visão geral.

  4. Na barra de ferramentas da página Visão geral , selecione Excluir grupo de recursos.

  5. Quando o painel de confirmação aparecer, insira o nome do grupo de recursos e selecione Excluir.

Próximos passos

Neste tutorial, você criou um fluxo de trabalho de aplicativo lógico que processa e armazena anexos de email integrando serviços do Azure, como o Armazenamento do Azure e o Azure Functions. Agora, saiba mais sobre outros conectores que você pode usar para criar fluxos de trabalho de aplicativos lógicos.