Compartilhar via


Tutorial: Criar fluxos de trabalho para processar 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 exemplo de fluxo de trabalho que integra o Azure Functions e o Armazenamento do Azure usando os Aplicativos Lógicos do Azure. Especificamente, esse exemplo cria um fluxo de trabalho de aplicativo lógico de Consumo que manuseia os emails de entrada e quaisquer anexos, analisa o conteúdo do email usando o Azure Functions, salva o conteúdo no armazenamento do Azure e envia emails para revisar o conteúdo.

Quando você terminar, seu fluxo de trabalho irá se parecer com o seguinte exemplo de alto nível:

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

Dica

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

  • 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 Copilot no Azure, 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 sempre que algumas operações de conector, como o Armazenamento de Blobs do Azure, também estiverem disponíveis como operações integradas baseadas no provedor de serviços. No entanto, a experiência do usuário e as etapas do tutorial apresentam uma leve variação com relação à versão de Consumo.

Pré-requisitos

Configurar armazenamento para salvar anexos

As etapas a seguir configuram o Armazenamento do Azure para que você possa armazenar os emails e anexos recebidos como blobs.

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

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

    Na folha Informações Básicas, forneça as seguintes informações:

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

    Este exemplo usa Pagamento Conforme o Uso.
    Grupo de recursos Sim <Azure-resource-group> O nome do grupo de recursos do Azure usado para organizar e gerenciar os recursos relacionados.

    Observação: um grupo de recursos reside dentro de uma região específica. Embora os itens neste tutorial possam não estar disponíveis em todas as regiões, tente usar a mesma região sempre que possível.

    Este exemplo usa LA-Tutorial-RG.
    Nome da conta de armazenamento Sim <Azure-storage-account-name> O nome exclusivo da sua conta de armazenamento, 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 a sua conta de armazenamento.

    Este exemplo usa Oeste dos EUA.
    Serviço principal Não <Azure-storage-service> O tipo principal de armazenamento a ser usado na sua conta de armazenamento. Confira Examinar as opções para armazenar dados no Azure.
    Desempenho Sim - Standard
    - Premium
    Essa configuração especifica os tipos de dados com suporte e a mídia para armazenar dados. Confira Visão geral da conta de armazenamento.

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

    Esse exemplo usa o Armazenamento com redundância geográfica (GRS).

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

  3. Quando estiver pronto, selecione Examinar + criar. Após o Azure ter validado as informações sobre o recurso da sua conta de armazenamento, selecione Criar.

  4. Após o Azure implantar sua conta de armazenamento, selecione Ir para o 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 essas etapas:

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

    2. Copie o nome da conta de armazenamento e a key1. Salve esses valores em algum lugar seguro para uso posterior.

    Para obter a chave de acesso da conta de armazenamento, você também pode usar o Azure PowerShell ou a CLI do Azure.

  6. Crie um contêiner de armazenamento de blobs para os anexos de email.

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

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

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

      Propriedade Valor Descrição
      Nome attachments O nome do contêiner.
      Nível de acesso anônimo Contêiner (acesso de leitura anônimo para contêineres e blobs)
    4. Selecione Criar.

    Após você ter terminado, a lista de contêineres estará mostrando 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.

Em seguida, conecte o Gerenciador de Armazenamento à conta de armazenamento.

Configurar o Gerenciador de Armazenamento

As etapas a seguir conectam o Gerenciador de Armazenamento à sua conta de armazenamento de forma que você possa confirmar que seu fluxo de trabalho está salvando os anexos corretamente como blobs no seu contêiner de armazenamento.

  1. Inicie o Gerenciador de Armazenamento do Microsoft Azure. Faça logon usando sua conta do Azure.

    Observação

    Se nenhum prompt aparecer, selecione Gerenciamento de Conta na barra de atividades do Gerenciador de Armazenamento (ícone de perfil).

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

    Este exemplo continua ao selecionar 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 de Gerenciamento de Contas. Confirme se a assinatura e o locatário corretos do Microsoft Entra estão selecionados.

  5. Na barra de atividades Gerenciador de Armazenamento, selecione Abrir Diálogo Conectar.

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

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

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

    Propriedade Valor
    Nome de exibição Um nome amigável para a sua conexão
    Nome da Conta O nome da conta de armazenamento
    Chave de conta A chave de acesso salva anteriormente
  9. Para Domínio de armazenamento, confirme se Azure (core.windows.net) está selecionado e selecione Avançar.

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

    O Gerenciador de Armazenamento cria a conexão. Sua conta de armazenamento aparece na janela do Gerenciador em Emulador e Anexadas>Contas de Armazenamento.

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

    Captura de tela mostrando Gerenciador de Armazenamento – Localizar contêiner de armazenamento.

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

