Compartir vía


Enlaces de Azure Tables para Azure Functions

Azure Functions se integra con Azure Tables mediante desencadenadores y enlaces. La integración con Azure Tables permite crear funciones que leen y escriben datos con Azure Cosmos DB for Table y Azure Table Storage.

Acción Tipo
Lectura de datos de tabla en una función Enlace de entrada
Permitir que una función escriba datos de tabla 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.

El proceso para instalar la extensión varía en función de la versión de la extensión:

Esta versión presenta la posibilidad de conectarse con una identidad en lugar de un secreto. Para obtener un tutorial sobre cómo configurar las aplicaciones de funciones con identidades administradas, consulte el tutorial Creación de una aplicación de funciones con conexiones basadas en identidades.

Esta versión permite enlazar con tipos de Azure.Data.Tables. También presenta la capacidad de usar Azure Cosmos DB for Table.

Esta extensión está disponible con la instalación del paquete NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables en un proyecto que use la versión 5.x o posterior de la extensión para blobs y colas.

Mediante la CLI de .NET:

# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0

# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 5.0.0

Nota

Azure Blobs, Azure Queues y Azure Tables ahora usan extensiones diferentes y se les hace referencia por separado. Por ejemplo, para usar los desencadenadores y enlaces de los tres servicios en la aplicación en un proceso aislado de .NET, debe agregar los siguientes paquetes al proyecto:

Antes, las extensiones se distribuían juntas como Microsoft.Azure.Functions.Worker.Extensions.Storage, versión 4.x. Este mismo paquete también tiene una versión 5.x que hace referencia solo a los paquetes divididos para blobs y colas. Al actualizar las versiones anteriores de las referencias del paquete, es posible que tenga que hacer referencia también al nuevo paquete NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables. Además, al hacer referencia a estos paquetes divididos más recientes, asegúrese de que no hace referencia a una versión anterior del paquete de almacenamiento combinado, ya que esto provocaría conflictos por las dos definiciones de los mismos enlaces.

Si va a escribir la aplicación con F#, también debe configurar esta extensión como parte de la configuración de inicio de la aplicación. En la llamada a ConfigureFunctionsWorkerDefaults() o ConfigureFunctionsWebApplication(), agregue un delegado que tome un parámetro IFunctionsWorkerApplication. Después, dentro del cuerpo de ese delegado, llame a ConfigureTablesExtension() en el objeto:

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore

Instalación del conjunto

Para poder usar esta extensión de enlace en la aplicación, asegúrese de que el archivo host.json en la raíz del proyecto contiene esta extensionBundle referencia:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

En este ejemplo, el version valor de [4.0.0, 5.0.0) indica al host de Functions que use una versión de agrupación que sea al menos 4.0.0 pero menor 5.0.0que , que incluye todas las versiones potenciales de 4.x. Esta notación mantiene eficazmente la aplicación en la versión secundaria más reciente disponible del paquete de extensiones v4.x.

Cuando sea posible, debe usar la versión principal del paquete de extensiones más reciente y permitir que el tiempo de ejecución mantenga automáticamente la versión secundaria más reciente. Puede ver el contenido de la agrupación más reciente en la página de versión de paquetes de extensiones. Para más información, consulte Paquetes de extensiones de Azure Functions.

Tipos de enlaces

Los tipos de enlace admitidos para .NET dependen de la versión de extensión y del modo de ejecución de C#, que puede ser uno de los siguientes:

Una función de C# compilada de la biblioteca de clases de procesos de trabajo aislados se ejecuta en un proceso aislado del entorno de ejecución.

Seleccione una versión para ver los detalles del tipo de enlace para el modo y la versión.

El proceso de trabajo aislado admite tipos de parámetros según las tablas siguientes. El soporte para enlazar a tipos desde Azure.Data.Tables está en versión preliminar.

Enlace de entrada de Azure Tables

Al trabajar con una sola entidad de tabla, el enlace de entrada de Azure Tables puede enlazarse a los siguientes tipos:

Tipo Descripción
Un tipo serializable JSON que implementa ITableEntity Functions intenta deserializar la entidad en un tipo de objeto CRL estándar (POCO). El tipo debe implementar ITableEntity o tener una propiedad de cadena RowKey y una propiedad de cadena PartitionKey.
TableEntity1 La entidad como tipo de diccionario.

Al trabajar con varias entidades desde una consulta, el enlace de entrada de Azure Tables puede enlazarse a los siguientes tipos:

Tipo Descripción
IEnumerable<T> donde T implementa ITableEntity Una enumeración de entidades devueltas por la consulta. Cada entrada representa una entidad. El tipo T debe implementar ITableEntity o tener una propiedad de cadena RowKey y una propiedad de cadena PartitionKey.
TableClient1 Un cliente conectado a la tabla. Ofrece el mayor control para procesar la tabla y puede utilizarse para escribir en ella si la conexión tiene permisos suficientes.

1 Para usar estos tipos, es necesario hacer referencia a Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 o posterior y a las dependencias comunes para los enlaces de tipo de SDK.

Enlace de salida de Azure Tables

Cuando quiera que la función escriba en una sola entidad, el enlace de salida de Azure Tables puede enlazarse a los siguientes tipos:

Tipo Descripción
Tipo serializable JSON que implementa [ITableEntity] Functions intenta serializar un tipo de objeto de SQL Server (POCO) como entidad. El tipo debe implementar [ITableEntity] o tener una propiedad de cadena RowKey y una propiedad de cadena PartitionKey.

Cuando quiera que la función escriba en múltiples entidades, el enlace de salida de Azure Tables puede enlazarse a los siguientes tipos:

Tipo Descripción
T[] donde T es uno de los tipos de entidad único Matriz que contiene varias entidades. Cada entrada representa una entidad.

Para otros escenarios de salida, cree y use tableClientcon otros tipos de Azure.Data.Tables directamente. Consulte Registro de clientes de Azure para obtener un ejemplo de uso de la inserción de dependencias para crear un tipo de cliente a partir del SDK de Azure.

Pasos siguientes