Tutorial: Creación de flujos de trabajo para procesar correos electrónicos mediante Azure Logic Apps, Azure Functions y Azure Storage
Se aplica a: Azure Logic Apps (consumo)
En este tutorial se muestra cómo crear un flujo de trabajo de ejemplo que integra Azure Functions y Azure Storage mediante Azure Logic Apps. En este ejemplo se crea específicamente un flujo de trabajo de aplicación lógica de consumo que administra los correos electrónicos entrantes y los datos adjuntos, analiza el contenido del correo electrónico mediante Azure Functions, lo guarda en Azure Storage y envía un correo electrónico para revisarlo.
Cuando termine, su flujo de trabajo tendrá una apariencia similar a la del siguiente ejemplo de nivel superior:
Sugerencia
Para más información, puede hacerle estas preguntas a Azure Copilot:
- ¿Qué es Azure Logic Apps?
- ¿Qué es Azure Functions?
- ¿Qué es Azure Storage?
- ¿Qué es un flujo de trabajo de aplicación lógica de consumo?
Para buscar Azure Copilot, en la barra de herramientas de Azure Portal, seleccione Copilot.
Puede crear un flujo de trabajo similar con un recurso de aplicación lógica estándar en el que algunas operaciones del conector, como Azure Blob Storage, también están disponibles como operaciones integradas basadas en el proveedor de servicios. Sin embargo, la experiencia del usuario y los pasos del tutorial varían ligeramente de la versión de consumo.
Una cuenta y una suscripción de Azure. Si aún no tiene una, regístrese para obtener una cuenta de Azure gratuita.
Una cuenta de correo electrónico con un proveedor de correo electrónico compatible con Azure Logic Apps, como Office 365 Outlook, Outlook.com o Gmail. Para conocer otros proveedores de correo electrónico admitidos, consulte Conectores de Azure Logic Apps.
En este ejemplo se usa Office 365 Outlook con una cuenta profesional o educativa. Si utiliza una cuenta de correo electrónico diferente, los pasos generales siguen siendo los mismos, pero la experiencia del usuario podría ser ligeramente distinta. Si usa Outlook.com, utilice su cuenta personal de Microsoft en su lugar para iniciar sesión.
Nota
Si quiere usar el conector de Gmail, solo las cuentas empresariales de G-Suite pueden usarlo sin restricciones en los flujos de trabajo de aplicaciones lógicas. Si tiene una cuenta de consumidor de Gmail, puede usar este conector solo con servicios específicos aprobados por Google, o puede crear una aplicación cliente de Google para usarla en la autenticación con el conector de Gmail. Para más información, consulte Directivas de privacidad y seguridad de datos de los conectores de Google en Azure Logic Apps.
Descargue e instale el Explorador de Microsoft Azure Storage, una herramienta que es gratuita. Esta herramienta le ayuda a comprobar que el contenedor de almacenamiento esté configurado correctamente.
Cuando el flujo de trabajo necesita comunicarse a través de un firewall que limite el tráfico a direcciones IP específicas, ese firewall deberá permitir el acceso a ambas direcciones IP, la de entrada y la de salida, que usadas por el servicio Azure Logic Apps en la región de Azure donde exista el recurso de aplicación lógica. Si el flujo de trabajo también usa conectores administrados, como el conector de Outlook de Office 365 o el conector de SQL, o emplea conectores personalizados, el firewall también debe permitir el acceso a todas las direcciones IP de salida del conector administrado en la región de Azure de la aplicación lógica.
Los siguientes pasos configuran Azure Storage para que pueda almacenar los correos electrónicos entrantes y los datos adjuntos como blobs.
En Azure Portal, inicie sesión con las credenciales de su cuenta de Azure.
Siga estos pasos para crear una cuenta de almacenamiento a menos que ya tenga una.
En la pestaña Básico, especifique la siguiente información:
Propiedad Necesario Valor Descripción Suscripción Sí <Azure-subscription-name> El nombre de la suscripción de Azure.
En este ejemplo se usa pago por uso.Grupos de recursos Sí <Azure-resource-group> El nombre del grupo de recursos de Azure usado para organizar y administrar los recursos relacionados.
Nota: Un grupo de recursos existe dentro de una región específica. Aunque es posible que los elementos de este tutorial no estén disponibles en todas las regiones, intente usar la misma región siempre que sea posible.
En este ejemplo se usa LA-Tutorial-RG.Nombre de cuenta de almacenamiento Sí <Azure-storage-account-name> El nombre de la cuenta de almacenamiento único, que tiene que tener entre 3 y 24 caracteres, y solo puede contener letras minúsculas y números.
En este ejemplo se usa attachmentstorageacct.Región Sí <Azure-region> Región de datos de Azure para la cuenta de almacenamiento.
En este ejemplo se usa West US.Servicio principal No <Azure-storage-service> Tipo de almacenamiento principal que se va a usar en la cuenta de almacenamiento. Consulte Revisión de las opciones para almacenar datos en Azure. Rendimiento Sí - Estándar
- PremiumEsta configuración especifica los tipos de datos admitidos y los medios para almacenar los datos. Consulte Introducción a las cuentas de almacenamiento.
En este ejemplo se usa Estándar.Redundancia Sí - Almacenamiento con redundancia local
- Almacenamiento con redundancia geográfica (GRS)Esta configuración permite almacenar varias copias de los datos como protección frente a eventos planeados y no planeados. Para más información, vea Redundancia de Azure Storage.
En este ejemplo se usa el almacenamiento con redundancia geográfica (GRS).Para crear una cuenta de almacenamiento también puede usar Azure PowerShell o la CLI de Azure.
Seleccione Revisar y crear cuando esté preparado. Una vez que Azure valide la información sobre el recurso de la cuenta de almacenamiento, seleccione Crear.
Una vez que Azure implemente la cuenta de almacenamiento, seleccione Ir al recurso. O bien, busque y seleccione la cuenta de almacenamiento mediante el cuadro de búsqueda de Azure.
Para obtener la clave de acceso de la cuenta de almacenamiento, siga estos pasos:
En el menú de la cuenta de almacenamiento, en Seguridad y redes, seleccione Claves de acceso.
Copie el nombre de la cuenta de almacenamiento y key1. Guarde estos valores en algún lugar seguro para usarlos más adelante.
Para obtener la clave de acceso de su cuenta de almacenamiento, también puede usar Azure PowerShell o la CLI de Azure.
Cree un contenedor de almacenamiento de blobs para los datos adjuntos de correo electrónico.
En el menú de la cuenta de almacenamiento, en Almacenamiento de datos, seleccione Contenedores.
En la barra de herramientas de la página Contenedores, seleccione Contenedor.
En el panel Nuevo contenedor, proporcione la siguiente información:
Propiedad Valor Descripción Nombre attachments El nombre del contenedor. Nivel de acceso anónimo Contenedor (acceso de lectura anónimo para contenedores y blobs) Seleccione Crear.
Después de finalizar, la lista de contenedores mostrará el nuevo contenedor de almacenamiento.
Para crear un contenedor de almacenamiento, también puede usar Azure PowerShell o la CLI de Azure.
A continuación, conecte el Explorador de Storage a la cuenta de almacenamiento.
Los siguientes pasos conectan el Explorador de Azure Storage a la cuenta de almacenamiento para que pueda confirmar que el flujo de trabajo guarda correctamente los datos adjuntos como blobs en el contenedor de almacenamiento.
Inicie Explorador de Microsoft Azure Storage. Inicie sesión con su cuenta de Azure.
Nota
Si no aparece ningún mensaje, en la barra de actividad del Explorador de Azure Storage, seleccione Administración de cuentas (icono de perfil).
En la ventana Seleccionar entorno de Azure, seleccione el entorno de Azure y, luego, elija Siguiente.
En este ejemplo, se sigue seleccionando Azure global y multiinquilino.
En la ventana del explorador que aparece, inicie sesión con su cuenta de Azure.
Vuelva al Explorador de Storage y a la ventana Administración de cuentas. Confirme que se han seleccionado el inquilino y la suscripción correctos de Microsoft Entra.
En la barra de actividades del Explorador de Azure Storage, seleccione Abrir cuadro de diálogo Conectar.
En la ventana Seleccionar recurso, elija Cuenta de almacenamiento o servicio.
En la ventana Seleccionar método de conexión, elija Nombre de cuenta y clave>Siguiente.
En la ventana Conectar a Azure Storage, proporcione la siguiente información:
Propiedad Value Nombre para mostrar Nombre descriptivo de la conexión. Nombre de cuenta El nombre de la cuenta de almacenamiento Clave de cuenta La clave de acceso que guardó anteriormente. Para Dominio de Storage, confirme que Azure (core.windows.net) está seleccionado y seleccione Siguiente.
En la ventana Resumen, confirme la información de la conexión y seleccione Conectar.
El Explorador de Storage crea la conexión. La cuenta de almacenamiento aparece en la ventana del Explorador en las cuentas de almacenamiento>Emulador y datos adjuntos.
Para buscar el contenedor de Blob Storage, en Cuentas de almacenamiento, expanda la cuenta de almacenamiento, que es attachmentstorageacct para este ejemplo. En Contenedores de Blob donde se encuentra el contenedor de datos adjuntos, por ejemplo:
A continuación, cree una aplicación de funciones de Azure y una función que quite el HTML del contenido.
En los siguientes pasos se crea una función de Azure que llama al flujo de trabajo para quitar el HTML del correo electrónico entrante.
Para poder crear una función, cree una aplicación de funciones seleccionando el plan de Consumo y siguiendo estos pasos:
En la pestaña Básico, especifique la siguiente información:
Propiedad Necesario Valor Descripción Suscripción Sí <Azure-subscription-name> La misma suscripción de Azure que usó anteriormente para la cuenta de almacenamiento. Grupo de recursos Sí <nombre del grupo de recursos de Azure> El mismo grupo de recursos de Azure que usó anteriormente para la cuenta de almacenamiento.
En este ejemplo seleccione LA-Tutorial-RG.Nombre de la aplicación de función Sí <function-app-name> El nombre de la aplicación de funciones, que debe ser único entre regiones de Azure y solo puede contener letras (sin distinción entre mayúsculas y minúsculas), números (0-9) y guiones (-).
En este ejemplo ya se usa CleanTextFunctionApp, por lo que debe proporcionar un nombre diferente, como MyCleanTextFunctionApp-<su-nombre>.Pila en tiempo de ejecución Sí <programming-language> El tiempo de ejecución para el lenguaje de programación de funciones preferido. Para las funciones de C# y F#, seleccione .NET.
En este ejemplo se usa .NET.
La edición en el portal solo está disponible para los siguientes lenguajes:
- JavaScript
- PowerShell
- TypeScript
- Script de C#
Debe desarrollar localmente cualquier biblioteca de clases de C#, Java y Python.Versión Sí <version-number> Seleccione la versión del entorno de ejecución instalado. Región Sí <Azure-region> La misma región que usó anteriormente.
En este ejemplo se usa West US.Sistema operativo Sí <su-sistema-operativo> Un sistema operativo se preselecciona según la selección de la pila en tiempo de ejecución, pero puede seleccionar el sistema operativo que admita su lenguaje de programación de funciones favorito. La edición en el portal solo se admite en Windows.
En este ejemplo se selecciona Windows.Seleccione Siguiente: Storage (Almacenamiento). En la pestaña Almacenamiento, especifique la siguiente información:
Propiedad Necesario Valor Descripción Cuenta de almacenamiento Sí <Azure-storage-account-name> Cree una cuenta de almacenamiento para que la aplicación de funciones la use. Los nombres de las cuentas de almacenamiento deben tener entre 3 y 24 caracteres y solo pueden incluir números y letras en minúscula.
En este ejemplo se usa cleantextfunctionstorageacct.
Nota: Esta cuenta de almacenamiento contiene las aplicaciones de función y se diferencia de la cuenta de almacenamiento creada anteriormente para los datos adjuntos de correo electrónico. También puede usar una cuenta existente que debe cumplir los requisitos de la cuenta de almacenamiento.Cuando finalice, seleccione Revisar y crear. Una vez que Azure valide la información proporcionada, seleccione Crear.
Después de que Azure implemente el recurso de aplicación de funciones, seleccione Ir al recurso.
Los siguientes pasos crean una función de Azure que quita el código HTML de cada correo electrónico entrante. Esta función hace que el contenido del correo electrónico sea más limpio y fácil de procesar. Puede llamar a esta función desde el flujo de trabajo.
Para más información, consulte Creación de su primera función en Azure Portal. Para la creación de funciones expandidas, también puede crear la función localmente.
En Azure Portal, abra la aplicación de funciones, si aún no está abierta.
Para ejecutar la función más adelante en Azure Portal, configure la aplicación de funciones para aceptar explícitamente solicitudes desde el portal. En el menú de la aplicación de funciones, en API, seleccione CORS. En Orígenes permitidos, escriba
https://portal.azure.com
y seleccione Guardar.En el menú de la aplicación de funciones, seleccione Información general. En la pestaña Funciones, seleccione Crear.
En el panel Crear función, seleccione Desencadenador HTTP: C#>Siguiente.
Nota
Si no ve la versión de C#
Proporcione la siguiente información para la función y seleccione Crear:
Parámetro Valor Nombre de la función RemoveHTMLFunction Nivel de autorización Función En la pestaña Código y prueba, escriba el siguiente código de ejemplo, que quita el HTML y devuelve los resultados al autor de la llamada.
#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}); }
Cuando termine, en la barra de herramientas Código y prueba, seleccione Guardary, a continuación, seleccione Prueba y ejecución.
En el panel Prueba y ejecución, en la pestaña Entrada, en el cuadro Cuerpo, escriba la siguiente entrada de ejemplo y seleccione Ejecutar:
{"name": "<p><p>Testing my function</br></p></p>"}
La salida de la función tiene el siguiente aspecto:
{"updatedBody": "{\"name\": \"Testing my function\"}"}
Después de confirmar el funcionamiento de la función, cree el recurso y el flujo de trabajo de la aplicación lógica. Aunque en este tutorial se muestra cómo crear una función que elimina el código HTML de los mensajes de correo electrónico, Azure Logic Apps también proporciona un conector de HTML a texto.
En el cuadro de búsqueda de Azure Portal, escriba aplicación lógicay seleccione Aplicaciones lógicas.
En la barra de herramientas de la página Aplicaciones lógicas, seleccione Agregar.
Aparecerá la página Crear aplicación lógica y se mostrarán las siguientes opciones:
Planear Descripción Consumo Crea un recurso de aplicación lógica que solo admite un flujo de trabajo que se ejecuta en Azure Logic Apps multiinquilino y usa el Modelo de facturación de consumo. Estándar Crea un recurso de aplicación lógica que admite varios flujos de trabajo. Tiene las siguientes opciones:
- Plan de servicio de flujo de trabajo: estos flujos de trabajo se ejecutan en Azure Logic Apps de inquilino único y usan el Modelo de facturación estándar.
- App Service Environment V3: los flujos de trabajo se ejecutan en Azure Logic Apps de un solo inquilino y usan un plan de facturación de App Service Environment.
- Híbrido (versión preliminar): los flujos de trabajo se ejecutan de forma local y en varias nubes mediante el escalado automático controlado por eventos de Kubernetes (KEDA). Para más información, consulte Creación de flujos de trabajo estándar para la implementación híbrida.En la página Crear aplicación lógica, seleccione Consumo (multiinquilino).
En la pestaña Datos básicos, proporcione la siguiente información sobre el recurso de su aplicación lógica:
Parámetro Obligatorio Valor Descripción Suscripción Sí <Azure-subscription-name> La misma suscripción de Azure que usó anteriormente. Grupo de recursos Sí LA-Tutorial-RG El mismo grupo de recursos de Azure que usó anteriormente. Nombre de la aplicación lógica Sí <nombre-de-la-aplicación-lógica> El nombre del recurso de la aplicación lógica, que debe ser exclusivo entre las regiones y solo puede contener letras, números, guiones (-), caracteres de subrayado (_), paréntesis (()) y puntos (.).
En este ejemplo se crea un recurso de aplicación lógica denominado LA-ProcessAttachment. Una aplicación lógica y un flujo de trabajo de Consumo siempre tienen el mismo nombre.Región Sí Oeste de EE. UU. La misma región que usó anteriormente. Habilitación de análisis de registros Sí No Cambie esta opción solo cuando desee habilitar el registro de diagnóstico. En este tutorial, conserve la selección predeterminada.
Nota: esta opción solo está disponible con aplicaciones lógicas de consumo.Nota
Las zonas de disponibilidad se habilitan automáticamente para flujos de trabajo nuevos y existentes de la aplicación lógica Consumo en regiones de Azure que admitan las zonas de disponibilidad. Para obtener más información, consulte Confiabilidad en Azure Functions y Protección de aplicaciones lógicas frente a errores de región con redundancia de zona y zonas de disponibilidad.
Seleccione Revisar y crear cuando esté preparado. Una vez que Azure valide la información sobre el recurso de su aplicación lógica, seleccione Crear.
Una vez que Azure implemente el recurso de la aplicación lógica, seleccione Ir al recurso. O bien busque y seleccione el recurso aplicación lógica mediante el cuadro de búsqueda de Azure.
Los siguientes pasos agregan un desencadenador que espera los correos electrónicos entrantes que tienen archivos adjuntos.
En el menú de la aplicación lógica, en Herramientas de desarrollo, seleccione Diseñador de aplicaciones lógicas.
En el diseñador de flujos de trabajo, siga estos pasos generales para agregar el desencadenador de Outlook de Office 365 denominado Cuando llega un nuevo correo electrónico.
El conector de Office 365 Outlook requiere que inicie sesión con una cuenta profesional o educativa de Microsoft. Si usa una cuenta Microsoft personal, use el conector Outlook.com.
Inicie sesión en su cuenta de correo electrónico, lo que crea una conexión entre el flujo de trabajo y la cuenta de correo electrónico.
En el cuadro de información del desencadenador, en la lista Parámetros avanzados, agregue los siguientes parámetros, si no aparecen, y proporcione la siguiente información:
Parámetro Valor Descripción Importancia Cualquiera Especifica el nivel de importancia del correo electrónico que desea. Solo con datos adjuntos Sí Obtener solo los correos electrónicos con datos adjuntos.
Nota: El desencadenador no elimina los correos electrónicos de la cuenta, solo comprueba si existen nuevos mensajes y procesa únicamente los correos electrónicos que coinciden con el filtro del asunto.Include Attachments (Incluir datos adjuntos) Sí Obtener los datos adjuntos como entrada del flujo de trabajo, en lugar de solamente buscar datos adjuntos. Carpeta Bandeja de entrada La carpeta de correo electrónico para comprobar. Subject Filter (Filtro de asunto) Analista de negocios 2 #423501 Especifica el texto que se va a buscar en el asunto del correo electrónico. Cuando termine, el desencadenador será similar al siguiente ejemplo:
Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).
El flujo de trabajo está ahora activo, pero no hace otra cosa que comprobar los correos electrónicos. A continuación, agregue una condición que especifique criterios para continuar las acciones subsiguientes del flujo de trabajo.
Los siguientes pasos agregan una condición que selecciona solo los correos electrónicos que tienen datos adjuntos.
En el diseñador de flujos de trabajo, siga estos pasos generales para agregar la acción de Control denominada Condición.
En el panel de información de la acción Condición, cambie el nombre de la acción por Si el correo electrónico tiene datos adjuntos y frase de asunto clave.
Cree una condición que busque correos electrónicos que tienen datos adjuntos.
En la pestaña Parámetros, en la primera fila de la lista AND, seleccione dentro del cuadro izquierdo y, a continuación, seleccione la lista de contenido dinámico (icono de rayo). En esta lista, en la sección de desencadenador, seleccione la salida Tiene datos adjuntos.
Sugerencia
Si no ve la salida Tiene datos adjuntos, seleccione Ver más.
En el cuadro central, mantenga el operador denominado es igual a.
En el cuadro situado a la derecha, escriba true, que es el valor que se va a comparar con el valor de salida del desencadenador Tiene datos adjuntos. Si ambos valores son iguales, el correo electrónico tiene al menos un archivo adjunto, la condición pasa y el flujo de trabajo continúa.
En la definición de flujo de trabajo subyacente, que puede ver seleccionando vista Código en la barra de herramientas del diseñador, la condición es similar al siguiente ejemplo:
"Condition": { "actions": { <actions-to-run-when-condition-passes> }, "expression": { "and": [ { "equals": [ "@triggerBody()?['HasAttachment']", "true" ] } ] }, "runAfter": {}, "type": "If" }
Guarde el flujo de trabajo.
En la barra de herramientas del diseñador, seleccione Ejecutar>Ejecutar.
Este paso inicia y ejecuta manualmente el flujo de trabajo, pero no sucede nada hasta que se envía un correo electrónico de prueba a la bandeja de entrada.
Envíese un correo electrónico que cumpla este criterio:
El asunto del correo electrónico tiene el texto que especificó en la propiedad Filtro de asunto: Analista de negocios 2 #423501
El correo electrónico tiene un archivo adjunto. Por ahora, cree un archivo de texto vacío y asocie ese archivo a su correo electrónico.
Cuando llega el correo electrónico, el flujo de trabajo comprueba si hay datos adjuntos y el texto de asunto especificado. Si se pasa la condición, el desencadenador se activa y hace que Azure Logic Apps cree instancias y ejecute una instancia de flujo de trabajo.
Para comprobar que el desencadenador se activó y que el flujo de trabajo se ejecutó correctamente, en el menú de la aplicación lógica, elija Información general.
Para ver los flujos de trabajo ejecutados correctamente, seleccione Historial de ejecuciones.
Para ver los desencadenadores activados correctamente, seleccione Historial de desencadenadores.
Si el desencadenador no se activó o el flujo de trabajo no se ejecutó a pesar de que el desencadenador era correcto, consulte Solución de problemas del flujo de trabajo de aplicación lógica.
A continuación, defina las acciones que se realizarán para la rama True. Para guardar el correo electrónico junto con los datos adjuntos, elimine el código HTML del cuerpo del correo electrónico y, luego, cree blobs en el contenedor de almacenamiento para el correo electrónico y los datos adjuntos.
Nota
El flujo de trabajo puede dejar vacía la rama False y no realizar ninguna acción cuando un correo electrónico no tenga datos adjuntos. Como ejercicio adicional, cuando termine este tutorial, puede agregar una acción adecuada que quiera realizar con la rama False.
En los siguientes pasos se agrega la función de Azure creada anteriormente, que acepta el contenido del cuerpo del correo electrónico del desencadenador de correo electrónico como entrada.
En el menú de la aplicación lógica, en Herramientas de desarrollo, seleccione Diseñador de aplicaciones lógicas. En la rama True, seleccione Agregar una acción.
Seleccione la aplicación de funciones creada anteriormente, que en este ejemplo es CleanTextFunctionApp.
Seleccione la función, que se llama RemoveHTMLFunction en este ejemplo y, a continuación, seleccione Agregar acción.
En el panel de información de acciones de Azure Functions, cambie el nombre de la acción por Llamar a RemoveHTMLFunction.
Ahora, especifique la entrada de la función que se va a procesar.
En Cuerpo de la solicitud, escriba el siguiente texto con un espacio final:
{ "emailBody":
Mientras trabaja en esta entrada en los pasos siguientes, aparece un error que indica que el código de JSON no es válido, hasta que la entrada tiene el formato JSON correcto. Cuando anteriormente probó esta función, la entrada especificada para esta función usaba notación de objetos JavaScript (JSON). Por lo tanto, el cuerpo de la solicitud también debe usar el mismo formato.
Seleccione dentro del cuadro Cuerpo de la solicitud y, a continuación, seleccione la lista de contenido dinámico (icono de rayo) para que pueda seleccionar salidas de acciones anteriores.
En la lista de contenido dinámico, en Cuando llega un nuevo correo electrónico, seleccione la salida Cuerpo. Una vez que este valor se resuelve en el cuadro Cuerpo de la solicitud, recuerde agregar la llave de cierre (}).
Cuando termine, la función de Azure tendrá un aspecto similar al siguiente ejemplo:
Guarde el flujo de trabajo.
A continuación, agregue una acción que cree un blob para almacenar el cuerpo del correo electrónico.
En los siguientes pasos se crea un blob que almacena el cuerpo del correo electrónico en el contenedor de almacenamiento.
En el diseñador, en el bloque True de la condición, debajo de la función de Azure, seleccione Agregar una acción.
Siga estos pasos generales para agregar la acción de Azure Blob Storage denominada Crear blob.
Proporcione la información de conexión de la cuenta de almacenamiento, por ejemplo:
Parámetro Obligatorio Valor Descripción Nombre de la conexión Sí <connection-name> Un nombre descriptivo para la conexión.
En este ejemplo se usa AttachmentStorageConnection.Tipo de autenticación Sí <authentication-type> Tipo de autenticación que se va a usar para la conexión.
En este ejemplo se usa Clave de acceso.Nombre de la cuenta de Azure Storage o punto de conexión de blob Sí <storage-account-name> Nombre de la cuenta de almacenamiento creada anteriormente.
En este ejemplo se usa attachmentstorageacct.Clave de acceso de la cuenta de Azure Storage Sí <storage-account-access-key> Clave de acceso de la cuenta de almacenamiento creada anteriormente. Cuando termine, seleccione Crear nueva.
En el panel de información de acción Crear blob, cambie el nombre de la acción por Crear blob para el cuerpo del correo electrónico.
Proporcione la siguiente información de acción:
Sugerencia
Si no encuentra una salida especificada en la lista de contenido dinámico, seleccione Ver más junto al nombre de la operación.
Parámetro Obligatorio Valor Descripción Nombre de la cuenta de almacenamiento o punto de conexión de blob Sí Use la configuración de conexión(<storage-account-name-or-blob-endpoint>) Seleccione la opción que incluye el nombre de la cuenta de almacenamiento.
En este ejemplo se usahttps://attachmentstorageacct.blob.core.windows.net
.Ruta de acceso de la carpeta Sí <path-and-container-name> La ruta de acceso y el nombre del contenedor que creó anteriormente.
En este ejemplo, seleccione el icono de carpeta y, después, elija datos adjuntos.Nombre de blob Sí <sender-name> En este ejemplo, utilice el nombre del remitente como nombre del blob.
1. Seleccione dentro del cuadro nombre de blob y, a continuación, seleccione la opción de lista de contenido dinámico (icono de rayo).
2. En la sección Cuando llega un nuevo correo electrónico, seleccione Desde.Contenido del blob Sí <cleaned-email-body> Para este ejemplo, use el cuerpo del correo electrónico sin HTML como contenido del blob.
1. Seleccione dentro del cuadro Contenido de blob y, a continuación, seleccione la opción de lista de contenido dinámico (icono de rayo).
2. En la sección Llamar a RemoveHTMLFunction, seleccione Cuerpo.En el siguiente recorte de pantalla, se muestran las salidas que se van a seleccionar para la acción Crear blob para el cuerpo del correo electrónico :
Cuando termine, la acción tendrá un aspecto similar al siguiente ejemplo:
Guarde el flujo de trabajo.
En la barra de herramientas del diseñador, seleccione Ejecutar>Ejecutar.
Este paso inicia y ejecuta manualmente el flujo de trabajo, pero no sucede nada hasta que se envía un correo electrónico de prueba a la bandeja de entrada.
Envíese un correo electrónico que cumpla este criterio:
El asunto del correo electrónico tiene el texto que especificó en el parámetro Filtro de asunto: Analista de negocios 2 #423501
El correo electrónico tiene uno o varios datos adjuntos. Por ahora, cree un archivo de texto vacío y asocie ese archivo a su correo electrónico.
El correo electrónico tiene algún contenido de prueba en el cuerpo, por ejemplo, Prueba del flujo de trabajo de la aplicación lógica
Si el flujo de trabajo no se desencadenó o ejecutó a pesar de que el desencadenador era correcto, consulte Solución de problemas del flujo de trabajo de aplicación lógica.
Compruebe que el flujo de trabajo guardó el correo electrónico en el contenedor de almacenamiento correcto.
En el Explorador de Azure Storage, expanda Emulador y adjunto>Cuentas de almacenamiento>attachmentstorageacct (clave)>Contenedores de blobs>attachments.
Busque en el contenedor attachments (datos adjuntos) el correo electrónico.
En este momento, solo el correo electrónico aparece en el contenedor, porque la aplicación lógica no ha procesado aún los datos adjuntos.
Cuando termine, elimine el correo electrónico del Explorador de Azure Storage.
Opcionalmente, para probar la rama False, que en este momento no hace nada, puede enviar un correo electrónico que no cumpla los criterios.
A continuación, agregue un bucle Para cada uno para procesar los datos adjuntos de correo electrónico.
En los siguientes pasos se agrega un bucle para procesar cada archivo adjunto en el correo electrónico.
Vuelva al diseñador de flujo de trabajo. En la acción Crear blob para el cuerpo del correo electrónico, seleccione Agregar una acción.
Siga estos pasos generales para agregar la acción Control denominada Para cada.
En el panel de información de la acción Para cada, cambie el nombre de la acción a Para cada archivo adjunto de correo electrónico.
Ahora seleccione el contenido del bucle que se va a procesar.
En el bucle Para cada archivo adjunto de correo electrónico, seleccione dentro del cuadro Seleccionar una salida de los pasos anteriores y, a continuación, seleccione la opción de lista de contenido dinámico (icono del rayo).
En la sección Cuando llega un nuevo correo electrónico, seleccione Datos adjuntos.
La salida Datos adjuntos incluye una matriz con todos los datos adjuntos de un correo electrónico. El bucle Para cada repite acciones en cada elemento de la matriz.
Sugerencia
Si no ve Datos adjuntos, seleccione Ver más.
Guarde el flujo de trabajo.
A continuación, agregue una acción que guarda cada archivo adjunto como un blob en el contenedor de almacenamiento de datos adjuntos.
En los siguientes pasos se agrega una acción para crear un blob para cada archivo adjunto.
En el diseñador, en el bucle Para cada archivo adjunto de correo electrónico, seleccione Agregar una acción.
Siga estos pasos generales para agregar la acción de Azure Blob Storage denominada Crear blob.
En el panel de información de acción Crear blob, cambie el nombre de la acción por Crear blob para datos adjuntos del correo electrónico.
Proporcione la siguiente información de acción:
Sugerencia
Si no encuentra una salida especificada en la lista de contenido dinámico, seleccione Ver más junto al nombre de la operación.
Parámetro Obligatorio Valor Descripción Nombre de la cuenta de almacenamiento o punto de conexión de blob Sí Use la configuración de conexión(<storage-account-name-or-blob-endpoint>) Seleccione la opción que incluye el nombre de la cuenta de almacenamiento.
En este ejemplo se usahttps://attachmentstorageacct.blob.core.windows.net
.Ruta de acceso de la carpeta Sí <path-and-container-name> La ruta de acceso y el nombre del contenedor que creó anteriormente.
En este ejemplo, seleccione el icono de carpeta y, después, elija datos adjuntos.Nombre de blob Sí <attachment-name> En este ejemplo, use el nombre de los datos adjuntos como nombre del blob.
1. Seleccione dentro del cuadro nombre de blob y, a continuación, seleccione la opción de lista de contenido dinámico (icono de rayo).
2. En la sección Cuando llega un nuevo correo electrónico, seleccione Nombre.Contenido del blob Sí <email-content> En este ejemplo, use el contenido del correo electrónico como contenido del blob.
1. Seleccione dentro del cuadro Contenido de blob y, a continuación, seleccione la opción de lista de contenido dinámico (icono de rayo).
2. En la sección Cuando llega un nuevo correo electrónico, seleccione Contenido.Nota
Si selecciona una salida que tiene una matriz, como la salida Contenido, que es una matriz que incluye datos adjuntos, el diseñador agrega automáticamente un bucle Para cada alrededor de la acción que hace referencia a esa salida. De este modo, el flujo de trabajo puede realizar esa acción en cada elemento de la matriz. Para quitar el bucle, mueva la acción que hace referencia a la salida fuera del bucle y elimínelo.
En el siguiente recorte de pantalla, se muestran las salidas que se van a seleccionar para la acción Crear blob para datos adjuntos del correo electrónico:
Cuando termine, la acción tendrá un aspecto similar al siguiente ejemplo:
Guarde el flujo de trabajo.
En la barra de herramientas del diseñador, seleccione Ejecutar>Ejecutar.
Este paso inicia y ejecuta manualmente el flujo de trabajo, pero no sucede nada hasta que se envía un correo electrónico de prueba a la bandeja de entrada.
Envíese un correo electrónico que cumpla este criterio:
El asunto del correo electrónico tiene el texto que especificó en el parámetro Filtro de asunto: Analista de negocios 2 #423501
El correo electrónico tiene dos o varios datos adjuntos. Por ahora, cree dos archivos de texto vacío y adjunte esos archivos a su correo electrónico.
Si el flujo de trabajo no se desencadenó o ejecutó a pesar de que el desencadenador era correcto, consulte Solución de problemas del flujo de trabajo de aplicación lógica.
Compruebe que el flujo de trabajo guardó el correo electrónico y los datos adjuntos en el contenedor de almacenamiento correcto.
En el Explorador de Azure Storage, expanda Emulador y adjunto>Cuentas de almacenamiento>attachmentstorageacct (clave)>Contenedores de blobs>attachments.
Compruebe que en el contenedor attachments (datos adjuntos) se encuentren el correo electrónico y los datos adjuntos.
Cuando termine, elimine el correo electrónico y los datos adjuntos del Explorador de Azure Storage.
A continuación, agregue una acción en el flujo de trabajo que envíe correo electrónico para revisar los datos adjuntos.
Los siguientes pasos agregan una acción para que el flujo de trabajo envíe un correo electrónico para revisar los datos adjuntos.
Vuelva al diseñador de flujo de trabajo. En la rama True, en el bucle Para cada archivo adjunto de correo electrónico, seleccione Agregar una acción.
-
Este ejemplo continúa con el conector Office 365 Outlook, que solo funciona con una cuenta profesional o educativa de Azure. Para las cuentas de Microsoft personales, seleccione el conector de Outlook.com.
Si se le piden credenciales, inicie sesión en su cuenta de correo electrónico para que Azure Logic Apps cree una conexión a su cuenta de correo electrónico.
En el panel de información de la acción Enviar un correo electrónico, cambie el nombre de la acción por Enviar correo electrónico para su revisión.
Proporcione la siguiente información de la acción y seleccione las salidas que quiere incluir en el correo electrónico:
Sugerencia
Si no encuentra una salida especificada en la lista de contenido dinámico, seleccione Ver más junto al nombre de la operación.
Parámetro Obligatorio Valor Descripción To Sí <recipient-email-address> Para las pruebas, use su propia dirección de correo electrónico. Subject Sí <email-subject> Asunto del correo electrónico que se va a incluir.
En este ejemplo se usa ASAP: revisión del solicitante para la posición:y la salida del Asunto del desencadenador.
1. En el cuadro Asunto, escriba el texto de ejemplo con un espacio final.
2. Seleccione dentro del cuadro Asunto y, a continuación, seleccione la opción de lista de contenido dinámico (icono de rayo).
3. En la lista, en Cuando llega un nuevo correo electrónico, seleccione Asunto.Cuerpo Sí <email-body> Cuerpo del correo electrónico que se va a incluir.
En el ejemplo se usa Revise el nuevo solicitante: la salida del desencadenador denominada Desde, la salida Ruta de acceso de la acción Crear blob para el cuerpo del correo electrónico y la salida Cuerpo de la acción Llamar a RemoveHTMLFunction.
1. En el cuadro Cuerpo, escriba el texto de ejemplo: Revise el nuevo solicitante:.
2. En una nueva línea, escriba el texto de ejemplo, Nombre del solicitante: y agregue la salida del desencadenador Desde.
3. En una nueva línea, escriba el texto de ejemplo: Ubicación del archivo de aplicación: y agregue la salida Ruta de acceso de la acción Crear blob para el cuerpo del correo electrónico.
4. En una nueva línea, escriba el texto de ejemplo: Contenido de correo electrónico de la aplicación: y agregue la salida Cuerpo de la acción Llamar a RemoveHTMLFunction.Nota
Si selecciona una salida que tiene una matriz, como la salida Contenido, que es una matriz que incluye datos adjuntos, el diseñador agrega automáticamente un bucle Para cada alrededor de la acción que hace referencia a esa salida. De este modo, el flujo de trabajo puede realizar esa acción en cada elemento de la matriz. Para quitar el bucle, mueva la acción que hace referencia a la salida fuera del bucle y elimínelo.
En el siguiente recorte de pantalla se muestra la acción Enviar un correo electrónico:
Guarde el flujo de trabajo.
El flujo de trabajo terminado ahora tiene un aspecto similar al del siguiente ejemplo:
Envíese un correo electrónico que cumpla este criterio:
El asunto del correo electrónico tiene el texto que especificó en el parámetro Filtro de asunto: Analista de negocios 2 #423501
El correo electrónico tiene uno o varios datos adjuntos. Puede volver a usar un archivo de texto vacío de la prueba anterior. Si quiere un escenario más realista, adjunte un archivo de reanudación.
El cuerpo del correo electrónico tiene este texto, que puede copiar y pegar:
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
Ejecución del flujo de trabajo. Si la operación tiene éxito, el flujo de trabajo le envía un correo electrónico parecido al de este ejemplo:
Si no recibe ningún correo electrónico, compruebe la carpeta de correo electrónico no deseado. De lo contrario, si no está seguro de que el flujo de trabajo se ejecutara correctamente, consulte Solución de problemas del flujo de trabajo de aplicación lógica.
Enhorabuena, ha creado y ejecutado un flujo de trabajo que automatiza tareas en diferentes servicios de Azure y llama a código personalizado.
Su flujo de trabajo continúa ejecutándose hasta que deshabilite o elimine el recurso de la aplicación lógica. Cuando ya no necesite este ejemplo, elimine el grupo de recursos que contiene la aplicación lógica y los recursos relacionados.
En el cuadro de búsqueda de Azure Portal, escriba grupos de recursos y seleccione Grupos de recursos.
En la lista Grupos de recursos, seleccione el grupo de recursos para este tutorial.
En el menú del grupo de recursos, seleccione Información general.
En la barra de herramientas de la página Información general, seleccione Eliminar grupo de recursos.
Cuando aparezca el panel de confirmación, escriba el nombre del grupo de recursos y seleccione Eliminar.
En este tutorial, ha creado un flujo de trabajo de aplicación lógica que procesa y almacena datos adjuntos de correo electrónico mediante la integración de servicios de Azure, como Azure Storage y Azure Functions. Ahora, conozca más sobre otros conectores que puede usar para crear flujos de trabajo de aplicación lógica.