Criar um aplicativo de funções

As etapas a seguir criam uma função do Azure que seu fluxo de trabalho chamará para remover o HTML dos emails recebidos.

  1. Antes de criar uma função, crie um aplicativo de funções selecionando o plano de Consumo e seguindo essas etapas:

    1. Na folha Informações Básicas, forneça as seguintes informações:

      Propriedade Obrigatório Valor Descrição
      Assinatura Sim <Azure-subscription-name> A mesma assinatura do Azure que você usou anteriormente para sua conta de armazenamento.
      Grupo de Recursos Sim <Azure-resource-group-name> O mesmo grupo de recursos do Azure que você usou anteriormente para sua conta de armazenamento.

      Para esse exemplo, selecione LA-Tutorial-RG.
      Nome do aplicativo de funções Sim <function-app-name> O nome do aplicativo de funções, que deve ser exclusivo nas diversas regiões do Azure e pode conter apenas letras (sem diferenciar maiúsculas de minúsculas), números (0-9) e hifens (-).

      Este exemplo já usa CleanTextFunctionApp; portanto, forneça um nome diferente, como MyCleanTextFunctionApp-<seu_nome>
      Pilha de runtime Sim <programming-language> O runtime para a linguagem de programação de função de sua preferência. Selecione .NET para as funções C# e F#.

      Esse exemplo usa .NET.

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

      - JavaScript
      - PowerShell
      - TypeScript
      - Script C#

      Você precisa desenvolver localmente qualquer biblioteca de classe C#, Java e funções do Python.
      Versão Sim <version-number> Selecione a versão do seu runtime instalado.
      Região Sim <Azure-region> A mesma região que você usou anteriormente.

      Este exemplo usa Oeste dos EUA.
      Sistema operacional Sim <seu-sistema-operacional> Um sistema operacional é pré-selecionado para você com base na seleção de pilha de runtime, mas você pode selecionar o sistema operacional que dá suporte à sua linguagem de programação de função favorita. Só há suporte para edição no portal no Windows.

      Esse exemplo seleciona Windows.
    2. Selecione A seguir: Armazenamento. Na guia Armazenamento, forneça as seguintes informações:

      Propriedade Obrigatório Valor Descrição
      Conta de armazenamento Sim <Azure-storage-account-name> Crie uma conta de armazenamento para o seu aplicativo de funções usar. Os nomes da conta de armazenamento precisam ter entre 3 e 24 caracteres e podem conter apenas números e letras minúsculas.

      Esse exemplo usa a cleantextfunctionstorageacct.

      Observação: esta conta de armazenamento contém seus aplicativos de funções e é diferente da conta de armazenamento criada anteriormente para anexos de email. Use também uma conta existente, que precisará atender aos requisitos da conta de armazenamento.
    3. Quando você terminar, selecione Examinar + Criar. Após o Azure validar as informações fornecidas, selecione Criar.

    4. Após o Azure implantar o recurso do aplicativo de funções, selecione Ir para o recurso.

Criar função para remover HTML

As etapas a seguir criam uma função do Azure que remove o HTML de cada email recebido usando o snippet da amostra de código. Essa função torna o conteúdo do email mais limpo e fácil de processar. Você poderá 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 uma função expandida, você também pode criar sua função localmente.

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

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

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

  4. No painel Criar função, selecione gatilho HTTP: C#>Avançar.

    Observação

    Se não estiver vendo a versão do C#, certifique-se de

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

    Parâmetro Valor
    Nome da função RemoveHTMLFunction
    Nível de autorização Função
  6. Na guia Código + Teste, insira a amostra de código a seguir, que remove o 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 você terminar, na barra de ferramentas Código + Teste, selecione Salvar e, em seguida, selecione Testar/Executar.

  8. No painel Testar/Executar, na guia Entrada de dados, na caixa Corpo, insira a seguinte amostra de entrada de dados e selecione Executar:

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

    A saída da função se parece com o seguinte resultado:

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

