Associazioni di tabelle di Azure per Funzioni di Azure

Funzioni di Azure si integra con Tabelle di Azure tramite trigger e associazioni. L'integrazione con tabelle di Azure consente di creare funzioni che leggono e scrivono dati usando Azure Cosmos DB per tabelle e tabelle di Azure Archiviazione.

Azione Type
Leggere i dati della tabella in una funzione Associazione di input
Consentire a una funzione di scrivere dati di tabella Associazione di output

Installare l'estensione

Il pacchetto NuGet di estensione installato dipende dalla modalità C# usata nell'app per le funzioni:

Le funzioni sono eseguite in un processo di lavoro C# isolato. Per altre informazioni, vedere Guida per l'esecuzione di Funzioni di Azure C# in un processo di lavoro isolato.

Il processo di installazione dell'estensione varia a seconda della versione dell'estensione:

Questa versione introduce la possibilità di connettersi usando un'identità anziché un segreto. Per un'esercitazione sulla configurazione delle app per le funzioni con identità gestite, vedere l'esercitazione sulla creazione di un'app per le funzioni con connessioni basate su identità.

Questa versione consente di eseguire l'associazione ai tipi da Azure.Data.Tables. Introduce anche la possibilità di usare Azure Cosmos DB per la tabella.

Questa estensione è disponibile installando il pacchetto NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables in un progetto usando la versione 5.x o successiva delle estensioni per BLOB e code.

Uso dell'interfaccia della riga di comando di .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

I BLOB di Azure, le code di Azure e le tabelle di Azure ora usano estensioni separate e fanno riferimento singolarmente. Ad esempio, per usare i trigger e le associazioni per tutti e tre i servizi nell'app con processo isolato .NET, è necessario aggiungere i pacchetti seguenti al progetto:

In precedenza, le estensioni fornite insieme come Microsoft.Azure.Functions.Worker.Extensions.Archiviazione, versione 4.x. Questo stesso pacchetto ha anche una versione 5.x, che fa riferimento solo ai pacchetti divisi per BLOB e code. Quando si aggiornano i riferimenti al pacchetto da versioni precedenti, potrebbe quindi essere necessario fare riferimento al nuovo pacchetto NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables . Inoltre, quando si fa riferimento a questi pacchetti di divisione più recenti, assicurarsi di non fare riferimento a una versione precedente del pacchetto di archiviazione combinato, in quanto ciò comporterà conflitti da due definizioni delle stesse associazioni.

Se si scrive l'applicazione usando F#, è necessario configurare questa estensione anche come parte della configurazione di avvio dell'app. Nella chiamata a ConfigureFunctionsWorkerDefaults() o ConfigureFunctionsWebApplication()aggiungere un delegato che accetta un IFunctionsWorkerApplication parametro. Quindi, all'interno del corpo del delegato, chiamare ConfigureTablesExtension() sull'oggetto :

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

Installare il bundle

Le associazioni di tabelle di Azure fanno parte di un bundle di estensione, specificato nel file di progetto host.json. Potrebbe essere necessario modificare questo bundle per modificare la versione delle associazioni o se i bundle non sono già installati. Per altre informazioni, vedere bundle di estensioni.

Questa versione introduce la possibilità di connettersi usando un'identità anziché un segreto. Per un'esercitazione sulla configurazione delle app per le funzioni con identità gestite, vedere l'esercitazione sulla creazione di un'app per le funzioni con connessioni basate su identità.

È possibile aggiungere questa versione dell'estensione dal bundle di estensione v3 aggiungendo o sostituendo il codice seguente nel host.json file:

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

Tipi di associazioni

I tipi di associazione supportati per .NET dipendono sia dalla versione dell'estensione che dalla modalità di esecuzione C#, che può essere una delle seguenti:

Una libreria di classi di processo di lavoro isolata compilata C# viene eseguita in un processo isolato dal runtime.

Scegliere una versione per visualizzare i dettagli del tipo di associazione per la modalità e la versione.

Il processo di lavoro isolato supporta i tipi di parametro in base alle tabelle seguenti. Il supporto per l'associazione ai tipi da Azure.Data.Tables è disponibile in anteprima.

Associazione di input tabelle di Azure

Quando si usa una singola entità di tabella, l'associazione di input tabelle di Azure può essere associata ai tipi seguenti:

Tipo Descrizione
Tipo serializzabile JSON che implementa ITableEntity Funzioni tenta di deserializzare l'entità in un tipo POCO (Plain-Old CLR Object). Il tipo deve implementare ITableEntity o avere una proprietà stringa RowKey e una proprietà stringa PartitionKey .
TableEntity1 Entità come tipo di dizionario.

Quando si usano più entità da una query, l'associazione di input tabelle di Azure può essere associata ai tipi seguenti:

Tipo Descrizione
IEnumerable<T> dove T implementa ITableEntity Enumerazione delle entità restituite dalla query. Ogni voce rappresenta un'entità. Il tipo T deve implementare ITableEntity o avere una proprietà stringa RowKey e una proprietà stringa PartitionKey .
TableClient1 Un client connesso alla tabella. Ciò offre il controllo più importante per l'elaborazione della tabella e può essere usato per scrivervi se la connessione dispone di autorizzazioni sufficienti.

1 Per usare questi tipi, è necessario fare riferimento a Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 o versioni successive e alle dipendenze comuni per le associazioni di tipi SDK.

Associazione di output tabelle di Azure

Quando si vuole che la funzione scriva in una singola entità, l'associazione di output tabelle di Azure può essere associata ai tipi seguenti:

Tipo Descrizione
Tipo serializzabile JSON che implementa [ITableEntity] Funzioni tenta di serializzare un tipo POCO (Plain-Old CLR Object) come entità. Il tipo deve implementare [ITableEntity] o avere una proprietà stringa RowKey e una proprietà stringa PartitionKey .

Quando si vuole che la funzione scriva in più entità, l'associazione di output tabelle di Azure può essere associata ai tipi seguenti:

Tipo Descrizione
T[] dove T è uno dei singoli tipi di entità Matrice contenente più entità. Ogni voce rappresenta un'entità.

Per altri scenari di output, creare e usare i tipi direttamente da Azure.Data.Tables .

Passaggi successivi