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)

Os Aplicativos Lógicos do Azure ajudam a automatizar fluxos de trabalho e a integrar os dados entre os serviços do Azure, os serviços da Microsoft, outros aplicativos SaaS (software como serviço) e sistemas locais. Este tutorial mostra como criar um fluxo de trabalho de aplicativo lógico que manipula emails de entrada e anexos, analisa o conteúdo de email usando Azure Functions, salva o conteúdo no armazenamento do Azure e envia emails para revisar o conteúdo.

Neste tutorial, você aprenderá como:

  • Configurar o Armazenamento do Azure e o Gerenciador de Armazenamento para verificar emails e anexos.
  • Criar uma função do Azure que remova o HTML dos emails. Este tutorial inclui o código que você pode usar para essa função.
  • Criar um fluxo de trabalho do aplicativo lógico de Consumo em branco.
  • Adicionar um gatilho que monitora anexos nos emails.
  • Adicionar uma condição que verifica se os emails têm anexos.
  • Adicionar uma ação que chama a função do Azure quando um email tem anexos.
  • Adicionar uma ação que cria blobs de armazenamento para emails e anexos.
  • Adicionar uma ação que envia notificações por email.

A seguinte captura de tela mostra o fluxo de trabalho em alto nível:

Captura de tela mostrando o exemplo de fluxo de trabalho de Consumo de alto nível para este tutorial.

Pré-requisitos

Configurar armazenamento para salvar anexos

Você pode salvar emails recebidos e anexos como blobs em um contêiner de armazenamento do Azure.

  1. No portal do Azure com suas credenciais de conta do Azure, crie uma conta de armazenamento, a menos que você já tenha uma, usando as seguintes informações na guia Básico:

    Propriedade Valor Descrição
    Assinatura <Azure-subscription-name> O nome e a ID da assinatura do Azure
    Grupo de recursos <Azure-resource-group> O nome do grupo de recursos do Azure usado para organizar e gerenciar os recursos relacionados. Este exemplo usa LA-Tutorial-RG.

    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.
    Nome da conta de armazenamento <Azure-storage-account-name> O nome da 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 <Azure-region> A região na qual armazenar informações sobre sua conta de armazenamento. Este exemplo usa Oeste dos EUA.
    Desempenho Standard Essa configuração especifica os tipos de dados com suporte e a mídia para armazenar dados. Confira os Tipos de contas de armazenamento.
    Redundância 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.

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

  2. Quando terminar, selecione Examinar>Criar.

  3. Depois que o Azure implantar sua conta de armazenamento, encontre-a e obtenha sua chave de acesso:

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

    2. Copie o nome da sua conta de armazenamento e a key1 e salve esses valores em um lugar seguro.

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

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

    1. No menu da sua 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. Em Novo contêiner, insira anexos como nome do contêiner. Em Nível de acesso público, selecione Contêiner (acesso de leitura anônimo para contêineres e blobs)>OK.

    Quando terminar, a lista de contêineres agora vai mostrar 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

Agora, conecte o Gerenciador de Armazenamento à conta de armazenamento para que seja possível confirmar que seu fluxo de trabalho pode salvar anexos como blobs corretamente no 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 for exibido, na barra de atividades do Gerenciador de Armazenamento, selecione Gerenciamento de Conta (ícone da conta).

  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 Gerenciamento de Contas e verifique se o locatário e a assinatura 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 e selecione Avançar.

    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. Na janela Resumo, confirme suas informações de conexão e selecione Conectar.

    O Gerenciador de Armazenamento cria a conexão e mostra sua conta de armazenamento na janela do Gerenciador em Emulador e Anexado>Contas de Armazenamento.

  10. Para encontrar seu contêiner de armazenamento de blobs, em Contas de Armazenamento, expanda sua conta de armazenamento, que aqui é attachmentstorageacct e expanda Contêineres de Blob, em que você encontra o contêiner attachments, por exemplo:

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

Em seguida, crie uma função do Azure que remova HTML do email de entrada.

Criar função para remover HTML

