Conexión a un servidor FTP desde flujos de trabajo en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

En este artículo se muestra cómo acceder al servidor del protocolo de transferencia de archivos (FTP) desde un flujo de trabajo en Azure Logic Apps con el conector FTP. Después, puede crear flujos de trabajo automatizados que se ejecuten cuando eventos los desencadenen en el servidor FTP o en otros sistemas. También puede ejecutar acciones para administrar los archivos en el servidor FTP.

Por ejemplo, el flujo de trabajo puede empezar con un desencadenador FTP que supervisa y responde a eventos en el servidor FTP. El desencadenador hace que las salidas estén disponibles para las acciones posteriores del flujo de trabajo. El flujo de trabajo puede ejecutar acciones ftp que creen, envíen, reciban y administren archivos a través de la cuenta del servidor FTP mediante las siguientes tareas específicas:

  • Supervisar cuándo se agregan o cambian archivos
  • Crear, copiar, eliminar, enumerar y actualizar archivos.
  • Obtener metadatos de archivo y contenido.
  • Administrar carpetas.

Si no está familiarizado con Azure Logic Apps, revise la siguiente documentación para empezar:

Referencia técnica del conector

El conector FTP tiene diferentes versiones, en función del tipo de aplicación lógica y del entorno de host.

Tipo de aplicación lógica (plan) Entorno Versión del conector
Consumo Azure Logic Apps multiinquilino Conector administrado (Clase estándar). Para obtener más información, revise la siguiente documentación:

- Referencia del conector administrado por FTP
- Conectores administrados en Azure Logic Apps
Consumo Entorno del servicio de integración (ISE) Conector administrado (clase estándar) y versión de ISE, que tiene límites de mensaje diferentes a la clase estándar. Para obtener más información, revise la siguiente documentación:

- Referencia del conector administrado por FTP
- Límites de mensajes ISE
- Conectores administrados en Azure Logic Apps
Estándar Azure Logic Apps de inquilino único y App Service Environment v3 (solo planes de Windows) Conector administrado (con host de Azure) y conector integrado, que se basa en el proveedor de servicios. El conector integrado puede acceder directamente a redes virtuales de Azure con una cadena de conexión. Para obtener más información, revise la siguiente documentación:

- Referencia del conector administrado por FTP
- Sección Operaciones de conector integradas de FTP más adelante en este artículo
- Conectores administrados en Azure Logic Apps
- Conectores integrados en Azure Logic Apps

Limitaciones

  • Capacidad y rendimiento

    • Conector integrado para flujos de trabajo estándar:

      De forma predeterminada, las acciones de FTP pueden leer o escribir archivos con un tamaño de 200 MB o menos. Actualmente, el conector integrado FTP no admite la fragmentación.

    • Conector administrado o hospedado en Azure para flujos de trabajo estándar y consumo

      De forma predeterminada, las acciones de FTP pueden leer o escribir archivos con un tamaño de 50 MB o menos. Para procesar archivos mayores de 50 MB, las acciones de FTP admiten la fragmentación de mensajes. La acción Obtener contenido de archivo usa implícitamente la fragmentación.

  • Es posible que los desencadenadores del conector hospedado en Azure o administrado por FTP experimenten resultados que faltan, están incompletos o retrasados cuando se conserva la marca de tiempo "última modificación". Por otro lado, el desencadenador del conector integrado FTP en los flujos de trabajo de la aplicación lógica estándar no tiene esta limitación. Para más información, consulte la sección Limitaciones del conector FTP.

  • El conector administrado por FTP u hospedado en Azure puede crear un número limitado de conexiones al servidor FTP, en función de la capacidad de conexión de la región de Azure donde existe el recurso de la aplicación lógica. Si este límite supone un problema en un flujo de trabajo de aplicación lógica de consumo, considere la posibilidad de crear un flujo de trabajo de aplicación lógica estándar y usar el conector integrado FTP en su lugar.

