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 Directory
  • Command 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 predeterminado true). La configuración adicional para la agrupación de conexiones incluye Connection Lifetime, Max Pool Sizey Min 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 o IMAGE 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ón OPENJSON 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:

Pasos siguientes