Agora, use o snippet de código fornecido por estas etapas para criar uma função do Azure que remova HTML de cada email recebido. Dessa forma, o conteúdo do email fica mais limpo e fácil de processar. Então você poderá chamar essa função do seu fluxo de trabalho.

  1. Antes de criar uma função, crie um aplicativo de funções seguindo estas etapas:

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

      Propriedade Valor Descrição
      Assinatura <nome-da-sua-assinatura-do-Azure> A mesma assinatura do Azure que você usou anteriormente
      Grupo de recursos LA-Tutorial-RG O mesmo grupo de recursos do Azure que você usou anteriormente
      Nome do aplicativo de funções <function-app-name> O nome do seu aplicativo de funções, que deve ser globalmente exclusivo no Azure. Este exemplo já usa CleanTextFunctionApp; portanto, forneça um nome diferente, como MyCleanTextFunctionApp-<seu_nome>
      Deseja implantar código ou imagem de contêiner? Código Publicar arquivos de código.
      Pilha de runtime <preferred-language> Selecione um runtime que dê suporte à sua linguagem de programação de funções favorita. A edição no portal só está disponível para JavaScript, PowerShell, TypeScript e script de C#. As funções da biblioteca de classes do C#, do Java e do Python precisam ser desenvolvidas localmente. Selecione .NET para as funções C# e F#.
      Versão <version-number> Selecione a versão do seu runtime instalado.
      Região <Azure-region> A mesma região que você usou anteriormente. Este exemplo usa Oeste dos EUA.
      Sistema operacional <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.
      Opções e planos de hospedagem Consumo (Sem servidor) Seleciona o plano de hospedagem que define como os recursos são alocados para o aplicativo de funções. No plano Consumo padrão, os recursos são adicionados dinamicamente conforme exigido por suas funções. Nesta hospedagem sem servidor, você paga somente pelo tempo durante o qual suas funções são executadas. Quando você executa em um Plano do Serviço de Aplicativo, deve gerenciar o dimensionamento do aplicativo de funções.
    2. Selecione A seguir: Armazenamento. Na guia Armazenamento, forneça as seguintes informações:

      Propriedade Valor Descrição
      Conta de armazenamento cleantextfunctionstorageacct Crie uma conta de armazenamento usada pelo seu aplicativo de funções. Os nomes da conta de armazenamento precisam ter entre 3 e 24 caracteres e podem conter apenas números e letras minúsculas.

      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 terminar, selecione Review + create. Confirme suas informações e selecione Criar.

    4. Após o Azure criar e implantar o recurso do aplicativo de funções, selecione Acessar o recurso.

  2. Agora, crie sua função localmente, pois a criação de função no portal do Azure é limitada. Use o modelo de gatilho HTTP, forneça as seguintes informações à função e use o código de exemplo incluído, que remove o HTML e retorna os resultados para o chamador:

    Propriedade Valor
    Nome da função RemoveHTMLFunction
    Nível de autorização Função
    #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 });
    }
    
  3. Para testar sua função, use a seguinte entrada de amostra:

    {"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 seu fluxo de trabalho do aplicativo lógico

  1. Na caixa de pesquisa de alto nível do portal do Azure, insira aplicativos lógicos e selecione Aplicativos lógicos.

  2. Na página Aplicativos Lógicos, selecione Adicionar.

  3. Na página Criar Aplicativo Lógico, em Planejar, selecione Consumo como o tipo de plano, que mostra apenas as opções para fluxos de trabalho do aplicativo lógico de Consumo. Insira as informações a seguir e clique em Examinar + Criar.

    Propriedade Valor Descrição
    Assinatura <nome-da-sua-assinatura-do-Azure> A mesma assinatura do Azure que você usou anteriormente
    Grupo de recursos LA-Tutorial-RG O mesmo grupo de recursos do Azure que você usou anteriormente
    Nome do Aplicativo Lógico LA-ProcessAttachment O nome do aplicativo lógico e do fluxo de trabalho. Um aplicativo lógico e um fluxo de trabalho de Consumo sempre têm o mesmo nome.
    Região Oeste dos EUA A mesma região que você usou anteriormente
    Habilitar a análise de logs Não Para este tutorial, mantenha a configuração Desligada.
  4. Confirme as informações fornecidas e selecione Criar. Após o Azure implantar o aplicativo, selecione Ir para o recurso.

  5. No menu de recursos do aplicativo lógico, selecione Designer de aplicativo lógico, para abrir o designer de fluxo de trabalho.

Adicionar um gatilho para verificar o email de entrada

Agora, adicione um gatilho que verifica emails recebidos com anexos. Cada fluxo de trabalho deve começar com um gatilho, que é acionado quando a condição do gatilho é atendida, por exemplo, um evento específico ocorre ou quando chegam novos dados. Para obter mais informações, consulte Início Rápido: criar um exemplo de fluxo de trabalho de aplicativo lógico de Consumo nos Aplicativos Lógicos do Azure para multilocatário.

Este exemplo usa 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.

  1. No designer de fluxo de trabalho, selecione Adicionar um gatilho.

  2. Após abrir o painel Adicionar um gatilho, na caixa de pesquisa, insira oOutlook do Office 365. Na lista de resultados do gatilho, no Outlook do Office 365, selecione Quando um novo email chegar (V3).

  3. Se forem solicitadas credenciais, entre em sua conta de email, o que cria uma conexão entre seu fluxo de trabalho e sua conta de email.

  4. Agora, forneça os critérios de gatilho para verificar novos emails e executar seu fluxo de trabalho.

    Propriedade 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 email a ser verificada
  5. Na lista de parâmetros Avançados, selecione Filtro de Assunto.

  6. Depois que a caixa Filtro de Assunto for exibida na ação, especifique o assunto, conforme descrito aqui:

    Propriedade Valor Descrição
    Filtro de Assunto Analista de Negócios 2 #423501 O texto a ser localizado no assunto do email
  7. Salve seu fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

    Seu fluxo de trabalho agora está ativo, mas ele 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.

Verificar anexos

Agora, adicione uma condição que seleciona somente emails com anexos.

  1. No gatilho, selecione o sinal de adição (+) e, em seguida, selecione Adicionar uma ação.

  2. No painel Adicionar uma ação, na caixa de pesquisa, insira condição.

  3. Na lista de resultados da ação, selecione a ação chamada Condição.

  4. Renomeie a condição usando uma descrição melhor.

    1. No painel de informações da Condição, substitua o nome padrão da condição pela seguinte descrição: Se o email tiver anexos e frase-chave no assunto
  5. Crie uma condição que verifica emails com anexos.

    1. Na primeira linha da lista de operações E, selecione dentro da caixa mais à esquerda. Na lista de conteúdo dinâmico exibida, selecione a propriedade Tem Anexo.

      Captura de tela mostrando a ação de condição, a segunda linha com o cursor na caixa mais à esquerda, a lista de conteúdo dinâmico aberto e a propriedade Tem Anexo selecionada.

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

    3. Na caixa mais à direita, insira true, que é o valor a ser comparado com o valor da propriedade Tem Anexo, que é a saída 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.

    Em sua definição de fluxo de trabalho subjacente, que você pode mostrar selecionando Exibição de código no designer, a condição é semelhante ao seguinte exemplo:

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

Testar a condição

  1. Na barra de ferramentas do designer, escolha Executar gatilho>Executar.

    Esta etapa inicia e executa manualmente o fluxo de trabalho, mas nada acontecerá até que o email de teste chegue à 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 gatilhos disparados com êxito, selecione Histórico de gatilhos.

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

    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 RemoveHTMLFunction

Esta etapa adiciona a função do Azure criada anteriormente ao seu fluxo de trabalho e passa o conteúdo de corpo do email do gatilho de email para sua função.

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

  2. Na caixa de pesquisa Escolher uma operação, selecione Interno. Na caixa de pesquisa, insira azure Functions e selecione a ação chamada Escolher uma função do Azure.

    Captura de tela mostrando a ação selecionada chamada Escolher uma função do Azure.

  3. Selecione o aplicativo de funções criado anteriormente, que é CleanTextFunctionApp neste exemplo:

  4. Agora, selecione sua função, que é chamada RemoveHTMLFunction neste exemplo.

  5. Renomeie a forma da sua função com a seguinte descrição: Chamar RemoveHTMLFunction para limpar o corpo do email

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

    1. Em Corpo da Solicitação, insira este 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.

      Além disso, quando o cursor estiver dentro da caixa Corpo da solicitação, a lista de conteúdo dinâmico é exibida para que você possa selecionar valores de propriedade disponíveis de ações anteriores.

    2. Na lista de conteúdo dinâmico, em Quando um novo email é recebido, selecione a propriedade Corpo. Após essa propriedade, lembre-se de adicionar a chave de fechamento (}).

      Especifique o corpo da solicitação para passar para a função

    Quando terminar, a entrada da sua função se parecerá com o seguinte exemplo:

    Corpo da solicitação concluído que será passado para sua função

  7. Salve seu fluxo de trabalho.