Requisitos previos

  • Una cuenta y una suscripción de Azure. Si no tiene una suscripción de Azure, regístrese para obtener una cuenta gratuita de Azure.

  • El flujo de trabajo de la aplicación lógica desde donde quiere acceder a la cuenta de FTP. Para iniciar el flujo de trabajo mediante un desencadenador de FTP, deberá empezar con un flujo de trabajo en blanco. Para usar una acción FTP, inicie el flujo de trabajo con otro desencadenador, como el desencadenador Recurrence.

  • Para obtener más requisitos que se aplican tanto al conector administrado por FTP como al conector integrado, revise la referencia del conector administrado por FTP: Requisitos.

Problemas conocidos

De forma predeterminada, los desencadenadores que devuelven una matriz tienen una configuración Split On que ya está habilitada. Con esta configuración habilitada, el desencadenador desagrupa automáticamente la matriz mediante la creación interna de una instancia de flujo de trabajo independiente para procesar cada elemento de matriz. Todas las instancias de flujo de trabajo se ejecutan en paralelo para que los elementos de matriz se procesen al mismo tiempo.

Sin embargo, cuando la opción Split On está habilitada, los desencadenadores del conector administrado devuelven las salidas de todos los elementos de matriz como listas. Las acciones posteriores que hagan referencia a estas salidas deben controlar primero estas salidas como listas. Para controlar cada elemento de matriz individualmente, puede agregar acciones adicionales. Por ejemplo, para recorrer en iteración estos elementos de matriz, puede usar un bucle For each. En el caso de los desencadenadores que devuelven solo metadatos o propiedades, use una acción que obtenga primero los metadatos del elemento de matriz y, a continuación, use una acción para obtener el contenido de los elementos.

Solo tiene que aplicar este enfoque para los desencadenadores de conector administrados, no los desencadenadores de conector integrados que devuelven salidas de un elemento de matriz cada vez que está habilitada la configuración Dividir.

Por ejemplo, supongamos que tiene un desencadenador de conector administrado denominado Cuando se agrega o modifica un archivo (solo propiedades) que devuelve los metadatos o propiedades de los archivos nuevos o actualizados como matrices. Para obtener los metadatos por separado para cada archivo, puede usar un bucle For each que recorre en iteración la matriz. En este bucle, use las siguientes acciones del conector administrado en el orden especificado:

  1. Obtenga metadatos de archivo para obtener los metadatos de cada archivo.

  2. Obtenga la acción de contenido del archivo para obtener el contenido de cada archivo.

Agregar un desencadenador FTP

Un flujo de trabajo de aplicación lógica de consumo solo puede usar el conector administrado por FTP. Sin embargo, un flujo de trabajo de aplicación lógica estándar puede usar el conector administrado por FTP y el conector integrado FTP. En un flujo de trabajo de aplicación lógica estándar, los conectores administrados también se etiquetan como conectores de Azure.

El conector administrado por FTP y el conector integrado tienen solo un desencadenador disponible:

  • Desencadenador de conector administrado: el desencadenador FTP denominado Cuando se agrega o modifica un archivo (solo propiedades) ejecuta un flujo de trabajo de aplicación lógica de consumo o estándar cuando uno o varios archivos se agregan o cambian en una carpeta del servidor FTP. Este desencadenador solo obtiene las propiedades o metadatos del archivo, no el contenido del archivo. Sin embargo, para obtener el contenido del archivo, el flujo de trabajo puede seguir este desencadenador con otras acciones de FTP.

    Para obtener más información sobre este desencadenador, revise Cuando se agrega o modifica un archivo (solo propiedades).

  • Desencadenador de conector integrado: el desencadenador FTP denominado Cuando se agrega o actualiza un archivo ejecuta un flujo de trabajo de aplicación lógica estándar cuando uno o varios archivos se agregan o cambian en una carpeta del servidor FTP. Este desencadenador solo obtiene las propiedades o metadatos del archivo, no el contenido del archivo. Sin embargo, para obtener el contenido, el flujo de trabajo puede seguir este desencadenador con otras acciones de FTP. Para obtener más información sobre este desencadenador, revise Cuando se agrega o actualiza un archivo.

