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:
Pré-requisitos
Uma conta e uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure.
Uma conta de email de qualquer provedor de email compatível com os Aplicativos Lógicos do Azure, como o Outlook do Office 365, o Outlook.com ou o Gmail. Para outros provedores, revise a lista de conectores aqui.
O fluxo de trabalho desse aplicativo lógico usa uma conta corporativa ou de estudante. Se você usar uma conta de email diferente, as etapas gerais serão as mesmas, mas a interface do usuário poderá parecer um pouco diferente.
Observação
Se você quiser usar o conector do Gmail, somente as contas comerciais do G Suite poderão usar esse conector sem restrição nos fluxos de trabalho dos aplicativos lógicos. Se você tiver uma conta de consumidor do Gmail, poderá usar esse conector somente com serviços específicos do Google aprovados ou poderá criar um aplicativo cliente do Google para usar para autenticação com o conector do Gmail. Para obter mais informações, confira Políticas de privacidade e segurança de dados para os conectores do Google nos Aplicativos Lógicos do Azure.
Baixe e instale o Gerenciador de Armazenamento do Microsoft Azure gratuito. Essa ferramenta ajuda a verificar se o contêiner de armazenamento está configurado corretamente.
Se o fluxo de trabalho precisar se comunicar por um firewall que limita o tráfego a endereços IP específicos, esse firewall precisará permitir o acesso tanto para os endereços IP de entrada quanto para os de saída usados pelos Aplicativos Lógicos do Azure na região do Azure em que o recurso do aplicativo lógico existe. Se o fluxo de trabalho também usar conectores gerenciados, como o conector do Office 365 Outlook ou do SQL, ou usar conectores personalizados, o firewall também precisará permitir o acesso para todos os endereços IP de saída do conector gerenciado na região do Azure do aplicativo lógico.
Configurar armazenamento para salvar anexos
Você pode salvar emails recebidos e anexos como blobs em um contêiner de armazenamento do Azure.
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.
Quando terminar, selecione Examinar>Criar.
Depois que o Azure implantar sua conta de armazenamento, encontre-a e obtenha sua chave de acesso:
No menu da sua conta de armazenamento, em Segurança + rede, selecione Chaves de acesso.
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.
Crie um contêiner de armazenamento de blobs para os anexos de email.
No menu da sua conta de armazenamento, em Armazenamento de dados, selecione Contêineres.
Na barra de ferramentas da página de Contêineres selecione Contêiner.
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.
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).
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.
Na janela do navegador exibida, entre com sua conta do Azure.
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.
Na barra de atividades Gerenciador de Armazenamento, selecione Abrir Diálogo Conectar.
Na janela Selecionar Recurso, selecione Conta de armazenamento ou serviço.
Na janela Selecionar Método de Conexão, selecione Nome da conta e chave>Avançar.
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 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.
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:
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.
Antes de criar uma função, crie um aplicativo de funções seguindo estas etapas:
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. 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.Quando terminar, selecione Review + create. Confirme suas informações e selecione Criar.
Após o Azure criar e implantar o recurso do aplicativo de funções, selecione Acessar o recurso.
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(@" ", " "); // Return cleaned text return (ActionResult)new OkObjectResult(new { updatedBody }); }
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
Na caixa de pesquisa de alto nível do portal do Azure, insira aplicativos lógicos e selecione Aplicativos lógicos.
Na página Aplicativos Lógicos, selecione Adicionar.
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. Confirme as informações fornecidas e selecione Criar. Após o Azure implantar o aplicativo, selecione Ir para o recurso.
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.
No designer de fluxo de trabalho, selecione Adicionar um gatilho.
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).
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.
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 Na lista de parâmetros Avançados, selecione Filtro de Assunto.
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 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.
No gatilho, selecione o sinal de adição (+) e, em seguida, selecione Adicionar uma ação.
No painel Adicionar uma ação, na caixa de pesquisa, insira condição.
Na lista de resultados da ação, selecione a ação chamada Condição.
Renomeie a condição usando uma descrição melhor.
- 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
Crie uma condição que verifica emails com anexos.
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.
Na caixa do meio, mantenha o operador é igual a.
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.
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" }
Salve seu fluxo de trabalho.
Testar a condição
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.
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.
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.
No menu de aplicativo lógico, selecione Designer do Aplicativo Lógico. Na ramificação True, selecione Adicionar uma ação.
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.
Selecione o aplicativo de funções criado anteriormente, que é CleanTextFunctionApp neste exemplo:
Agora, selecione sua função, que é chamada RemoveHTMLFunction neste exemplo.
Renomeie a forma da sua função com a seguinte descrição: Chamar RemoveHTMLFunction para limpar o corpo do email
Agora, especifique a entrada que sua função processará.
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.
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 (}).
Quando terminar, a entrada da sua função se parecerá com o seguinte exemplo:
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
No designer, no bloco True da função do Azure, selecione Adicionar uma ação.
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.
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 Renomeie a ação Criar blob com a seguinte descrição: Criar blob para o corpo do email
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:
Ao terminar, a ação será semelhante ao seguinte exemplo:
Salve seu fluxo de trabalho.
Verifique o tratamento de anexos
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.
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.
Verifique se o seu fluxo de trabalho salvou o email no contêiner de armazenamento correto.
No Gerenciador de Armazenamento, expanda Emulador e Anexo>Contas de Armazenamento>attachmentstorageacct (Chave)>Contêineres de Blob>Anexos.
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.
Quando você terminar, exclua o email no Gerenciador de Armazenamento.
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.
Volte para o designer. Na ação Criar blob para o corpo do email, selecione Adicionar uma ação.
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.
Renomeie o loop com a seguinte descrição: Para cada anexo do email
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.
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.
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
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.
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.
Renomeie a ação Criar blob 2 com a seguinte descrição: Criar blob para cada anexo do email
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. Ao terminar, a ação será semelhante ao seguinte exemplo:
Salve seu fluxo de trabalho.
Verifique o tratamento de anexos
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.
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.
Verifique se o seu fluxo de trabalho salvou o email e os anexos no contêiner de armazenamento correto.
No Gerenciador de Armazenamento, expanda Emulador e Anexo>Contas de Armazenamento>attachmentstorageacct (Chave)>Contêineres de Blob>Anexos.
Verifique o email e os anexos no contêiner anexos.
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
Volte para o designer. Na ramificação True, recolha o loop Para cada anexo do email.
No loop, selecione Adicionar uma ação.
Na caixa de pesquisa Escolha uma operação, selecione Standard. Na caixa de pesquisa, insira enviar email.
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.
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.
Renomeie a ação Enviar email com a seguinte descrição: Enviar email para revisão
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:
AssuntoO 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:
FromApplication file location:
PathApplication email content:
BodyO 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 emailObservaçã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.
Salve seu fluxo de trabalho.
Agora, teste o fluxo de trabalho, que se parece com o seguinte exemplo:
Executar o fluxo de trabalho
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
Executar seu fluxo de trabalho. Se for bem-sucedido, o fluxo de trabalho envia um email que se parece com este exemplo:
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.
Na caixa de pesquisa de nível superior do portal do Azure, insira grupos de recursos e selecione Grupos de recursos.
Na lista Grupos de recursos, selecione o grupo de recursos para este tutorial.
Na barra de ferramentas da página Visão Geral do grupo de recursos, selecione Excluir grupo de recursos.
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.