Em seguida, adicione uma ação que cria um blob em seu contêiner de armazenamento para você poder salvar o corpo do email.

Criar blob para o corpo do email

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

  2. Na caixa de pesquisa Escolha uma operação, selecione Tudo. Na caixa de pesquisa, insira criar blob e selecione a ação chamada Criar blob.

    Captura de tela mostrando a ação Armazenamento de Blobs do Azure chamada Criar blob selecionada.

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

    Propriedade Valor Descrição
    Nome da conexão AttachmentStorageConnection Um nome descritivo para a conexão
    Tipo de autenticação Chave de Acesso O tipo de autenticação a ser usado para a conexão
    Nome ou ponto de extremidade da conta de Armazenamento do Azure <storage-account-name> O nome da sua conta de armazenamento criada anteriormente, que é attachmentstorageacct para este exemplo
    Chave de acesso da conta de armazenamento do Microsoft Azure <chave-de-acesso-da-conta-de-armazenamento> A chave de acesso para sua conta de armazenamento criada anteriormente
  4. Renomeie a ação Criar blob com a seguinte descrição: Criar blob para o corpo do email

  5. Na ação Criar blob, forneça as seguintes informações:

    Propriedade Valor Descrição
    Nome ou ponto de extremidade da conta de Armazenamento Usar configurações de conexão (<storage-account-name>) Selecione sua conta de armazenamento, que é attachmentstorageacct neste exemplo.
    Caminho da pasta <path-and-container-name> O nome do contêiner que você criou anteriormente e o caminho até ele. Neste exemplo, selecione o ícone da pasta e escolha o contêiner anexos.
    Nome de blob <sender-name> Neste exemplo, use o nome do remetente como nome do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo email é recebido, selecione o campo De.
    Conteúdo do blob <content-for-blob> Neste exemplo, use o corpo do email sem HTML como conteúdo do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Chamar RemoveHTMLFunction para limpar o corpo do email, selecione Corpo.

    A seguinte imagem mostra os campos a serem selecionados para a ação Criar blob:

    Captura de tela mostrando informações sobre o corpo do email sem HTML na ação Criar blob.

    Ao terminar, a ação será semelhante ao seguinte exemplo:

    Captura de tela mostrando exemplos de entradas de email sem HTML para a ação Criar blob concluída.

  6. Salve seu fluxo de trabalho.