Aunque en los siguientes pasos se usa Azure Portal, también puede usar las siguientes herramientas para crear y editar flujos de trabajo de aplicaciones lógicas si usa la extensión Azure Logic Apps adecuada:

  1. Abra el flujo de trabajo vacío de la aplicación lógica en el diseñador de Azure Portal.

  2. En el diseñador, debajo del cuadro de búsqueda, seleccione Estándar. En el cuadro de búsqueda, escriba ftp.

  3. En la lista Desencadenadores, seleccione el desencadenador llamado cuando se agrega o modifica un archivo (solo propiedades).

    Screenshot shows Azure portal, Consumption workflow designer, and FTP trigger selected.

  4. Proporcione la información de la conexión. Seleccione Crear cuando haya terminado.

    Nota:

    De forma predeterminada, este conector transfiere los archivos en formato de texto. Para transferir archivos en formato binario, por ejemplo, cuando se use la codificación, seleccione la opción "transporte binario".

    Screenshot shows Consumption workflow designer and FTP connection profile.

  5. Una vez que aparezca el cuadro de información del desencadenador, busque la carpeta que desea supervisar para los archivos nuevos o editados.

    1. En el cuadro Carpeta, seleccione el icono de carpeta para ver el directorio de carpetas.

    2. Seleccione la flecha angular derecha (>). Busque la carpeta que desee y selecciónela.

    Screenshot shows Consumption workflow designer, FTP trigger, and

    La carpeta seleccionada aparece en el cuadro Carpeta.

    Screenshot shows Consumption workflow designer, FTP trigger, and

  6. Cuando haya terminado, guarde el flujo de trabajo.

Al guardar el flujo de trabajo, este paso publica automáticamente las actualizaciones en la aplicación lógica implementada, que se encuentra en Azure. Con solo un desencadenador, el flujo de trabajo solo comprueba el servidor FTP en función de la programación especificada. Tiene que agregar una acción que responda al desencadenador y haga algo con las salidas del desencadenador.

Agregar una acción de FTP

Un flujo de trabajo de aplicación lógica de consumo solo puede usar el conector administrado por FTP. Sin embargo, un flujo de trabajo de aplicación lógica estándar puede usar el conector administrado por FTP y el conector integrado FTP. Cada versión tiene varias acciones. Por ejemplo, las versiones de conectores administradas y integradas tienen sus propias acciones para obtener metadatos de archivo y obtener contenido de archivo.

  • Acciones del conector administrado: estas acciones se ejecutan en un flujo de trabajo de aplicación lógica estándar o consumo.

  • Acciones del conector integradas: estas acciones solo se ejecutan en un flujo de trabajo de aplicación lógica estándar.

Aunque en los siguientes pasos se usa Azure Portal, también puede usar las siguientes herramientas para crear y editar flujos de trabajo de aplicaciones lógicas si usa la extensión Azure Logic Apps adecuada:

