Tutorial: Criar fluxos de trabalho que processam emails usando os Aplicativos Lógicos do Azure, o Azure Functions e o Armazenamento do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Consumo)
O Azure Logic Apps ajuda-o a automatizar fluxos de trabalho e a integrar dados nos serviços do Azure, nos serviços Microsoft, noutras aplicações de software como serviço (Saas) e em sistemas no local. Este tutorial mostra como criar um fluxo de trabalho de aplicativo lógico que lida com emails de entrada e quaisquer anexos, analisa o conteúdo de email usando o Azure Functions, salva o conteúdo no armazenamento do Azure e envia emails para revisar o conteúdo.
Neste tutorial, irá aprender a:
- Configurar o Armazenamento do Azure e o Explorador de Armazenamento para verificar e-mails e anexos guardados.
- Criar uma função do Azure que remove o HTML dos e-mails. Este tutorial inclui o código que pode utilizar para esta função.
- Crie um fluxo de trabalho de aplicativo lógico de consumo em branco.
- Adicionar um acionador que monitoriza os e-mails para verificar se há anexos.
- Adicionar uma condição que verifica se os e-mails têm anexos.
- Adicionar uma ação que chama a função do Azure quando um e-mail tem anexos.
- Adicionar uma ação que cria blobs de armazenamento para e-mails e anexos.
- Adicionar uma ação que envia notificações de e-mail.
A captura de tela a seguir mostra o fluxo de trabalho em um alto nível:
Pré-requisitos
Uma conta e subscrição do Azure. Se não tiver uma subscrição, inscreva-se numa conta do Azure gratuita.
Uma conta de email de um provedor de email suportado pelos Aplicativos Lógicos do Azure, como o Office 365 Outlook, Outlook.com ou Gmail. Para outros fornecedores, consulte a lista de conectores aqui.
Este fluxo de trabalho de aplicativo lógico usa uma conta corporativa ou de estudante. Se utilizar outra conta de e-mail, os passos gerais são os mesmos, mas a IU poderá ser ligeiramente diferente.
Nota
Se você quiser usar o conector do Gmail, somente as contas comerciais do G-Suite poderão usar esse conector sem restrições nos fluxos de trabalho lógicos do aplicativo. Se tiver uma conta de consumidor do Gmail, pode utilizar este conector apenas com serviços específicos aprovados pela Google ou pode criar uma aplicação cliente Google para utilizar na autenticação com o conector do Gmail. Para obter mais informações, consulte Políticas de segurança e privacidade de dados para conectores do Google em Aplicativos Lógicos do Azure.
Transferir e instalar o Explorador de Armazenamento do Microsoft Azure gratuito. Esta ferramenta ajuda-o a verificar se o seu contentor de armazenamento está configurado corretamente.
Se o seu fluxo de trabalho precisar se comunicar por meio de um firewall que limita o tráfego a endereços IP específicos, esse firewall precisará permitir o acesso para os endereços IP de entrada e saída usados pelos Aplicativos Lógicos do Azure na região do Azure onde o recurso do aplicativo lógico existe. Se o seu fluxo de trabalho também usa conectores gerenciados, como o conector do Outlook do Office 365 ou o conector SQL, ou usa conectores personalizados, o firewall também precisa permitir o acesso a todos os endereços IP de saída do conector gerenciado na região do Azure do seu aplicativo lógico.
Configurar o armazenamento para guardar anexos
Pode guardar os e-mails e anexos recebidos como blobs num contentor 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 Noções básicas:
Property valor Description Subscrição <Azure-subscrição-nome> O nome da sua subscrição do Azure Grupo de recursos <Azure-resource-group> O nome do grupo de recursos do Azure utilizado para organizar e gerir os recursos relacionados. Este exemplo usa LA-Tutorial-RG.
Nota: os grupos de recursos existem dentro de regiões específicas. Embora os itens neste tutorial possam não estar disponíveis em todas as regiões, tente utilizar a mesma região sempre que possível.Nome da conta de armazenamento <Azure-storage-account-name> O nome 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 <Azure-region> A região onde armazenar informações sobre sua conta de armazenamento. Este exemplo usa West US. Desempenho Standard Esta definição especifica os tipos de dados suportados e os suportes de dados para armazenar dados. Veja Tipos de contas de armazenamento. Redundância Armazenamento georredundante (GRS) Essa configuração permite armazenar várias cópias de seus dados como proteção contra eventos planejados e não planejados. Para obter mais informações, veja Redundância do Armazenamento do Microsoft Azure. Para criar a sua conta de armazenamento, também pode utilizar o Azure PowerShell ou a CLI do Azure.
Quando terminar, selecione Rever>criação.
Depois que o Azure implantar sua conta de armazenamento, localize sua conta de armazenamento e obtenha a chave de acesso da conta de armazenamento:
No menu da sua conta de armazenamento, em Segurança + rede, selecione Chaves de acesso.
Copie o nome e a chave da sua conta de armazenamento1 e guarde esses valores num local seguro.
Para obter a chave de acesso à sua conta de armazenamento, também pode utilizar o Azure PowerShell ou a CLI do Azure.
Crie um contentor de armazenamento de blobs para os anexos de e-mails.
No menu da sua conta de armazenamento, em Armazenamento de dados, selecione Contêineres.
Na barra de ferramentas da página Contêineres , selecione Contêiner.
Em Novo contêiner, insira anexos como o 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 mostra o novo contêiner de armazenamento.
Para criar um contêiner de armazenamento, você também pode usar o Azure PowerShell ou a CLI do Azure.
Depois, ligue o Explorador de Armazenamento à conta de armazenamento.
Configurar o Explorador de Armazenamento
Agora, conecte o Storage Explorer à sua conta de armazenamento para que você possa confirmar se seu fluxo de trabalho pode salvar corretamente os anexos como blobs no contêiner de armazenamento.
Inicie o Gerenciador de Armazenamento do Microsoft Azure. Inicie sessão com a sua conta do Azure.
Nota
Se nenhum prompt for exibido, na barra de atividades do Storage Explorer, selecione Gerenciamento de contas (ícone da conta).
Na janela Selecionar Ambiente do Azure, selecione seu ambiente do Azure e selecione Avançar.
Este exemplo continua selecionando o Azure global e multilocatário.
Na janela do navegador exibida, entre com sua conta do Azure.
Retorne ao Gerenciador de Armazenamento e à janela Gerenciamento de Conta e verifique se o locatário e a assinatura corretos do Microsoft Entra estão selecionados.
Na barra de atividades do Gerenciador de Armazenamento, selecione Abrir caixa de diálogo Conectar.
Na janela Selecionar recurso, selecione Conta ou serviço de armazenamento.
Na janela Selecionar Método de Conexão, selecione Nome da conta e chave>Avançar.
Na janela Conectar ao Armazenamento do Azure, forneça as seguintes informações e selecione Avançar.
Property valor Nome a apresentar Um nome amigável para a sua ligação Nome da conta O nome da sua conta de armazenamento Chave da conta A chave de acesso que guardou anteriormente Na janela Resumo, confirme as informações de conexão e selecione Conectar.
O Storage Explorer cria a conexão e mostra sua conta de armazenamento na janela Explorer em Emulator & Attached Storage Accounts>.
Para localizar seu contêiner de armazenamento de blob, em Contas de armazenamento, expanda sua conta de armazenamento, que é attachmentstorageacct aqui, e expanda Contêineres de Blob onde você encontra o contêiner de anexos , por exemplo:
Depois, crie uma função do Azure que remove o HTML dos e-mails recebidos.
Criar função para remover HTML
Agora, utilize o fragmento de código fornecido nestes passos para criar uma função do Azure que remove o HTML de cada e-mail recebido. Desta forma, o conteúdo dos e-mails fica mais limpo e é processado mais facilmente. Em seguida, você pode chamar essa função a partir do seu fluxo de trabalho.
Antes de criar uma função, crie um aplicativo de função seguindo estas etapas:
Na guia Noções básicas, forneça as seguintes informações:
Property valor Description Subscrição <o-nome-da-sua-subscrição-do-Azure> A mesma subscrição do Azure que utilizou anteriormente Grupo de Recursos LA-Tutorial-RG O mesmo grupo de recursos do Azure que utilizou anteriormente Nome da Aplicação de Funções <nome-da-função-aplicativo> O nome do seu aplicativo de função, que deve ser globalmente exclusivo no Azure. Este exemplo já usa CleanTextFunctionApp, portanto, forneça um nome diferente, como MyCleanTextFunctionApp-your-name<> Deseja implantar código ou imagem de contêiner? Código Publique arquivos de código. Pilha de runtime <língua preferida> Selecione um tempo de execução que suporte sua linguagem de programação de função favorita. A edição no portal só está disponível para JavaScript, PowerShell, TypeScript e script C#. A biblioteca de classes C#, as funções Java e Python devem ser desenvolvidas localmente. Para funções C# e F#, selecione .NET. Versão <número-versão> Selecione a versão para o tempo de execução instalado. Região <Azure-region> A mesma região que você usou anteriormente. Este exemplo usa West US. Sistema operativo <seu sistema operacional> Um sistema operacional é pré-selecionado para você com base na sua seleção de pilha de tempo de execução, mas você pode selecionar o sistema operacional que suporta sua linguagem de programação de função favorita. A edição no portal só é suportada no Windows. Este exemplo seleciona Windows. Opções e planos de hospedagem Consumo (Sem servidor) Selecione o plano de hospedagem que define como os recursos são alocados ao seu aplicativo de função. No Plano de Consumo predefinido, os recursos são adicionados dinamicamente, conforme necessário por parte das suas funções. Nesta hospedagem sem servidor, você paga apenas pelo tempo em que suas funções são executadas. Quando executa num plano do Serviço de Aplicações, tem de gerir o dimensionamento da sua aplicação de funções. Selecione Next: Armazenamento. Na guia Armazenamento, forneça as seguintes informações:
Property valor Description Conta de armazenamento CleanTextFunctionStorageAcct Crie uma conta de armazenamento para ser utilizada pela sua aplicação de funções. Os nomes das contas de armazenamento devem ter entre 3 e 24 caracteres e podem conter apenas letras minúsculas e números.
Nota: Esta conta de armazenamento contém as suas aplicações funcionais e difere da sua conta de armazenamento criada anteriormente para anexos de e-mail. Você também pode usar uma conta existente, que deve atender aos requisitos da conta de armazenamento.Quando terminar, selecione Rever + criar. Confirme suas informações e selecione Criar.
Depois que o Azure criar e implantar o recurso do aplicativo de função, selecione Ir para recurso.
Agora, crie sua função localmente , pois a criação de funções no portal do Azure é limitada. Certifique-se de usar o modelo de gatilho HTTP, forneça as seguintes informações para sua função e use o código de exemplo incluído, que remove HTML e retorna os resultados para o chamador:
Property 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, você pode usar a seguinte entrada de exemplo:
{"name": "<p><p>Testing my function</br></p></p>"}
A saída da sua função é semelhante ao seguinte resultado:
{"updatedBody":"{\"name\": \"Testing my function\"}"}
Depois de confirmar que sua função funciona, crie o recurso e o fluxo de trabalho do aplicativo lógico. Embora este tutorial mostre como criar uma função que remove HTML de emails, os Aplicativos Lógicos do Azure também fornecem um conector HTML para Texto .
Crie seu fluxo de trabalho de aplicativo lógico
Na caixa de pesquisa de nível superior 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 Plano, selecione Consumo como o tipo de plano, que mostra apenas as opções para fluxos de trabalho do aplicativo lógico de consumo. Forneça as seguintes informações e selecione Rever + criar.
Property valor Description Subscrição <o-nome-da-sua-subscrição-do-Azure> A mesma subscrição do Azure que utilizou anteriormente Grupo de Recursos LA-Tutorial-RG O mesmo grupo de recursos do Azure que utilizou anteriormente Nome da Aplicação Lógica LA-ProcessAttachment O nome do seu aplicativo lógico e fluxo de trabalho. Um aplicativo de lógica de consumo e um fluxo de trabalho sempre têm o mesmo nome. Região E.U.A. Oeste A mesma região que utilizou anteriormente Habilite a análise de log Não Neste tutorial, mantenha a definição Desativado. Confirme as informações fornecidas e selecione Criar. Depois que o Azure implantar seu aplicativo, selecione Ir para 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 os e-mails recebidos
Agora, adicione um gatilho que verifica se há e-mails recebidos com anexos. Todo fluxo de trabalho deve começar com um gatilho, que é acionado quando a condição de gatilho é atendida, por exemplo, um evento específico acontece ou quando novos dados existem. Para obter mais informações, consulte Guia de início rápido: criar um exemplo de fluxo de trabalho de aplicativo lógico de consumo em aplicativos lógicos do Azure multilocatário.
Este exemplo usa o conector do Office 365 Outlook, que requer que você entre com uma conta corporativa ou de estudante da Microsoft. Se estiver a utilizar uma conta Microsoft pessoal, utilize o conector Outlook.com.
No designer de fluxo de trabalho, selecione Adicionar um gatilho.
Depois que o painel Adicionar um gatilho for aberto, na caixa de pesquisa, digite office 365 outlook. Na lista de resultados do gatilho, em Office 365 Outlook, selecione Quando chegar um novo email (V3).
Se lhe forem solicitadas credenciais, inicie sessão na sua conta de e-mail, o que cria uma ligação entre o seu fluxo de trabalho e a sua conta de e-mail.
Agora forneça os critérios de gatilho para verificar novos e-mails e executar seu fluxo de trabalho.
Property valor Description Importância Qualquer Especifica o nível de importância do email desejado. Apenas com Anexos Sim Obter apenas os e-mails com anexos.
Nota: o acionador não remove e-mails da sua conta; verifica apenas as mensagens novas e só processa os e-mails que correspondam ao filtro do assunto.Incluir Anexos Sim Obter os anexos como entrada para o seu fluxo de trabalho em vez de verificar apenas os anexos. Pasta Caixa de entrada A pasta de e-mail a verificar Na lista Parâmetros avançados, selecione Filtro de assunto.
Depois que a caixa Filtro de assunto aparecer na ação, especifique o assunto conforme descrito aqui:
Property valor Description Filtro de Assunto Analista de Negócios 2 #423501 O texto a localizar no assunto do e-mail Salve seu fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.
Seu fluxo de trabalho do aplicativo lógico agora está ativo, mas não faz nada além de verificar seus e-mails. Em seguida, adicione uma condição que especifique critérios para continuar as ações subsequentes no fluxo de trabalho.
Verificar a existência de anexos
Agora, adicione uma condição que seleciona apenas os e-mails que têm 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 a 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 Informações da condição , substitua o nome padrão da condição pela seguinte descrição: Se o e-mail tiver anexos e frase de assunto chave
Criar uma condição que verifica se os e-mails têm anexos.
Na primeira linha da lista de operações E, selecione dentro da caixa mais à esquerda. Na lista de conteúdo dinâmico que aparece, selecione a propriedade Tem anexo.
Na caixa do meio, mantenha o operador é igual a.
Na caixa mais à direita, digite true, que é o valor a ser comparado com o valor da propriedade Tem Anexo que é saída do gatilho. Se ambos os valores forem iguais, o e-mail tem, pelo menos, um anexo, a condição é transmitida e o fluxo de trabalho continua.
Na definição de fluxo de trabalho subjacente, que você pode mostrar selecionando Visualização de código no designer, a condição é semelhante ao exemplo a seguir:
"Condition": { "actions": { <actions-to-run-when-condition-passes> }, "expression": { "and": [ { "equals": [ "@triggerBody()?['HasAttachment']", "true" ] } ] }, "runAfter": {}, "type": "If" }
Salve seu fluxo de trabalho.
Testar a condição
Na barra de ferramentas do designer, selecione Executar execução de gatilho>.
Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontecerá até que o e-mail de teste chegue à sua caixa de entrada.
Envie a si mesmo um e-mail que atenda aos seguintes critérios:
O assunto do e-mail tem o texto que especificou no filtro de assunto do acionador,
Business Analyst 2 #423501
O e-mail tem um anexo. Por agora, crie apenas um ficheiro de texto vazia e anexe-o ao e-mail.
Quando o e-mail chega, seu fluxo de trabalho verifica se há anexos e o texto do assunto especificado. Se a condição passar, o gatilho será acionado e fará com que os Aplicativos Lógicos do Azure instanciem e executem uma instância de fluxo de trabalho.
Para verificar se o gatilho disparou e o fluxo de trabalho foi executado com êxito, no menu do aplicativo lógico, selecione Visão geral.
Para visualizar os gatilhos disparados com êxito, selecione Histórico de disparos.
Para exibir fluxos de trabalho executados com êxito, selecione Histórico de execuções.
Se o gatilho não disparou ou o fluxo de trabalho não foi executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.
Em seguida, defina as ações a serem executadas para a ramificação True . Para guardar o e-mail juntamente com eventuais anexos, remova todo o HTML do corpo do e-mail e crie blobs no contentor de armazenamento para a mensagem e os anexos.
Nota
Seu fluxo de trabalho pode deixar a ramificação Falso vazia e não executar nenhuma ação quando um email não tiver anexos. Como um exercício de bônus depois de terminar este tutorial, você pode adicionar qualquer ação apropriada que você deseja tomar para a ramificação Falso .
Chamar RemoveHTMLFunction
Esta etapa adiciona sua função do Azure criada anteriormente ao seu fluxo de trabalho e passa o conteúdo do corpo do email do gatilho de email para sua função.
No menu do aplicativo lógico, selecione Designer do aplicativo lógico. Na ramificação True, selecione Adicionar uma ação.
Na caixa Escolha uma pesquisa de operação, selecione Incorporado. Na caixa de pesquisa, insira azure functions e selecione a ação chamada Choose an Azure function.
Selecione seu aplicativo de função criado anteriormente, que é CleanTextFunctionApp neste exemplo:
Agora selecione sua função, que é chamada RemoveHTMLFunction neste exemplo.
Renomeie sua forma de função com a seguinte descrição: Chame RemoveHTMLFunction para limpar o corpo do e-mail
Agora, especifique a entrada para a função processar.
Em Corpo do Pedido, introduza este texto com um espaço à esquerda:
{ "emailBody":
Enquanto trabalha nesta entrada nos passos seguintes, obterá um erro relativo a JSON inválido até que a sua entrada esteja corretamente formatada como JSON. Quando testou esta função anteriormente, a entrada especificada para a mesma utilizou JavaScript Object Notation (JSON). Por isso, o corpo do pedido também tem de utilizar o mesmo formato.
Além disso, quando o cursor está dentro da caixa Corpo do pedido, é apresentada uma lista de conteúdo dinâmico para que possa selecionar os valores das propriedades disponíveis de ações anteriores.
Na lista de conteúdo dinâmico, em Quando é recebido um novo e-mail, selecione a propriedade Corpo. Após esta propriedade, lembre-se de adicionar a chave de fechamento (}).
Quando terminar, a entrada para sua função se parece com o exemplo a seguir:
Salve seu fluxo de trabalho.
Em seguida, adicione uma ação que cria um blob no contentor de armazenamento para que possa guardar o corpo do e-mail.
Criar blob para o corpo do e-mail
No designer, no bloco Verdadeiro , em sua função do Azure, selecione Adicionar uma ação.
Na caixa de pesquisa Escolha uma operação, selecione Todos. Na caixa de pesquisa, digite create blob e selecione a ação chamada Create blob.
Forneça as informações de conexão para sua conta de armazenamento e selecione Criar, por exemplo:
Property valor Description Nome da ligação AttachmentStorageConnection Um nome descritivo para a ligação Tipo de autenticação Chave de Acesso O tipo de autenticação a ser usado para a conexão Nome da conta de Armazenamento do Azure ou ponto de extremidade <nome da conta de armazenamento> O nome da sua conta de armazenamento criada anteriormente, que é attachmentstorageacct para este exemplo Chave de Acesso da Conta de Armazenamento do Azure <chave de acesso à conta de armazenamento> A chave de acesso para a 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:
Property valor Description Nome da conta de armazenamento ou ponto de extremidade de blob Usar configurações de conexão (<nome> da conta de armazenamento) Selecione sua conta de armazenamento, que é attachmentstorageacct para este exemplo. Folder path <path-and-container-name> O caminho e o nome do contentor que criou anteriormente. Para este exemplo, selecione o ícone de pasta e, em seguida, selecione o contêiner de anexos . Blob name <nome-do-remetente> Neste exemplo, utilize o nome do remetente como o nome do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione o campo De. Blob content <conteúdo para blob> Neste exemplo, utilize o corpo do e-mail sem HTML como o conteúdo do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Call RemoveHTMLFunction to clean email body , selecione Body. A imagem a seguir mostra os campos a serem selecionados para a ação Criar blob :
Quando terminar, a ação será semelhante ao exemplo a seguir:
Salve seu fluxo de trabalho.
Verificar o processamento de anexos
Na barra de ferramentas do designer, selecione Executar execução de gatilho>.
Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontecerá até que o e-mail de teste chegue à sua caixa de entrada.
Envie a si mesmo um e-mail que atenda aos seguintes critérios:
O assunto do e-mail tem o texto que especificou no filtro de assunto do acionador,
Business Analyst 2 #423501
O e-mail tem, pelo menos, um anexo. Por enquanto, basta criar um arquivo de texto vazio e anexar esse arquivo ao seu e-mail.
Seu e-mail tem algum conteúdo de teste no corpo, por exemplo:
Testing my logic app workflow
Se o fluxo de trabalho não foi acionado ou executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.
Verifique se o fluxo de trabalho salvou o e-mail no contêiner de armazenamento correto.
No Gerenciador de Armazenamento, expanda Emulator & Attached>Storage Accounts>attachmentstorageacct (Key)>Blob Containers>attachments.
Verifique o contentor attachments relativamente ao e-mail.
Neste ponto, apenas o e-mail aparece no contêiner porque o fluxo de trabalho ainda não processou os anexos.
Quando tiver terminado, elimine o e-mail no Explorador de Armazenamento.
Opcionalmente, para testar a ramificação False , que não faz nada neste momento, você pode enviar um e-mail que não atenda aos critérios.
Em seguida, adicione um Para cada loop para processar todos os anexos de e-mail.
Processar anexos
Para processar cada anexo no e-mail, adicione um Para cada loop ao seu fluxo de trabalho.
Volte ao designer. Na ação Criar blob para corpo de email, selecione Adicionar uma ação.
Na caixa Escolha uma pesquisa de operação, selecione Incorporado. Na caixa de pesquisa, digite para cada um e selecione a ação chamada Para cada um.
Renomeie seu loop com a seguinte descrição: Para cada anexo de e-mail
Agora selecione os dados para o loop processar. No loop Para cada anexo de email, selecione dentro da caixa Selecionar uma saída das etapas anteriores para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione Anexos.
O campo Anexos transmite uma matriz que contém todos os anexos incluídos num e-mail. O ciclo For each repete as ações em cada item que é transmitido com a matriz.
Salve seu fluxo de trabalho.
Em seguida, adicione a ação que guarda cada anexo como um blob no seu contentor de armazenamento attachments.
Criar blob para cada anexo
No designer, no loop Para cada anexo de email , selecione Adicionar uma ação para especificar a tarefa a ser executada em cada anexo encontrado.
Na caixa de pesquisa Escolha uma operação, selecione Todos. Na caixa de pesquisa, digite create blob e selecione a ação chamada Create blob.
Renomeie a ação Criar blob 2 com a seguinte descrição: Criar blob para cada anexo de email
Na ação Criar blob para cada anexo de email, forneça as seguintes informações:
Property valor Description Nome da conta de armazenamento ou ponto de extremidade de blob Usar configurações de conexão (<nome> da conta de armazenamento) Selecione sua conta de armazenamento, que é attachmentstorageacct para este exemplo. Folder path <path-and-container-name> O caminho e o nome do contentor que criou anteriormente. Para este exemplo, selecione o ícone de pasta e, em seguida, selecione o contêiner de anexos . Blob name <nome-anexo> Neste exemplo, utilize o nome do anexo como o nome do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione o campo Nome. Blob content <conteúdo de e-mail> Para este exemplo, use o conteúdo de e-mail como o conteúdo de blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione Conteúdo. Quando terminar, a ação será semelhante ao exemplo a seguir:
Salve seu fluxo de trabalho.
Verificar o processamento de anexos
Na barra de ferramentas do designer, selecione Executar execução de gatilho>.
Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontecerá até que o e-mail de teste chegue à sua caixa de entrada.
Envie a si mesmo um e-mail que atenda aos seguintes critérios:
O assunto do seu e-mail tem o texto especificado na propriedade de filtro Assunto do gatilho:
Business Analyst 2 #423501
O seu e-mail tem, pelo menos, dois anexos. Por agora, crie apenas dois ficheiros de texto vazios e anexe-os ao e-mail.
Se o fluxo de trabalho não foi acionado ou executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.
Verifique se o fluxo de trabalho salvou o e-mail e os anexos no contêiner de armazenamento correto.
No Gerenciador de Armazenamento, expanda Emulator & Attached>Storage Accounts>attachmentstorageacct (Key)>Blob Containers>attachments.
Verifique o contentor attachments relativamente ao e-mail e aos anexos.
Quando tiver terminado, elimine o e-mail e os anexos no Explorador de Armazenamento.
Em seguida, adicione uma ação para que seu fluxo de trabalho envie e-mails para revisar os anexos.
Enviar notificações por e-mail
Volte ao designer. Na ramificação True, feche o loop Para cada anexo de email.
No loop, selecione Adicionar uma ação.
Na caixa de pesquisa Escolha uma operação, selecione Padrão. Na caixa de pesquisa, digite enviar e-mail.
Na lista de ações, selecione a ação de envio de e-mail para seu provedor de e-mail. Para filtrar a lista de ações com base em um conector específico, você pode selecionar o conector primeiro.
Este exemplo continua com o conector do Outlook do Office 365, que funciona apenas com uma conta corporativa ou de estudante do Azure. Em contas Microsoft pessoais, selecione o conector Outlook.com.
Se lhe forem solicitadas credenciais, inicie sessão na sua conta de e-mail para que as Aplicações Lógicas do Azure criem uma ligação à sua conta de e-mail.
Renomeie a ação Enviar um e-mail com a seguinte descrição: Enviar e-mail para revisão
Forneça as seguintes informações de ação e selecione os campos a serem incluídos no e-mail.
- Para adicionar linhas em branco a uma caixa de edição, prima Shift + Enter.
- Se não conseguir encontrar um campo esperado na lista de conteúdo dinâmico, selecione Ver mais junto a Quando chega um novo e-mail.
Property valor Description De <recipient-email-address> Para fins de teste, pode utilizar o seu próprio endereço de e-mail. Assunto ASAP - Review applicant for position:
AssuntoO assunto do e-mail que pretende incluir. Clique no interior desta caixa, introduza o texto de exemplo e, na lista de conteúdo dinâmico, selecione o campo Assunto em Quando é recebido um novo e-mail. Corpo Please review new applicant:
Applicant name:
DeApplication file location:
CaminhoApplication email content:
CorpoO conteúdo do corpo do e-mail. Clique dentro desta caixa, insira o texto de exemplo e, na lista de conteúdo dinâmico, selecione estes campos: - O campo De em Quando um novo e-mail chega-
O campo Caminho em Criar blob para o corpo
do e-mail- O campo Corpo em Chamar RemoveHTMLFunction para limpar o corpo do e-mailNota
Se você selecionar um campo que contenha uma matriz, como o campo Conteúdo , que é uma matriz que contém anexos, o designer adicionará automaticamente um Para cada loop 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 de 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 seu fluxo de trabalho, que agora se parece com o exemplo a seguir:
Executar o fluxo de trabalho
Envie um e-mail para si próprio que cumpra estes critérios:
O assunto do seu e-mail tem o texto especificado na propriedade de filtro Assunto do gatilho:
Business Analyst 2 #423501
O seu e-mail tem um ou mais anexos. Pode reutilizar um ficheiro de texto vazio do teste anterior. Para um cenário realista, anexe um ficheiro de currículo.
O corpo do e-mail tem este texto, que pode copiar e colar:
Name: Jamal Hartnett Street address: 12345 Anywhere Road City: Any Town State or Country: Any State Postal code: 00000 Email address: jamhartnett@outlook.com Phone number: 000-000-0000 Position: Business Analyst 2 #423501 Technical skills: Dynamics CRM, MySQL, Microsoft SQL Server, JavaScript, Perl, Power BI, Tableau, Microsoft Office: Excel, Visio, Word, PowerPoint, SharePoint, and Outlook Professional skills: Data, process, workflow, statistics, risk analysis, modeling; technical writing, expert communicator and presenter, logical and analytical thinker, team builder, mediator, negotiator, self-starter, self-managing Certifications: Six Sigma Green Belt, Lean Project Management Language skills: English, Mandarin, Spanish Education: Master of Business Administration
Execute seu fluxo de trabalho. Se for bem-sucedido, seu fluxo de trabalho enviará um e-mail semelhante ao exemplo a seguir:
Se não receber nenhuma mensagem de e-mail, verifique a pasta de lixo do e-mail. O filtro de lixo de e-mail poderá redirecionar estes tipos de mensagem de e-mail. Caso contrário, se você não tiver certeza de que seu fluxo de trabalho foi executado corretamente, consulte Solucionar problemas de fluxo de trabalho do aplicativo lógico.
Parabéns, agora você criou e executa um fluxo de trabalho que automatiza tarefas em diferentes serviços do Azure e chama algum código personalizado.
Clean up resources (Limpar recursos)
Quando não precisar mais desse 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 aparecer, insira o nome do grupo de recursos e selecione Excluir.
Próximos passos
Neste tutorial, você criou um fluxo de trabalho de aplicativo lógico que processa e armazena anexos de email integrando serviços do Azure, como o Armazenamento do Azure e o Azure Functions. Agora, saiba mais sobre outros conectores que você pode usar para criar fluxos de trabalho de aplicativos lógicos.