Verifique o tratamento de anexos

  1. Na barra de ferramentas do designer, escolha Executar gatilho>Executar.

    Esta etapa inicia e executa manualmente o fluxo de trabalho, mas nada acontecerá até que o email de teste chegue à 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 pelo menos um anexo. Por enquanto, basta criar um arquivo de texto vazio e anexar o arquivo ao seu email.

    • Seu email tem conteúdo de teste no corpo, por exemplo: Testing my logic app workflow

    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.

      Captura de tela mostrando Gerenciador de Armazenamento apenas com 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 todos os anexos do email.

Processar anexos

Para processar cada anexo no email, adicione um loop For each ao seu fluxo de trabalho.

  1. Volte para o designer. Na ação Criar blob para o corpo do email, selecione Adicionar uma ação.

  2. Na caixa de pesquisa Escolher uma operação, selecione Interno. Na caixa de pesquisa, insira for each e selecione a ação nomeada For each.

    Captura de tela mostrando a ação selecionada chamada For each.

  3. Renomeie o loop com a seguinte descrição: Para cada anexo do email

  4. Agora, selecione os dados para o loop processar. No loop Para cada anexo do email, selecione dentro da caixa Selecionar saída de etapas anteriores para exibir a lista de conteúdo dinâmico. Na seção Quando um novo email é recebido, selecione o campo Anexos.

    Captura de tela mostrando a lista de conteúdo dinâmico com o campo selecionado chamado Anexos.

    O campo Anexos passa uma matriz que contém todos os anexos incluídos em um email. O loop for each repete ações em cada item que é transmitido com a matriz.

  5. Salve seu fluxo de trabalho.

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