Para poder usar una acción FTP, el flujo de trabajo ya debe empezar con un desencadenador, que puede ser cualquier tipo que elija. Por ejemplo, puede usar el desencadenador integrado periodicidad genérico para iniciar el flujo de trabajo según una programación específica.

  1. En Azure Portal, abra el flujo de trabajo de la aplicación lógica en el diseñador.

  2. Busque y seleccione la acción de FTP que desea usar.

    Este ejemplo continúa con la acción denominada Obtener metadatos de archivo para que pueda obtener los metadatos de un solo elemento de matriz.

    1. En el diseñador, en el desencadenador o en cualquiera de las otras acciones, seleccione Nuevo paso.

    2. En el cuadro de búsqueda Elegir una operación, seleccione Estándar.

    3. En el cuadro de búsqueda, escriba ftp get file metadata.

    4. En la lista de acciones, seleccione la acción llamada Obtener metadatos de archivo.

    Screenshot shows the Azure portal, Consumption workflow designer, search box with

  3. Si es necesario, proporcione la información de la conexión. Seleccione Crear cuando haya terminado.

    Nota:

    De forma predeterminada, este conector transfiere los archivos en formato de texto. Para transferir archivos en formato binario, por ejemplo, cuando se use la codificación, seleccione la opción "transporte binario".

    Screenshot shows Consumption workflow designer and FTP connection profile for an action.

  4. Después de mostrarse el cuadro de información de la acción Obtener metadatos del archivo, haga clic dentro del cuadro Archivo para que se abra la lista de contenido dinámico.

    Ya puede seleccionar salidas del desencadenador anterior.

  5. En la lista de contenido dinámico, en Cuando se agrega o modifica un archivo, seleccione Lista de archivos Id.

    Screenshot shows Consumption workflow designer,

    La propiedad File ahora hace referencia a la salida del desencadenador Lista de Archivos Id.

  6. En el diseñador, en la acción Get file metadata (Obtener metadatos de archivo), seleccione New step (Nuevo paso).

  7. En el cuadro de búsqueda Elegir una operación, seleccione Estándar.

  8. En el cuadro de búsqueda, escriba ftp get file content.

  9. En la lista de acciones, seleccione la acción llamada Obtener contenido de archivo.

    Screenshot shows the Azure portal, Consumption workflow designer, search box with

  10. Después de mostrarse el cuadro de información de la acción Obtener contenido de archivo, haga clic dentro del cuadro Archivo para que se abra la lista de contenido dinámico.

    Ahora puede seleccionar salidas del desencadenador anterior y cualquier otra acción.

  11. En la lista de contenido dinámico, en Obtener metadatos del archivo, seleccione Id., que hace referencia al archivo que se agregó o actualizó.

    Screenshot shows Consumption workflow designer,

    La propiedad File ahora hace referencia a la salida de la acción Id.

    Screenshot shows Consumption workflow designer,

  12. Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Prueba del flujo de trabajo

Para comprobar que el flujo de trabajo devuelve el contenido que espera, agregue otra acción que envíe el contenido del archivo agregado o actualizado. En este ejemplo se usa la acción de Office 365 Outlook denominada Enviar un correo electrónico.

  1. En la acción Obtener contenido del archivo, agregue la acción Office 365 Outlook denominada Enviar un correo electrónico. Si tiene una cuenta de Outlook.com en su lugar, agregue la acción de Outlook.com Enviar un correo electrónico y ajuste los pasos siguientes en consecuencia.

    1. En el diseñador, en la acción Obtener metadatos de archivo, seleccione New step (Nuevo paso).

    2. En el cuadro de búsqueda Elegir una operación, seleccione Estándar.

    3. En el cuadro de búsqueda, escriba office 365 outlook send an email. En la lista de acciones, seleccione la acción Office 365 Outlook denominada Enviar un correo electrónico.

    Screenshot shows Consumption workflow designer and

  2. Si es necesario, inicie sesión en su cuenta de correo electrónico.

  3. En el cuadro de información de acción, proporcione los valores necesarios e incluya los demás parámetros o propiedades que quiera probar.

    Por ejemplo, puede incluir la salida de contenido archivo de la acción Obtener contenido del archivo. Para encontrar esta salida, siga estos pasos:

    1. En la acción Obtener contenido de archivo, haga clic dentro del cuadro Body (cuerpo) para que se abra la lista de contenido dinámico.

    2. En la lista de contenido dinámico, junto a Obtener contenido del archivo, seleccione Ver más.

      Screenshot shows Consumption workflow designer,

    3. En la lista de contenido dinámico, en Obtener contenido de archivo, seleccione Contenido de archivo.

      La propiedad Body ahora hace referencia a la salida de la acción Contenido del archivo.

      Screenshot shows Consumption workflow designer,

  4. Guarde el flujo de trabajo de la aplicación lógica.

  5. Para ejecutar y desencadenar el flujo de trabajo, en la barra de herramientas del diseñador, seleccione Ejecutar ejecución de desencadenador>. Agregue un archivo a la carpeta FTP que el flujo de trabajo supervisa.

