Introducción a los enlaces de Azure SQL para Azure Functions
En este conjunto de artículos se explica cómo trabajar con enlaces de Azure SQL en Azure Functions. Azure Functions admite enlaces de entrada y salida y un desencadenador de funciones para los productos de Azure SQL y SQL Server.
Acción | Tipo |
---|---|
Desencadenar una función cuando se detecta un cambio en una tabla SQL | Desencadenador de SQL |
Lectura de datos de una base de datos | Enlace de entrada |
Guardado de datos en una base de datos | Enlace de salida |
Instalación de la extensión
El paquete NuGet de la extensión que instale depende del modo de C# que esté usando en la aplicación de funciones:
Las funciones se ejecutan en un proceso de trabajo de C# aislado. Para más información, consulte Guía para ejecutar C# Azure Functions en un proceso de trabajo aislado.
Para agregar la extensión al proyecto, instale este paquete NuGet.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql
A fin de usar una versión preliminar del paquete Microsoft.Azure.Functions.Worker.Extensions.Sql, agrega la marca --prerelease
al comando. Puede ver la funcionalidad de vista previa en la página de versión de Extensiones sql de Azure Functions.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Sql --prerelease
Nota:
Los cambios entre versiones preliminares de los enlaces de Azure SQL para Azure Functions requieren que todas las funciones que se dirijan a la misma base de datos utilicen la misma versión del paquete de extensión de SQL.
Instalación del conjunto
La extensión de enlaces de SQL forma parte del conjunto de extensiones v4, que se especifica en el archivo del proyecto host.json.
En el siguiente código del archivo host.json
se especifica el conjunto de extensiones:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Sistema en tiempo de ejecución de Functions
Instalación del conjunto
La extensión de enlaces de SQL forma parte del conjunto de extensiones v4, que se especifica en el archivo del proyecto host.json.
En el siguiente código del archivo host.json
se especifica el conjunto de extensiones:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Instalación del conjunto
La extensión de enlaces de SQL forma parte del conjunto de extensiones v4, que se especifica en el archivo del proyecto host.json.
En el siguiente código del archivo host.json
se especifica el conjunto de extensiones:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Actualizar paquetes
Agregue la biblioteca de Java de enlaces SQL al proyecto de Functions con una actualización en el archivo pom.xml
del proyecto de Azure Functions para Java, como se muestra en el siguiente fragmento de código:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0</version>
</dependency>
Puedes usar el conjunto de extensión de la versión preliminar con una actualización en el archivo pom.xml
del proyecto de Azure Functions para Java, como se muestra en el siguiente fragmento de código:
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-sql</artifactId>
<version>2.1.0-preview</version>
</dependency>
Cadena de conexión de SQL
Los enlaces de Azure SQL para Azure Functions tienen una propiedad obligatoria para la cadena de conexión en todos los enlaces y desencadenadores. Estos pasan la cadena de conexión a la biblioteca Microsoft.Data.SqlClient y admiten la cadena de conexión como se define en la documentación de ConnectionString de SqlClient. Las palabras clave importantes incluyen las siguientes:
Authentication
permite que una función se conecte a Azure SQL con Microsoft Entra ID, incluida la identidad administrada de Active DirectoryCommand Timeout
permite que una función espere la cantidad de tiempo especificada en segundos antes de finalizar una consulta (el valor predeterminado es 30 segundos)ConnectRetryCount
permite que una función realice automáticamente intentos de reconexión adicionales, en especial los aplicables al nivel sin servidor de Azure SQL Database (valor predeterminado 1)Pooling
permite que una función reutilice las conexiones a la base de datos, lo que puede mejorar el rendimiento (valor predeterminadotrue
). La configuración adicional para la agrupación de conexiones incluyeConnection Lifetime
,Max Pool Size
yMin Pool Size
. Más información sobre la agrupación de conexiones en la documentación de ADO.NET
Consideraciones
- El enlace de Azure SQL admite tanto la versión 4.x del entorno de ejecución de Functions como las posteriores.
- El código fuente de los enlaces de Azure SQL se puede encontrar en este repositorio de GitHub.
- Este enlace requiere conectividad a una base de datos de Azure SQL o SQL Server.
- No se admiten enlaces de salida en tablas con columnas de tipos de datos
NTEXT
,TEXT
oIMAGE
y se produce un error en las operaciones upsert de datos. Estos tipos se van a quitar en una versión futura de SQL Server y no son compatibles con la funciónOPENJSON
empleada por este enlace de Azure Functions.
Ejemplos
Además de los ejemplos para C#, Java, JavaScript, PowerShell y Python disponibles en el repositorio de GitHub de enlaces de Azure SQL, hay más disponibles en Ejemplos de Azure:
- Ejemplo de ToDo API de C# con enlaces de Azure SQL
- Uso de enlaces de SQL en Azure Stream Analytics
- Envío de datos desde Azure SQL con Python