Leer en inglés

Compartir a través de


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:

Recorte de pantalla que muestra un ejemplo de flujo de trabajo de nivel general de Consumo.

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.

Requisitos previos

Configuración del almacenamiento para guardar datos adjuntos

Los siguientes pasos configuran Azure Storage para que pueda almacenar los correos electrónicos entrantes y los datos adjuntos como blobs.

  1. En Azure Portal, inicie sesión con las credenciales de su cuenta de Azure.

  2. 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 <Azure-subscription-name> El nombre de la suscripción de Azure.

    En este ejemplo se usa pago por uso.
    Grupos de recursos <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 <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 <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 - Estándar
    - Premium
    Esta 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 - 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.

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

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

  5. Para obtener la clave de acceso de la cuenta de almacenamiento, siga estos pasos:

    1. En el menú de la cuenta de almacenamiento, en Seguridad y redes, seleccione Claves de acceso.

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

  6. Cree un contenedor de almacenamiento de blobs para los datos adjuntos de correo electrónico.

    1. En el menú de la cuenta de almacenamiento, en Almacenamiento de datos, seleccione Contenedores.

    2. En la barra de herramientas de la página Contenedores, seleccione Contenedor.

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

Configurar el Explorador de Storage

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.

  1. 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).

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

  3. En la ventana del explorador que aparece, inicie sesión con su cuenta de Azure.

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

  5. En la barra de actividades del Explorador de Azure Storage, seleccione Abrir cuadro de diálogo Conectar.

  6. En la ventana Seleccionar recurso, elija Cuenta de almacenamiento o servicio.

  7. En la ventana Seleccionar método de conexión, elija Nombre de cuenta y clave>Siguiente.

  8. 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.
  9. Para Dominio de Storage, confirme que Azure (core.windows.net) está seleccionado y seleccione Siguiente.

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

  11. 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:

    Captura de pantalla que muestra el Explorador de Azure Storage: búsqueda del contenedor de almacenamiento.

A continuación, cree una aplicación de funciones de Azure y una función que quite el HTML del contenido.

Creación de una aplicación de función

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.

  1. Para poder crear una función, cree una aplicación de funciones seleccionando el plan de Consumo y siguiendo estos pasos:

    1. En la pestaña Básico, especifique la siguiente información:

      Propiedad Necesario Valor Descripción
      Suscripción <Azure-subscription-name> La misma suscripción de Azure que usó anteriormente para la cuenta de almacenamiento.
      Grupo de recursos <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 <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 <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 <version-number> Seleccione la versión del entorno de ejecución instalado.
      Región <Azure-region> La misma región que usó anteriormente.

      En este ejemplo se usa West US.
      Sistema operativo <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.
    2. Seleccione Siguiente: Storage (Almacenamiento). En la pestaña Almacenamiento, especifique la siguiente información:

      Propiedad Necesario Valor Descripción
      Cuenta de almacenamiento <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.
    3. Cuando finalice, seleccione Revisar y crear. Una vez que Azure valide la información proporcionada, seleccione Crear.

    4. Después de que Azure implemente el recurso de aplicación de funciones, seleccione Ir al recurso.

Creación de una función para quitar HTML

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.

  1. En Azure Portal, abra la aplicación de funciones, si aún no está abierta.

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

  3. En el menú de la aplicación de funciones, seleccione Información general. En la pestaña Funciones, seleccione Crear.

  4. En el panel Crear función, seleccione Desencadenador HTTP: C#>Siguiente.

    Nota

    Si no ve la versión de C#

  5. 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
  6. 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(@"&nbsp;", " ");
    
       // Return cleaned text
       return (ActionResult)new OkObjectResult(new {updatedBody});
    }
    
  7. Cuando termine, en la barra de herramientas Código y prueba, seleccione Guardary, a continuación, seleccione Prueba y ejecución.

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