Operaciones de conector integrado FTP

El conector integrado FTP solo está disponible para flujos de trabajo de aplicaciones lógicas estándar y proporciona las siguientes operaciones:

Desencadenador Descripción
Cuando se agrega o actualiza un archivo Inicie un flujo de trabajo de aplicación lógica cuando se agregue o actualice un archivo en la carpeta especificada en el servidor FTP.

Nota: Este desencadenador solo obtiene las propiedades o metadatos del archivo, no el contenido del archivo. Sin embargo, para obtener el contenido, el flujo de trabajo puede seguir este desencadenador con la acción Obtener contenido del archivo.

Acción Descripción
Crear archivo Cree un archivo con la ruta de acceso del archivo y el contenido del archivo especificados.
Eliminar archivo Elimine un archivo mediante la ruta de acceso del archivo especificada.
Obtener contenido del archivo Obtenga el contenido de un archivo mediante la ruta de acceso del archivo especificada.
Obtener metadatos del archivo Obtenga los metadatos o propiedades de un archivo mediante la ruta de acceso de archivo especificada.
Enumerar archivos y subcarpetas en una carpeta Obtenga una lista de archivos y subcarpetas en la carpeta especificada.
Actualizar archivo Actualice un archivo con la ruta de acceso del archivo y el contenido del archivo especificados.

Cuando se agrega o actualiza un archivo

Identificador de la operación: whenFtpFilesAreAddedOrModified

Este desencadenador inicia una ejecución de flujo de trabajo de aplicación lógica cuando se agrega o actualiza un archivo en la carpeta especificada en el servidor FTP. El desencadenador solo obtiene las propiedades o metadatos del archivo, no el contenido del archivo. Sin embargo, para obtener el contenido, el flujo de trabajo puede seguir este desencadenador con la acción Obtener contenido del archivo.

Parámetros

Nombre Llave Necesario Tipo Descripción
Folder path (Ruta de acceso a la carpeta) folderPath True string Ruta de acceso de la carpeta, relativa al directorio raíz.
Número de archivos que se van a devolver maxFileCount False integer Número máximo de archivos que se van a devolver desde una sola ejecución de desencadenador. Los valores válidos oscilan entre 1 y 100.

Nota: De forma predeterminada, la opción Dividir activado está habilitada y obliga a este desencadenador a procesar cada archivo individualmente en paralelo.
Límite de marca de tiempo para omitir los archivos anteriores oldFileCutOffTimestamp False dateTime Tiempo límite que se va a usar para omitir los archivos más antiguos. Use el formato de marca de hora YYYY-MM-DDTHH:MM:SS. Para deshabilitar esta característica, deje esta propiedad vacía.

Devoluciones

Cuando la opción Split On del desencadenador está habilitada, el desencadenador devuelve los metadatos o propiedades de un archivo a la vez. De lo contrario, el desencadenador devuelve una matriz que contiene los metadatos de cada archivo.

Nombre Tipo
Lista de archivos BlobMetadata

Crear archivo

Identificador de la operación: createFile

Esta acción crea un archivo con la ruta de acceso del archivo y el contenido del archivo especificados. Si el archivo ya existe, esta acción sobrescribe ese archivo.

Importante

Si elimina o cambia el nombre de un archivo en el servidor FTP inmediatamente después de la creación en el mismo flujo de trabajo, la operación podría devolver un error HTTP 404, que es por diseño. Para evitar este problema, incluya un retraso de 1 minuto antes de eliminar o cambiar el nombre de los archivos recién creados. Puede usar la acción Retrasar para agregar este retraso al flujo de trabajo.

