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 Archiviazione tabelle di Azure.
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 Creazione di un'app per le funzioni con connessioni basate sull'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:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
In precedenza, le estensioni fornite insieme come Microsoft.Azure.Functions.Worker.Extensions.Storage, 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 Creazione di un'app per le funzioni con connessioni basate sull'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 di C#, che può essere una delle seguenti:
Una funzione C# compilata di libreria di classi di processo di lavoro 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 un oggetto TableClient con altri tipi direttamente da Azure.Data.Tables . Vedere Registrare i client di Azure per un esempio di uso dell'inserimento delle dipendenze per creare un tipo di client da Azure SDK.