Creación de un recurso de aplicación lógica de consumo

  1. En el cuadro de búsqueda de Azure Portal, escriba aplicación lógicay seleccione Aplicaciones lógicas.

  2. 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.
  3. En la página Crear aplicación lógica, seleccione Consumo (multiinquilino).

  4. 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 <Azure-subscription-name> La misma suscripción de Azure que usó anteriormente.
    Grupo de recursos LA-Tutorial-RG El mismo grupo de recursos de Azure que usó anteriormente.
    Nombre de la aplicación lógica <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 Oeste de EE. UU. La misma región que usó anteriormente.
    Habilitación de análisis de registros 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.

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

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

Adición de un desencadenador para supervisar el correo electrónico entrante

Los siguientes pasos agregan un desencadenador que espera los correos electrónicos entrantes que tienen archivos adjuntos.

  1. En el menú de la aplicación lógica, en Herramientas de desarrollo, seleccione Diseñador de aplicaciones lógicas.

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

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

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

    Recorte de pantalla que muestra el flujo de trabajo de consumo y el desencadenador de Outlook de Office 365.

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

Adición de una condición para comprobar los datos adjuntos

Los siguientes pasos agregan una condición que selecciona solo los correos electrónicos que tienen datos adjuntos.

  1. En el diseñador de flujos de trabajo, siga estos pasos generales para agregar la acción de Control denominada Condición.

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

  3. Cree una condición que busque correos electrónicos que tienen datos adjuntos.

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

      Recorte de pantalla que muestra la acción de condición, la segunda fila con el cursor en el cuadro situado más a la izquierda, la lista de contenido dinámico abierta y la opción Tiene datos adjuntos seleccionada.

    2. En el cuadro central, mantenga el operador denominado es igual a.

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

      Recorte de pantalla que muestra la condición completa.

    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"
    }
    
  4. Guarde el flujo de trabajo.

Prueba de la condición

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

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

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

Llamada a RemoveHTMLFunction

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.

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

  2. Siga los siguientes pasos generales para agregar la acción Azure Functions denominada Elegir una función de Azure.

  3. Seleccione la aplicación de funciones creada anteriormente, que en este ejemplo es CleanTextFunctionApp.

  4. Seleccione la función, que se llama RemoveHTMLFunction en este ejemplo y, a continuación, seleccione Agregar acción.

  5. En el panel de información de acciones de Azure Functions, cambie el nombre de la acción por Llamar a RemoveHTMLFunction.

  6. Ahora, especifique la entrada de la función que se va a procesar.

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

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

    3. 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 (}).

      Recorte de pantalla que muestra el cuadro de información de la función de Azure con la lista de contenido dinámico y el cuerpo seleccionado.

    Cuando termine, la función de Azure tendrá un aspecto similar al siguiente ejemplo:

    Recorte de pantalla que muestra la función de Azure finalizada con el contenido del cuerpo de la solicitud para pasar a la función.

  7. Guarde el flujo de trabajo.

A continuación, agregue una acción que cree un blob para almacenar el cuerpo del correo electrónico.

Adición de una acción para crear un blob para 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.

  1. En el diseñador, en el bloque True de la condición, debajo de la función de Azure, seleccione Agregar una acción.

  2. Siga estos pasos generales para agregar la acción de Azure Blob Storage denominada Crear blob.

  3. 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 <connection-name> Un nombre descriptivo para la conexión.

    En este ejemplo se usa AttachmentStorageConnection.
    Tipo de autenticación <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 <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 <storage-account-access-key> Clave de acceso de la cuenta de almacenamiento creada anteriormente.
  4. Cuando termine, seleccione Crear nueva.

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

  6. 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 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 usa https://attachmentstorageacct.blob.core.windows.net.
    Ruta de acceso de la carpeta <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 <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 <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 :

    Recorte de pantalla que muestra el contenedor de almacenamiento, el remitente y el cuerpo del correo electrónico sin HTML en la acción Crear blob.

    Cuando termine, la acción tendrá un aspecto similar al siguiente ejemplo:

    Recorte de pantalla que muestra información de cuerpo de correo electrónico de ejemplo para la acción Crear blob finalizada.

  7. Guarde el flujo de trabajo.