Após confirmar que a função funciona, crie o recurso do aplicativo lógico e o fluxo de trabalho. Embora este tutorial mostre como criar uma função que remove o 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 aplicativos lógicos 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:

    Planejar Descrição
    Consumo Cria um recurso de aplicativo lógico compatível com apenas um fluxo de trabalho, que é 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 compatível com 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 com 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 com locatário único e usam um plano de Ambiente do Serviço de Aplicativo para cobrança.

    - Híbrido (Versão prévia): Fluxos de trabalho em execução no local e em várias nuvens usando o Dimensionamento Automático Controlado por Eventos do Kubernetes (KEDA). Para obter mais informações, confira Criar fluxos de trabalho Standard para implantação híbrida.
  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 seu recurso de aplicativo lógico:

    Parâmetro Obrigatório Valor Descrição
    Assinatura Sim <Azure-subscription-name> 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 do Aplicativo Lógico Sim <logic-app-name> O nome do recurso do seu aplicativo lógico, que deve ser exclusivo em todas as regiões e pode conter apenas letras, números, hifens (-), sublinhados (_), parênteses (()) e pontos (.).

    Esse exemplo cria um recurso de aplicativo lógico chamado LA-ProcessAttachment. Um aplicativo lógico e um fluxo de trabalho de Consumo sempre têm o mesmo nome.
    Região Sim Oeste dos EUA A mesma região que você usou anteriormente.
    Habilitar a análise de logs Sim Não Altere essa opção somente quando desejar habilitar o log de diagnósticos. Para esse tutorial, mantenha a seleção padrão.

    Observação: essa opção só está disponível com aplicativos lógicos de Consumo.

    Observação

    As zonas de disponibilidade são habilitadas automaticamente para fluxos de trabalho de aplicativo lógico 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 zonas de disponibilidade e redundância de zona.

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

  6. Após o Azure implantar seu aplicativo lógico, selecione Ir para o recurso. Ou encontre e selecione seu recurso de aplicativo lógico usando a caixa de pesquisa do Azure.

Adicionar um gatilho para monitorar emails recebidos

As etapas a seguir adicionam um gatilho que aguarda os emails recebidos que têm anexos.

  1. No menu Aplicativo Lógico, em Ferramentas de Desenvolvimento, selecione Designer de Aplicativos Lógicos.

  2. No designer do fluxo de trabalho, siga essas etapas de caráter geral para adicionar o gatilho do Outlook do Office 365 intitulado Quando um novo email é recebido.

    O conector do Outlook do Office 365, que exige que você entre com uma conta corporativa ou de estudante da Microsoft. Se você estiver usando uma conta Microsoft pessoal, use o conector Outlook.com.

  3. Entre na sua conta de email, o que cria uma conexão entre seu fluxo de trabalho e sua conta de email.

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

    Parâmetro Valor Descrição
    Importância Qualquer Especifica o nível de importância do email desejado.
    Somente com Anexos Sim Obter somente emails com anexos.

    Observação: o gatilho não remove emails da sua conta; ele verifica apenas novas mensagens e processa somente os emails que correspondem ao filtro de assunto.
    Incluir Anexos Sim Obter os anexos como entrada para o fluxo de trabalho, em vez de simplesmente procurar anexos.
    Pasta Caixa de Entrada A pasta de emails a ser verificada.
    Filtro de Assunto Analista de Negócios 2 #423501 Especifica o texto a ser localizado no assunto do email.

    Quando você terminar, o gatilho irá se parecer com o seguinte exemplo:

    Captura de tela mostrando o fluxo de trabalho de Consumo e o gatilho do Outlook do Office 365.

  5. Salve seu fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

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

Adicionar uma condição para verificar se existem anexos

