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:
- ¿Qué es Azure Logic Apps?
- Inicio rápido: Creación de un flujo de trabajo de aplicación lógica de consumo de ejemplo
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:
Obtenga metadatos de archivo para obtener los metadatos de cada archivo.
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:
Flujos de trabajo de aplicaciones lógicas basados en consumo: Visual Studio o Visual Studio Code
Flujos de trabajo de aplicaciones lógicas estándar: Visual Studio Code
Abra el flujo de trabajo vacío de la aplicación lógica en el diseñador de Azure Portal.
En el diseñador, debajo del cuadro de búsqueda, seleccione Estándar. En el cuadro de búsqueda, escriba ftp.
En la lista Desencadenadores, seleccione el desencadenador llamado cuando se agrega o modifica un archivo (solo propiedades).
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".
Una vez que aparezca el cuadro de información del desencadenador, busque la carpeta que desea supervisar para los archivos nuevos o editados.
En el cuadro Carpeta, seleccione el icono de carpeta para ver el directorio de carpetas.
Seleccione la flecha angular derecha (>). Busque la carpeta que desee y selecciónela.
La carpeta seleccionada aparece en el cuadro Carpeta.
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:
Flujos de trabajo de aplicaciones lógicas basados en consumo: Visual Studio o Visual Studio Code
Flujos de trabajo de aplicaciones lógicas estándar: Visual Studio Code
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.
En Azure Portal, abra el flujo de trabajo de la aplicación lógica en el diseñador.
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.
En el diseñador, en el desencadenador o en cualquiera de las otras acciones, seleccione Nuevo paso.
En el cuadro de búsqueda Elegir una operación, seleccione Estándar.
En el cuadro de búsqueda, escriba ftp get file metadata.
En la lista de acciones, seleccione la acción llamada Obtener metadatos de archivo.
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".
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.
En la lista de contenido dinámico, en Cuando se agrega o modifica un archivo, seleccione Lista de archivos Id.
La propiedad File ahora hace referencia a la salida del desencadenador Lista de Archivos Id.
En el diseñador, en la acción Get file metadata (Obtener metadatos de archivo), seleccione New step (Nuevo paso).
En el cuadro de búsqueda Elegir una operación, seleccione Estándar.
En el cuadro de búsqueda, escriba ftp get file content.
En la lista de acciones, seleccione la acción llamada Obtener contenido de archivo.
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.
En la lista de contenido dinámico, en Obtener metadatos del archivo, seleccione Id., que hace referencia al archivo que se agregó o actualizó.
La propiedad File ahora hace referencia a la salida de la acción Id.
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.
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.
En el diseñador, en la acción Obtener metadatos de archivo, seleccione New step (Nuevo paso).
En el cuadro de búsqueda Elegir una operación, seleccione Estándar.
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.
Si es necesario, inicie sesión en su cuenta de correo electrónico.
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:
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.
En la lista de contenido dinámico, junto a Obtener contenido del archivo, seleccione Ver más.
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.
Guarde el flujo de trabajo de la aplicación lógica.
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 |