Parámetros

Nombre Llave Necesario Tipo Descripción
Ruta de acceso del archivo filePath True string La ruta de acceso del archivo, incluida la extensión de nombre de archivo, si existe, en relación con el directorio raíz.
Contenido del archivo fileContent True string Contenido del archivo.

Devoluciones

Esta acción devuelve un objeto BlobMetadata denominado Body.

Nombre Tipo
Nombre de archivo de metadatos de archivo string
Ruta de acceso del archivo de metadatos de archivo string
Tamaño del archivo de metadatos de archivo string
Metadatos de archivo BlobMetadata

Eliminar archivo

Identificador de la operación: deleteFtpFile

Esta acción elimina un archivo mediante la ruta de acceso del archivo especificada.

Parámetros

Nombre Llave Necesario Tipo Descripción
Ruta de acceso del archivo filePath True string La ruta de acceso del archivo, incluida la extensión de nombre de archivo, si existe, en relación con el directorio raíz.

Devoluciones

Ninguno

Obtener contenido de archivo

Identificador de la operación: getFtpFileContent

Esta acción obtiene el contenido de un archivo mediante la ruta de acceso del archivo especificada.

Parámetros

Nombre Llave Necesario Tipo Descripción
Ruta de acceso del archivo path True string La ruta de acceso del archivo, incluida la extensión de nombre de archivo, si existe, en relación con el directorio raíz.

Devoluciones

Esta acción devuelve el contenido de un archivo como un valor binario denominado Contenido de archivo.

Nombre Tipo
Contenido del archivo Binario

Obtener metadatos del archivo

Identificador de la operación: getFileMetadata

Esta acción obtiene los metadatos o propiedades de un archivo mediante la ruta de acceso de archivo especificada.

Parámetros

Nombre Llave Necesario Tipo Descripción
Ruta de acceso del archivo path True string La ruta de acceso del archivo, incluida la extensión de nombre de archivo, si existe, en relación con el directorio raíz.

Devoluciones

Esta acción devuelve los resultados siguientes:

Nombre Tipo
Nombre de archivo string
Ruta de acceso del archivo string
Tamaño de archivo string
Última actualización string
Metadatos de archivo BlobMetadata

Enumerar archivos y subcarpetas en una carpeta

Identificador de la operación: listFilesInFolder

Esta acción obtiene una lista de archivos y subcarpetas en la carpeta especificada.

Parámetros

Nombre Llave Necesario Tipo Descripción
Folder path (Ruta de acceso a la carpeta) folderPath True string Ruta de acceso de la carpeta, relativa al directorio raíz.
Contenido del archivo fileContent True string El contenido del archivo

Devoluciones

Esta acción devuelve una matriz denominada Response y contiene objetos BlobMetadata.

Nombre Tipo
Respuesta Matriz con objetos BlobMetadata

Actualizar archivo

Identificador de la operación: updateFile

Esta acción actualiza un archivo con la ruta de acceso del archivo y el contenido del archivo especificados.

Importante

Si elimina o cambia el nombre de un archivo en el servidor FTP inmediatamente después de la creación en el mismo flujo de trabajo, la operación podría devolver un error HTTP 404, que es por diseño. Para evitar este problema, incluya un retraso de 1 minuto antes de eliminar o cambiar el nombre de los archivos recién creados. Puede usar la acción Retrasar para agregar este retraso al flujo de trabajo.

Parámetros

Nombre Llave Necesario Tipo Descripción
Ruta de acceso del archivo filePath True string La ruta de acceso del archivo, incluida la extensión de nombre de archivo, si existe, en relación con el directorio raíz.
Contenido del archivo fileContent True string El contenido del archivo

Devoluciones

Esta acción devuelve un objeto BlobMetadata denominado Body.

Nombre Tipo
Cuerpo BlobMetadata

Pasos siguientes