Criar blob para cada anexo

  1. No designer, no loop Para cada anexo do email, selecione Adicionar uma ação para que você possa especificar a tarefa a ser executada em cada anexo encontrado.

    Captura de tela mostrando o loop com a opção Adicionar uma ação selecionada.

  2. Na caixa de pesquisa Escolha uma operação, selecione Tudo. Na caixa de pesquisa, insira criar blob e selecione a ação chamada Criar blob.

    Captura de tela mostrando a ação selecionada chamada Create blob.

  3. Renomeie a ação Criar blob 2 com a seguinte descrição: Criar blob para cada anexo do email

  4. Na ação Criar blob para cada anexo do email, forneça as seguintes informações:

    Propriedade Valor Descrição
    Nome ou ponto de extremidade da conta de Armazenamento Usar configurações de conexão (<storage-account-name>) Selecione sua conta de armazenamento, que é attachmentstorageacct neste exemplo.
    Caminho da pasta <path-and-container-name> O nome do contêiner que você criou anteriormente e o caminho até ele. Neste exemplo, selecione o ícone da pasta e escolha o contêiner anexos.
    Nome de blob <attachment-name> Neste exemplo, use o nome do anexo como nome do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo email é recebido, selecione o campo Nome.
    Conteúdo do blob <email-conteúdo> Para este exemplo, use o conteúdo do email como o conteúdo do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo email é recebido, selecione Conteúdo.

    Captura de tela mostrando informações sobre o anexo na ação Criar blob.

    Ao terminar, a ação será semelhante ao seguinte exemplo:

    Captura de tela mostrando informações de anexo de exemplo para a ação Criar blob concluída.

  5. Salve seu fluxo de trabalho.

Verifique o tratamento de anexos

  1. Na barra de ferramentas do designer, escolha Executar gatilho>Executar.

    Esta etapa inicia e executa manualmente o fluxo de trabalho, mas nada acontecerá até que o email de teste chegue à sua caixa de entrada.

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

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

    • Seu email tem pelo menos dois 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.

      Captura de tela mostrando o Gerenciador de Armazenamento e emails e anexos salvos.

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

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

Enviar notificações por email

  1. Volte para o designer. Na ramificação True, recolha o loop Para cada anexo do email.

  2. No loop, selecione Adicionar uma ação.

    Captura de tela mostrando o loop for each recolhido. No loop, a opção Adicionar uma ação está selecionada.

  3. Na caixa de pesquisa Escolha uma operação, selecione Standard. Na caixa de pesquisa, insira enviar email.

  4. Na lista de ações, selecione a ação Enviar email para seu provedor de email. Para filtrar a lista de ações com base em um conector específico, você pode selecionar primeiro o conector.

    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.

    Captura de tela mostrando a ação enviar email do Outlook do Office 365 selecionada.

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

  6. Renomeie a ação Enviar email com a seguinte descrição: Enviar email para revisão

  7. Forneça as informações de ação a seguir e selecione os campos a serem incluídos no email.

    • Para adicionar linhas em branco em uma caixa de edição, pressione Shift + Enter.
    • Se você não encontrar um campo esperado na lista de conteúdo dinâmico, selecione Ver mais ao lado de Quando um novo email é recebido.
    Propriedade Valor Descrição
    Para <recipient-email-address> Para fins de teste, você pode usar seu próprio endereço de email.
    Assunto ASAP - Review applicant for position:Assunto O assunto do email que você deseja incluir. Clique dentro dessa caixa, digite o texto de exemplo e, da lista de conteúdo dinâmico, selecione o campo Assunto em Quando um novo email é recebido.
    Corpo Please review new applicant:

    Applicant name:From

    Application file location:Path

    Application email content:Body

    O conteúdo do corpo do email. Clique nessa caixa, digite o texto de exemplo e, da lista de conteúdo dinâmico, selecione estes campos:

    – O campo From em Quando um novo email chega
    – O campo Path em Criar blob para o corpo do email
    – O campo Body em Chamar RemoveHTMLFunction para limpar o corpo do email

    Captura de tela mostrando o email de exemplo a ser enviado.

    Observação

    Caso você selecione um campo que tenha uma matriz, como o campo Content, que é uma matriz que contém anexos, o designer adicionará automaticamente um loop For each em torno da ação que faz referência a esse campo. Dessa forma, seu fluxo de trabalho pode executar essa ação em cada item da matriz. Para remover o loop, remova o campo da matriz, mova a ação de referência para fora do loop, selecione as reticências ( ... ) na barra de título do loop e selecione Excluir.

  8. Salve seu fluxo de trabalho.

Agora, teste o fluxo de trabalho, que se parece com o seguinte exemplo:

Captura de tela mostrando o fluxo de trabalho concluído.

Executar o fluxo de trabalho

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

    • O assunto do email tem o texto que você especificou na propriedade 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:

    Captura de tela mostrando 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. O filtro de lixo de email pode redirecionar esses tipos de mensagens. 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 códigos personalizados.

Limpar os recursos

Quando você não precisar mais deste exemplo, exclua o grupo de recursos que contém o fluxo de trabalho do aplicativo lógico e os recursos relacionados.

  1. Na caixa de pesquisa de nível superior 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. Na barra de ferramentas da página Visão Geral do grupo de recursos, selecione Excluir grupo de recursos.

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