As etapas a seguir adicionam uma condição que seleciona somente emails com anexos.

  1. No designer do fluxo de trabalho, siga essas etapas de caráter geral para adicionar a ação de Controle denominada Condição.

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

  3. Crie uma condição que verifica os emails com anexos.

    1. Na guia Parâmetros, na primeira linha da lista AND, selecione dentro da caixa à esquerda e, a seguir, escolha a lista de conteúdo dinâmico (ícone de relâmpago). Nessa lista, na seção Gatilho, selecione a saída Tem Anexo.

      Dica

      Se não estiver vendo a saída Tem Anexo, selecione Ver Mais.

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

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

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

      Captura de tela mostrando a condição completa.

    Na sua definição de fluxo de trabalho subjacente, que você pode mostrar selecionando Exibição de código na caixa de ferramentas do designer, a condição se parece com o seguinte exemplo:

    "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.

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

  2. Envie um email que atenda a estes critérios:

    • O assunto do email tem o texto que você especificou no Filtro de Assunto do gatilho: Business Analyst 2 #423501

    • Seu email tem um anexo. Por enquanto, basta criar um arquivo de texto vazio e anexar o arquivo ao seu email.

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

  3. Para verificar se o gatilho foi disparado e se 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 exibir gatilhos disparados com êxito, selecione Histórico de gatilhos.

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

Em seguida, defina as ações a serem executadas na ramificação True. Para salvar o email junto com os anexos, remova o HTML do corpo do email e crie blobs no contêiner de armazenamento para email e anexos.

Observação

Seu fluxo de trabalho pode deixar a ramificação False vazia e não executar nenhuma ação quando um email não tiver anexos. Como um exercício extra depois de concluir este tutorial, você pode adicionar uma ação apropriada que deseja executar na ramificação False.

