Conexión a una base de datos SQL de flujos de trabajo en Azure Logic Apps
Se aplica a: Azure Logic Apps (consumo + estándar)
En esta guía paso a paso se muestra cómo acceder a la base de datos SQL desde un flujo de trabajo de Azure Logic Apps con el conector de SQL Server. Después, puede crear flujos de trabajo automatizados que se ejecuten cuando eventos los desencadenen en la base de datos SQL o en otros sistemas. También puede ejecutar acciones para administrar los datos y recursos de SQL.
Por ejemplo, el flujo de trabajo puede ejecutar acciones que obtienen, insertan y eliminan datos o que pueden ejecutar consultas y procedimientos almacenados SQL. El flujo de trabajo puede comprobar si hay registros nuevos en una base de datos que no es SQL, realizar algún trabajo de procesamiento, usar los resultados para crear nuevos registros en la base de datos SQL y enviar alertas por correo electrónico sobre los nuevos registros.
Si no está familiarizado con Azure Logic Apps, revise la siguiente documentación para empezar:
Ediciones compatibles de SQL
El conector de SQL Server admite las siguientes ediciones de SQL:
Referencia técnica del conector
El conector de SQL Server tiene diferentes versiones, en función del tipo de aplicación lógica y del entorno de host.
Aplicación lógica | Entorno | Versión del conector |
---|---|---|
Consumo | Azure Logic Apps multiinquilino | Conector administrado, que aparece en la galería de conectores en Runtime>Compartido. Para más información, revise la siguiente documentación: - Referencia del conector administrado por SQL Server - Conectores administrados en Azure Logic Apps |
Estándar | Azure Logic Apps de inquilino único y App Service Environment v3 (solo planes de Windows) | El conector administrado, que aparece en la galería de conectores en Runtime>Compartido y el conector integrado, que aparece en la galería de conectores en Runtime>En la aplicación y se basa en el proveedor de servicios. El conector integrado difiere de las siguientes maneras: - El conector integrado puede conectarse directamente a una base de datos SQL y acceder a redes virtuales de Azure mediante una cadena de conexión sin una puerta de enlace de datos local. Para más información, revise la siguiente documentación: - Referencia del conector administrado por SQL Server - Referencia del conector integrado de SQL Server - Conectores integrados en Azure Logic Apps |
Limitaciones
Para obtener más información, revise la referencia del conector administrado de SQL Server o la referencia del conector integrado de SQL Server.
Requisitos previos
Una cuenta y una suscripción de Azure. Si aún no tiene una, regístrese para obtener una cuenta de Azure gratuita.
Una base de datos SQL Server o Azure SQL Database o, alternativamente, una instancia de SQL Managed Instance.
Para que las operaciones del conector puedan devolver resultados cuando se las llama, el conector de SQL Server es necesario que las tablas contengan datos. Por ejemplo, si usa Azure SQL Database, puede usar las bases de datos de ejemplo incluidas para probar las operaciones del conector de SQL Server.
La información necesaria para crear una conexión de base de datos SQL, como los nombres de la base de datos y el servidor SQL. Si usa la autenticación de Windows o SQL Server para autenticar el acceso, también necesitará el nombre de usuario y la contraseña. Normalmente, podrá encontrar esta información en la cadena de conexión.
Importante
Si usa una cadena de conexión de SQL Server que copió directamente desde Azure Portal, deberá agregar la contraseña a esta manualmente. Para la información confidencial, como esta cadena, asegúrese de usar el flujo de autenticación más seguro disponible. Microsoft recomienda autenticar el acceso a los recursos de Azure con una identidad administrada siempre que sea posible y asignar un rol que tenga los privilegios mínimos necesarios.
Si esta capacidad no está disponible, asegúrese de proteger las cadenas de conexión mediante otras medidas, como Azure Key Vault, que puede usar con la configuración de la aplicación en los flujos de trabajo estándar. De ese modo, puede hacer referencia directamente a cadenas seguras, como claves y cadenas de conexión. De forma similar a las plantillas de ARM, donde puede definir variables de entorno en el momento de la implementación, puede definir la configuración de la aplicación dentro de la definición de flujo de trabajo estándar de la aplicación lógica. A continuación, puede capturar valores de infraestructura generados dinámicamente, como puntos de conexión, cadenas de almacenamiento, etc. Para más información, consulte Tipos de aplicaciones para la plataforma de identidad de Microsoft.
En las bases de datos SQL en Azure, las cadenas de conexión tienen el siguiente formato:
Server=tcp:{your-server-name}.database.windows.net,1433;Initial Catalog={your-database-name};Persist Security Info=False;User ID={your-user-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Para buscar esta cadena en Azure Portal, abra la base de datos.
En el menú de la base de datos, vaya a Propiedades y seleccione Cadenas de conexión.
En los servidores SQL locales, las cadenas de conexión tienen el siguiente formato:
Server={your-server-address};Database={your-database-name};User Id={your-user-name};Password={your-password};
En flujos de trabajo Estándar, para usar los desencadenadores integrados de SQL, debe habilitar el seguimiento de cambios en la tabla donde desea usar el desencadenador. Para obtener más información, consulte Habilitar y deshabilitar el seguimiento de cambios.
El flujo de trabajo de la aplicación lógica desde donde quiere acceder a la base de datos SQL. Para iniciar el flujo de trabajo mediante un desencadenador de SQL Server, deberá empezar con un flujo de trabajo en blanco. Para usar una acción de SQL Server, inicie el flujo de trabajo con cualquier desencadenador.
Para conectarse a una instancia de SQL Server local, se aplican los siguientes requisitos adicionales, en función de si tiene un flujo de trabajo de aplicación lógica de consumo o estándar.
Flujo de trabajo de consumo
En escenarios con el modelo multiinquilino de Azure Logic Apps, necesitará haber instalado la puerta de enlace de datos local en un equipo local y un recurso de puerta de enlace de datos que ya se haya creado en Azure.
Flujo de trabajo Estándar
Puede usar el conector integrado SQL Server o el conector administrado.
Para usar la autenticación de Microsoft Entra o la autenticación de identidad administrada con la aplicación lógica, debe configurar SQL Server para que funcione con estos tipos de autenticación. Para más información, consulte Autenticación: referencia del conector administrado de SQL Server.
Para usar el conector integrado, puede autenticar la conexión con una identidad administrada, Microsoft Entra ID o una cadena de conexión. Puede ajustar la agrupación de conexiones especificando parámetros en la cadena de conexión. Para obtener más información, revise Connection Pooling (Agrupación de conexiones).
Para usar el conector administrado de SQL Server, siga los mismos requisitos que para los flujos de trabajo de aplicaciones lógicas de consumo en la modalidad multiinquilino de Azure Logic Apps. Para conocer otros requisitos del conector, revise la referencia del conector administrado de SQL Server.
Adición de un desencadenador de SQL Server
Aunque en los siguientes pasos se usa Azure Portal, también puede usar las siguientes herramientas para crear flujos de trabajo de aplicaciones lógicas si usa la extensión Azure Logic Apps adecuada:
Flujos de trabajo basados en consumo: Visual Studio o Visual Studio Code
Flujos de trabajo estándar: Visual Studio Code
En Azure Portal, abra su aplicación lógica de consumo y el flujo de trabajo en blanco en el diseñador.
En el diseñador, debajo del cuadro de búsqueda, seleccione Estándar. A continuación, siga estos pasos generales para agregar el desencadenador administrado de SQL Server que desee.
En este ejemplo, se seleccionará el desencadenador denominado Cuando se crea un elemento.
Si se le solicita, proporcione la información para la conexión. Seleccione Crear cuando haya terminado.
Una vez que aparezca el cuadro de información del desencadenador, proporcione la información necesaria requerida por el desencadenador seleccionado.
En este ejemplo, en el desencadenador denominado Cuando se crea un elemento, proporcione los valores para el nombre de la base de datos y el nombre del servidor de SQL, si no los proporcionó anteriormente. De lo contrario, seleccione la tabla que desea usar en la lista Nombre de tabla. Seleccione la Frecuencia e Intervalo para establecer la programación del desencadenador para comprobar si hay nuevos elementos.
Si hay otras propiedades disponibles para este desencadenador, abra la lista Agregar nuevo parámetro y seleccione esas propiedades pertinentes para su escenario.
Este desencadenador solo devuelve una fila de la tabla seleccionada. Para realizar otras tareas, agregue una Acción del conector de SQL Server u otra acción que realice la siguiente tarea que desee en el flujo de trabajo de la aplicación lógica.
Por ejemplo, para ver los datos de esta fila, puede agregar otras acciones que creen un archivo que incluya los campos de la fila devuelta y, luego, que luego envíen alertas por correo electrónico. Para información sobre otras acciones disponibles para este conector, consulte la página de referencia del conector administrado por SQL Server.
Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).
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 la base de datos SQL en función de la programación especificada. Tiene que añadir una acción que responda al desencadenador.
Adición de una acción de SQL Server
Aunque en los siguientes pasos se usa Azure Portal, la extensión Azure Logic Apps adecuada también le permitirá usar Visual Studio para editar flujos de trabajo de aplicaciones lógicas basados en consumo, o Visual Studio Code para editar para editar flujos de trabajo de aplicaciones lógicas mediante las siguientes herramientas:
Flujos de trabajo basados en consumo: Visual Studio o Visual Studio Code
Flujos de trabajo estándar: Visual Studio Code
En el siguiente ejemplo, el flujo de trabajo de la aplicación lógica empieza con el desencadenador de periodicidad y llama a una acción que obtiene una fila de una base de datos SQL.
En el Azure Portal, abra su aplicación lógica de consumo y su flujo de trabajo en el diseñador.
En el diseñador, siga estos pasos generales para agregar la acción administrada de SQL Server que desea.
Este ejemplo continúa con la acción denominada Obtener fila, que obtiene un único registro.
Si se le solicita, proporcione la información para la conexión. Seleccione Crear cuando haya terminado.
Una vez que aparezca el cuadro de información de acción, en la lista Nombre de tabla, seleccione la tabla que desea usar. En la propiedad Id. de fila, escriba el id. del registro que desee usar.
En este ejemplo, el nombre de la tabla es SalesLT.Customer.
Esta acción únicamente devuelve una fila de la tabla seleccionada. Para ver los datos de esta fila, agregue otras acciones. Por ejemplo, estas acciones pueden crear un archivo, incluir los campos de la fila devuelta y almacenar el archivo en una cuenta de almacenamiento en la nube. Para información sobre otras acciones disponibles para este conector, consulte la página de referencia del conector.
Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).
Conexión a la base de datos
Al agregar un desencadenador o una acción que se conecta a un servicio o sistema, y no tiene una conexión existente o activa, Azure Logic Apps le pide que proporcione la información de conexión, que varía en función del tipo de conexión, por ejemplo:
- Las credenciales de la cuenta
- El nombre que se va a usar para la conexión
- Nombre del sistema o servidor
- Tipo de autenticación que se debe usar.
- Una cadena de conexión
Después de proporcionar esta información, continúe con los pasos siguientes en función de la base de datos de destino:
- Conexión a instancias de Azure SQL Database o SQL Managed Instance basadas en la nube
- Conexión a un servidor SQL Server local
Conexión a instancias de Azure SQL Database o SQL Managed Instance
Para acceder a una instancia administrada de SQL sin usar la puerta de enlace de datos local, debe configurar el punto de conexión público en la instancia administrada de SQL. El punto de conexión público usa el puerto 3342 por lo que debe asegurarse de especificar este número de puerto al crear la conexión desde la aplicación lógica.
En el cuadro de información de conexión, realice los pasos siguientes:
En la configuración Nombre de la conexión, especifique el nombre que desea darle a la conexión.
En la configuración Tipo de autenticación, seleccione el proceso de autenticación necesario y habilitado en la base de datos ubicada en la instancia de Azure SQL Database o en SQL Managed Instance:
Autenticación Descripción Cadena de conexión - Solo se admite en flujos de trabajo estándar con el conector integrado SQL Server.
- Escriba la cadena de conexión al servidor SQL y la base de datos.Active Directory OAuth - Solo se admite en flujos de trabajo estándar con el conector integrado SQL Server. Para más información, consulte la siguiente documentación:
- Autenticación del conector SQL Server
- Habilitar la autorización abierta con el identificador de Entra de Microsoft (OAuth de Microsoft Entra ID)
- OAuth con Microsoft Entra IDIdentidad administrada de Logic Apps - Compatible con el conector administrado de SQL Server. En flujos de trabajo estándar, este tipo de autenticación está disponible para el conector integrado SQL Server, pero la opción se denomina Identidad administrada.
- Requiere los siguientes elementos:
--- Una identidad administrada válida habilitada en el recurso de la aplicación lógica y que tenga acceso a la base de datos.
--- Acceso de rol Colaborador de base de datos SQL al recurso de SQL Server
--- Acceso al rol Colaborador en el grupo de recursos en que se incluye el recurso de SQL Server.
Para más información, consulte la siguiente documentación:
- Autenticación de identidad administrada para el conector de SQL Server
- SQL - Roles de nivel de servidorEntidad de servicio (aplicación Microsoft Entra) - Compatible con el conector administrado de SQL Server.
- Requiere una aplicación y una entidad de servicio de Microsoft Entra. Para obtener más información, consulte Creación de una aplicación y una entidad de servicio de Microsoft Entra que pueden acceder a los recursos mediante Azure Portal.Microsoft Entra integrado - Compatible con el conector administrado de SQL Server.
- Requiere una identidad administrada válida en Microsoft Entra que esté habilitada en el recurso de la aplicación lógica y tenga acceso a la base de datos. Para más información, consulte los temas siguientes:
- Información general sobre la seguridad de Azure SQL: autenticación
- Autorización del acceso de bases de datos a Azure SQL: autenticación y autorización
- Azure SQL: autenticación integrada de Microsoft EntraSQL Server Authentication - Compatible con el conector administrado de SQL Server.
- Requiere los siguientes elementos:
--- Un recurso de puerta de enlace de datos creado previamente en Azure para su conexión, independientemente de si su aplicación lógica está en Azure Logic Apps multiinquilino.
--- Un nombre de usuario válido y una contraseña segura que se creen y se almacenen en la base de datos SQL Server. Para obtener más información, vea los temas siguientes:
- Información general sobre la seguridad de Azure SQL: autenticación
- Autorización del acceso de bases de datos a Azure SQL: autenticación y autorizaciónEn los ejemplos siguientes se muestra cómo puede aparecer el cuadro de información de conexión si usa el conector administrado de SQL Server y selecciona autenticación integrada de Microsoft Entra:
Flujos de trabajo de consumo
Flujos de trabajo estándar
Después de seleccionar Microsoft Entra integrado, seleccione Iniciar sesión. Seleccione las credenciales de usuario para la autenticación en función de si usa Azure SQL Database o SQL Managed Instance.
Seleccione estos valores para la base de datos:
Propiedad Obligatorio Descripción Nombre del servidor Sí La dirección del servidor SQL. Por ejemplo: Fabrikam-Azure-SQL.database.windows.net. Nombre de la base de datos Sí El nombre de la instancia de la base de datos SQL. Por ejemplo: Fabrikam-Azure-SQL-DB. Nombre de la tabla Sí La tabla que desea usar. Por ejemplo: SalesLT.Customer Sugerencia
Para proporcionar la información de la tabla y la base de datos, tiene estas opciones:
Puede encontrar esta información en la cadena de conexión de la base de datos. Por ejemplo, en Azure Portal, busque y abra la base de datos. En el menú de la base de datos, seleccione la pestaña Cadenas de conexión o Propiedades. En ellas, encontrará esta cadena:
Server=tcp:{your-server-address}.database.windows.net,1433;Initial Catalog={your-database-name};Persist Security Info=False;User ID={your-user-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
De forma predeterminada, las tablas de las bases de datos del sistema se filtran, por lo que es posible que no aparezcan automáticamente al seleccionar una base de datos del sistema. Como alternativa, puede escribir manualmente el nombre de la tabla después de seleccionar Escribir un valor personalizado en la lista de bases de datos.
Este cuadro de información de la base de datos es similar al siguiente ejemplo:
Flujos de trabajo de consumo
Flujos de trabajo estándar
Ahora, continúe con los pasos que todavía no haya completado en Adición de un desencadenador de SQL o Incorporación de una acción de SQL.
Conexión a un servidor SQL Server local
En el cuadro de información de conexión, realice los pasos siguientes:
En el caso de las conexiones a la instancia de SQL Server en el entorno que requieran la puerta de enlace de datos local, asegúrese de haber completado estos requisitos previos.
De lo contrario, su recurso de puerta de enlace de datos no aparecerá en la lista de Puerta de enlace de conexión al crear la conexión.
En Tipo de autenticación, seleccione la autenticación necesaria y habilitada en el servidor SQL Server:
Autenticación Descripción SQL Server Authentication - Compatible con el conector administrado de SQL Server y el conector integrado de SQL Server.
- Requiere los siguientes elementos:
--- Un recurso de puerta de enlace de datos creado previamente en Azure para su conexión, independientemente de si su aplicación lógica está en Azure Logic Apps multiinquilino.
--- Un nombre de usuario válido y una contraseña segura que se creen y se almacenen en el servidor SQL Server.
Para más información, consulte Autenticación de SQL Server.Autenticación de Windows - Compatible con el conector administrado de SQL Server.
- Requiere los siguientes elementos:
--- Un recurso de puerta de enlace de datos creado previamente en Azure para su conexión, independientemente de si su aplicación lógica está en Azure Logic Apps multiinquilino.
--- Un nombre de usuario y contraseña de Windows válidos para confirmar su identidad mediante su cuenta de Windows.
Para obtener más información, vea Autenticación de Windows.Seleccione o proporcione los siguientes valores para la base de datos SQL:
Propiedad Obligatorio Descripción Nombre del servidor SQL Server Sí La dirección de SQL Server; por ejemplo, Fabrikam-Azure-SQL.database.windows.net
Nombre de la instancia de SQL Database Sí El nombre de la base de datos de SQL Server, por ejemplo, Fabrikam-Azure-SQL-DB
Nombre de usuario Sí Su nombre de usuario para el servidor SQL Server y la base de datos Contraseña Sí La contraseña para el servidor SQL Server y la base de datos Suscripción Sí, para la autenticación de Windows La suscripción a Azure para el recurso de puerta de enlace de datos que creó anteriormente en Azure Puerta de enlace de conexión Sí, para la autenticación de Windows El nombre del recurso de puerta de enlace de datos que creó anteriormente en Azure
Sugerencia: si la puerta de enlace no aparece en la lista, compruebe que configuró correctamente la puerta de enlace.Sugerencia
Puede encontrar esta información en la cadena de conexión de la base de datos:
Server={your-server-address}
Database={your-database-name}
User ID={your-user-name}
Password={your-password}
En los ejemplos siguientes se muestra cómo puede aparecer el cuadro de información de conexión si selecciona Autenticación de Windows.
Flujos de trabajo de consumo
Flujos de trabajo estándar
Cuando esté listo, seleccione Crear.
Ahora, continúe con los pasos que todavía no haya completado en Adición de un desencadenador de SQL o Incorporación de una acción de SQL.
Controlar datos masivos
Algunas veces, se trabaja con conjuntos de resultados tan grandes que el conector no devuelve todos a la vez. O bien, quiere tener un mejor control sobre el tamaño y la estructura de los conjuntos de resultados. En la lista siguiente se incluyen algunas maneras de controlar estos conjuntos de resultados tan grandes:
Para ayudarle a administrar los resultados como conjuntos más pequeños, active la paginación. Para obtener más información, consulte el tema sobre la obtención de datos masivos, registros y elementos mediante la paginación. Para más información, consulte Paginación de SQL para la transferencia de datos masiva con Logic Apps.
Cree un procedimiento almacenado que organice los resultados como desee. El conector de SQL Server proporciona muchas características de back-end a las que se puede acceder mediante Azure Logic Apps, lo que permite automatizar más fácilmente las tareas empresariales que funcionan con tablas de base de datos SQL.
Si una acción de SQL obtiene o inserta varias filas, el flujo de trabajo de la aplicación lógica puede iterar a través de estas filas mediante un bucle "Until" dentro de los siguientes límites. No obstante, si su aplicación lógica tiene que trabajar con conjuntos de registros tan grandes, por ejemplo, con miles o millones de filas, y quiere minimizar los costos de las llamadas a la base de datos.
Para organizar los resultados de la manera deseada, puede crear un procedimiento almacenado que se ejecute en la instancia de SQL y use la instrucción SELECT - ORDER BY. Esta solución le permite tener mayor control sobre el tamaño y la estructura de los resultados. La aplicación lógica llama al procedimiento almacenado mediante la acción Ejecutar procedimiento almacenado del conector de SQL Server. Para más información, consulte Cláusula SELECT: ORDER BY.
Nota:
El conector de SQL Server tiene un límite de tiempo de espera de procedimiento almacenado que es inferior a 2 minutos. Algunos procedimientos almacenados pueden tardar más que este límite en completarse, lo que provocaría un error
504 Timeout
. Puede solucionar este problema mediante un desencadenador de finalización de SQL, una consulta de paso a través nativa de SQL, una tabla de estado y trabajos del lado servidor.Para esta tarea, puede usar el agente de trabajos elásticos de Azure para Azure SQL Database. Para servidores locales SQL Server e instancias de SQL Managed Instance, puede usar el Agente SQL Server. Para más información, consulte Control de los tiempos de espera de los procedimientos almacenados de ejecución prolongada en el conector de SQL Server para Azure Logic Apps.
Manipulación de datos dinámicos masivos
Cuando llama a un procedimiento almacenado con el conector de SQL Server, a veces, la salida devuelta es dinámica. En este ejemplo, siga estos pasos:
En Azure Portal, abra la aplicación lógica y el flujo de trabajo en el diseñador.
Para ver el formato de salida, realice una serie de pruebas. Copie y guarde la salida del ejemplo.
En el diseñador, en la acción donde se llama al procedimiento almacenado, agregue la acción integrada denominada Analizar JSON.
En la acción Análisis del archivo JSON, seleccione Usar una carga de ejemplo para generar el esquema.
En la ventana Enter or paste a sample JSON payload (Especificar o pegar una carga JSON de ejemplo), proporcione una salida de ejemplo y seleccione Listo.
Nota:
Si recibe un error que dice que Azure Logic Apps no puede generar un esquema, compruebe que la sintaxis de la salida de ejemplo tiene el formato correcto. Si sigue sin poder generar el esquema, escríbalo manualmente en el cuadro Esquema.
Cuando haya terminado, guarde el flujo de trabajo.
Para hacer referencia a las propiedades de contenido JSON, seleccione dentro de los cuadros de edición en los que desea hacer referencia a esas propiedades para que aparezca la lista de contenido dinámico. En la lista, en el encabezado Analizar JSON, seleccione los tokens de datos para las propiedades de contenido JSON que desee.