Control de datos adjuntos de prueba

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

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

  3. Compruebe que el flujo de trabajo guardó el correo electrónico en el contenedor de almacenamiento correcto.

    1. En el Explorador de Azure Storage, expanda Emulador y adjunto>Cuentas de almacenamiento>attachmentstorageacct (clave)>Contenedores de blobs>attachments.

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

      Recorte de pantalla que muestra el Explorador de Azure Storage solo con el correo electrónico guardado.

    3. Cuando termine, elimine el correo electrónico del Explorador de Azure Storage.

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

Adición de un bucle para procesar datos adjuntos

En los siguientes pasos se agrega un bucle para procesar cada archivo adjunto en el correo electrónico.

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

  2. Siga estos pasos generales para agregar la acción Control denominada Para cada.

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

  4. Ahora seleccione el contenido del bucle que se va a procesar.

    1. 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).

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

      Recorte de pantalla que muestra la lista de contenido dinámico con la salida seleccionada denominada Datos adjuntos.

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

Adición de una acción para crear un blob por datos adjuntos

En los siguientes pasos se agrega una acción para crear un blob para cada archivo adjunto.

  1. En el diseñador, en el bucle Para cada archivo adjunto de correo electrónico, seleccione Agregar una acción.

  2. Siga estos pasos generales para agregar la acción de Azure Blob Storage denominada Crear blob.

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

  4. 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 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 usa https://attachmentstorageacct.blob.core.windows.net.
    Ruta de acceso de la carpeta <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 <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 <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:

    Recorte de pantalla que muestra la información del contenedor de almacenamiento y los datos adjuntos en la acción Crear blob.

    Cuando termine, la acción tendrá un aspecto similar al siguiente ejemplo:

    Recorte de pantalla que muestra información de datos adjuntos de ejemplo para la acción Crear blob finalizada.

  5. Guarde el flujo de trabajo.

Volver a realizar la prueba del control de datos adjuntos

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

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

  3. Compruebe que el flujo de trabajo guardó el correo electrónico y los datos adjuntos en el contenedor de almacenamiento correcto.

    1. En el Explorador de Azure Storage, expanda Emulador y adjunto>Cuentas de almacenamiento>attachmentstorageacct (clave)>Contenedores de blobs>attachments.

    2. Compruebe que en el contenedor attachments (datos adjuntos) se encuentren el correo electrónico y los datos adjuntos.

      Recorte de pantalla que muestra el Explorador de Azure Storage y los datos adjuntos y el correo electrónico guardados.

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

Incorporación de una acción para enviar correo electrónico

Los siguientes pasos agregan una acción para que el flujo de trabajo envíe un correo electrónico para revisar los datos adjuntos.

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

  2. Siga estos pasos generales para agregar la acción de Outlook de Office 365 denominada Enviar un correo electrónico.

    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.

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

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

  5. 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 <recipient-email-address> Para las pruebas, use su propia dirección de correo electrónico.
    Subject <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 <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:

    Recorte de pantalla que muestra el correo electrónico de ejemplo que se va a enviar.

  6. Guarde el flujo de trabajo.

El flujo de trabajo terminado ahora tiene un aspecto similar al del siguiente ejemplo:

Recorte de pantalla que muestra el flujo de trabajo finalizado.

Prueba del flujo de trabajo

  1. 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
      
  2. 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:

    Recorte de pantalla que muestra el correo electrónico de ejemplo enviado por el flujo de trabajo de aplicación lógica.

    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.

Limpieza de recursos

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.

  1. En el cuadro de búsqueda de Azure Portal, escriba grupos de recursos y seleccione Grupos de recursos.

  2. En la lista Grupos de recursos, seleccione el grupo de recursos para este tutorial.

  3. En el menú del grupo de recursos, seleccione Información general.

  4. En la barra de herramientas de la página Información general, seleccione Eliminar grupo de recursos.

  5. Cuando aparezca el panel de confirmación, escriba el nombre del grupo de recursos y seleccione Eliminar.

Pasos siguientes

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.