Chamar o RemoveHTMLFunction

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

  1. No menu Aplicativo Lógico, em Ferramentas de Desenvolvimento, selecione Designer de Aplicativos Lógicos. Na ramificação True, selecione Adicionar uma ação.

  2. Siga essas etapas de caráter geral para adicionar a ação do Azure Functions denominada Escolher uma função do Azure.

  3. Selecione o aplicativo de funções que você criou anteriormente, que nesse exemplo é CleanTextFunctionApp.

  4. Selecione sua função, denominada RemoveHTMLFunction nesse exemplo e, em seguida, selecione Adicionar Ação.

  5. No painel de informações da ação do Azure Functions, renomeie a ação como Chamar RemoveHTMLFunction.

  6. Agora, especifique a entrada que sua função processará.

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

      { "emailBody":

      Enquanto você trabalhar nessa entrada nas próximas etapas, aparecerá um erro sobre JSON inválido até que a entrada seja formatada corretamente como JSON. Quando você testou essa função anteriormente, a entrada especificada para a função usava JSON (JavaScript Object Notation). Portanto, o corpo da solicitação deve usar o mesmo formato.

    2. Selecione dentro da caixa Corpo da Solicitação e, a seguir, 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 email é recebido, selecione a saída Corpo. Após esse valor ser 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

    Quando você terminar, a função do Azure irá se parecer com o seguinte exemplo:

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

  7. Salve seu fluxo de trabalho.

Em seguida, adicione uma ação que cria um blob para armazenar o corpo do email.

Adicionar uma ação para criar um blob para o corpo do email

As etapas a seguir criam um blob que armazena o corpo do email no seu contêiner de armazenamento.

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

  2. Siga essas etapas de caráter geral para adicionar a ação Armazenamento de Blobs do Azure denominada Criar blob.

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

    Parâmetro Obrigatório Valor Descrição
    Nome da conexão Yes <connection-name> Um nome descritivo para a conexão.

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

    Esse exemplo usa uma Chave de Acesso.
    Nome ou Ponto de Extremidade de Blob da Conta de Armazenamento do Azure Sim <storage-account-name> O nome da sua conta de armazenamento criada anteriormente.

    Este exemplo usa attachmentstorageacct.
    Chave de acesso da conta de armazenamento do Microsoft Azure Sim <chave-de-acesso-da-conta-de-armazenamento> A chave de acesso da sua conta de armazenamento criada anteriormente.
  4. Quando você terminar, selecione Criar Nova.

  5. No painel de informações da ação Criar blob, renomeie a ação como Criar blob para o corpo do email.

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

    Dica

    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 Obrigatório Valor Descrição
    Ponto de Extremidade do Blob ou Nome da Conta de Armazenamento Sim Usar as 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 usa o https://attachmentstorageacct.blob.core.windows.net.
    Caminho da pasta Sim <path-and-container-name> O nome do contêiner que você criou anteriormente e o caminho até ele.

    Nesse exemplo, selecione o ícone da pasta e, a seguir, selecione anexos.
    Nome do Blob Sim <sender-name> Para esse 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 da lista de conteúdo dinâmico (ícone de relâmpago).

    2. Na seção Quando um novo email é recebido, selecione De.
    Conteúdo do Blob Sim <cleaned-email-body> Neste exemplo, use o corpo do email sem HTML como conteúdo do blob.

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

    2. A partir da seção Chamar RemoveHTMLFunction, selecione Corpo.

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

    A captura de tela mostra o contêiner de armazenamento, o remetente e o corpo do email sem HTML na ação

    Quando você terminar, a ação irá se parecer com o seguinte exemplo:

    A captura de tela mostra o exemplo de informações do corpo do email para a ação

  7. Salve seu fluxo de trabalho.

Teste o manuseio de anexos

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

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

  2. Envie um email que atenda a estes critérios:

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

    • Seu email tem em um ou mais anexos. Por enquanto, basta criar um arquivo de texto vazio e anexar o arquivo ao seu email.

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

    Se o seu fluxo de trabalho não dispara ou é executado apesar do êxito de um gatilho, confira Solucionar problemas do fluxo de trabalho do seu aplicativo lógico.

  3. Verifique se o seu fluxo de trabalho salvou o email no contêiner de armazenamento correto.

    1. No Gerenciador de Armazenamento, expanda Emulador e Anexo>Contas de Armazenamento>attachmentstorageacct (Chave)>Contêineres de Blob>Anexos.

    2. Verifique o email no contêiner anexos.

      Neste momento, somente o email aparece no contêiner porque o fluxo de trabalho ainda não processou os anexos.

      A captura de tela mostra o Gerenciador de Armazenamento com apenas o email salvo.

    3. Quando você terminar, exclua o email no Gerenciador de Armazenamento.

  4. Opcionalmente, para testar a ramificação False, que não faz nada no momento, você pode enviar um email que não atende aos critérios.

Em seguida, adicione um loop For each para processar cada anexo do email.

Adicionar um loop para processar anexos

As etapas a seguir adicionam um loop para processar cada anexo no email.

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

  2. Siga essas etapas de caráter geral para adicionar a ação de Controle denominada For each.

  3. No painel de informações da ação For each, renomeie a ação como Para cada anexo de email.

  4. Agora, selecione o conteúdo do loop a ser processado.

    1. No loop Para cada anexo de email, selecione dentro da caixa Selecionar Uma Saída das Etapas Anteriores e, em seguida, selecione a opção da lista de conteúdo dinâmico (ícone de relâmpago).

    2. Na seção Quando um novo email é recebido, selecione o campo Anexos.

      A saída Anexos inclui uma matriz com todos os anexos de um email. O loop For each repete as mesmas ações em cada item da matriz.

      Dica

      Se não estiver vendo Anexos, selecione Ver Mais.

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

  5. Salve seu fluxo de trabalho.

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

Adicionar uma ação para criar um blob para cada 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 de email, selecione Adicionar uma ação.

  2. Siga essas etapas de caráter geral para adicionar a ação Armazenamento de Blobs do Azure denominada Criar blob.

  3. No painel de informações da ação Criar blob, renomeie a ação como Criar blob para um anexo de email.

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

    Dica

    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 Obrigatório Valor Descrição
    Ponto de Extremidade do Blob ou Nome da Conta de Armazenamento Sim Usar as 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 usa o https://attachmentstorageacct.blob.core.windows.net.
    Caminho da pasta Sim <path-and-container-name> O nome do contêiner que você criou anteriormente e o caminho até ele.

    Nesse exemplo, selecione o ícone da pasta e, a seguir, selecione anexos.
    Nome do Blob Sim <attachment-name> Nesse 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 da lista de conteúdo dinâmico (ícone de relâmpago).

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

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

    2. Na seção Quando um novo email é recebido, selecione Conteúdo.

    Observação

    Caso você selecione uma saída que tenha uma matriz, como a saída Content, que é uma matriz que inclui anexos, o designer adicionará automaticamente um loop For each 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 da matriz. Para remover o loop, migre 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 um blob para anexo de email:

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

    Quando você terminar, a ação irá se parecer com o seguinte exemplo:

    A captura de tela mostra o exemplo de informações do anexo para a ação

  5. Salve seu fluxo de trabalho.

Retestar o manuseio de anexos

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

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

  2. Envie um email que atenda a estes critérios:

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

    • Seu email tem dois ou mais anexos. Por enquanto, basta criar dois arquivos de texto vazios e anexar os arquivos ao email.

    Se o seu fluxo de trabalho não dispara ou é executado apesar do êxito de um gatilho, confira Solucionar problemas do fluxo de trabalho do seu aplicativo lógico.

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

    1. No Gerenciador de Armazenamento, expanda Emulador e Anexo>Contas de Armazenamento>attachmentstorageacct (Chave)>Contêineres de Blob>Anexos.

    2. Verifique o email e os anexos no contêiner anexos.

      A captura de tela mostra o Gerenciador de Armazenamento e os emails e anexos salvos.

    3. Quando você terminar, exclua o email e os anexos no Gerenciador de Armazenamento.

Em seguida, adicione uma ação ao seu fluxo de trabalho que envia um email para revisar os anexos.

Adicione uma ação para enviar email

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

  1. Retorne ao designer de fluxo de trabalho. No branch True, no loop Para cada anexo de email, selecione Adicionar uma ação.

  2. Siga essas etapas de caráter geral para adicionar uma ação do Outlook do Office 365 denominada Enviar um email.

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

  3. Se forem solicitadas credenciais, entre na sua conta de email para que os Aplicativos Lógicos do Azure criem uma conexão com a sua conta de email.

  4. No painel de informações da ação Enviar um email, renomeie a ação como Enviar email para revisão.

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

    Dica

    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 Obrigatório Valor Descrição
    Para Sim <recipient-email-address> Para fins de teste, use o seu próprio email.
    Assunto Sim <email-subject> O assunto do email a ser incluído.

    Esse exemplo usa ASAP: Avaliar o candidato ao cargo:, e a saída Assunto do gatilho.

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

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

    3. Na lista, em Quando um novo email é recebido, selecione Assunto.
    Corpo Sim <email-body> O corpo do email a ser incluído.

    O exemplo usa o Avalie o novo candidato:, a saída de gatilho denominada De, a saída Caminho da ação Criar blob para o corpo do email e a saída Corpo da sua ação Chamar RemoveHTMLFunction.

    1. Na caixa Corpo, insira o exemplo de texto Avalie o novo candidato:.

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

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

    4. Em uma nova linha, insira o exemplo de texto, Conteúdo do email da candidatura:e adicione a saída Corpo da ação Chamar RemoveHTMLFunction.

    Observação

    Caso você selecione uma saída que tenha uma matriz, como a saída Content, que é uma matriz que inclui anexos, o designer adicionará automaticamente um loop For each 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 da matriz. Para remover o loop, migre 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 email concluída:

    A captura de tela mostra a amostra de email a ser enviada.

  6. Salve seu fluxo de trabalho.

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

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

Testar seu fluxo de trabalho

  1. Envie um email que atenda a estes critérios:

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

    • Seu email tem em um ou mais anexos. Você pode reutilizar um arquivo de texto vazio do teste anterior. Para um cenário mais realista, anexe um arquivo de currículo.

    • O corpo do email tem este texto, que você 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. Executar seu fluxo de trabalho. Se for bem-sucedido, o fluxo de trabalho envia um email que se parece com este exemplo:

    A captura de tela mostra o exemplo de email enviado pelo fluxo de trabalho do aplicativo lógico.

    Se você não receber nenhum email, verifique a pasta de Lixo eletrônico. Caso contrário, se você não tiver certeza de que o fluxo de trabalho foi executado corretamente, confira Solucionar problemas do 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 alguns códigos personalizados.

Limpar os recursos

O fluxo de trabalho continuará sendo executado até que você desabilite ou exclua o recurso do aplicativo lógico. Quando você não precisar mais deste exemplo, exclua o grupo de recursos que contém o aplicativo lógico e os recursos relacionados.

  1. Na caixa de busca do portal do Azure, insira os 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 for exibido, insira o nome do grupo de recursos e selecione Excluir.

Próximas etapas

Neste tutorial, você criou um fluxo de trabalho do 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 fluxo de trabalho em aplicativos lógicos.