Associações de Tabelas do Azure para o Azure Functions
O Azure Functions integra-se com as Tabelas do Azure por meio de gatilhos e associações. A integração com as Tabelas do Azure permite criar funções que leem e escrevem dados utilizando o Azure Cosmos DB para Tabela e o Armazenamento de Tabelas do Azure.
Ação | Type |
---|---|
Ler dados da tabela em uma função | Vinculação de entrada |
Permitir que uma função escreva dados da tabela | Vinculação de saída |
Instalar a extensão
O pacote de extensão NuGet que você instala depende do modo C# que você está usando em seu aplicativo de função:
As funções são executadas em um processo de trabalho C# isolado. Para saber mais, consulte Guia para executar o C# Azure Functions em um processo de trabalho isolado.
O processo de instalação da extensão varia dependendo da versão da extensão:
Esta versão introduz a capacidade de se conectar usando uma identidade em vez de um segredo. Para obter um tutorial sobre como configurar seus aplicativos de função com identidades gerenciadas, consulte o tutorial de criação de um aplicativo de função com conexões baseadas em identidade.
Esta versão permite que você vincule a tipos de Azure.Data.Tables
. Ele também apresenta a capacidade de usar o Azure Cosmos DB for Table.
Essa extensão está disponível instalando o pacote NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables em um projeto usando a versão 5.x ou superior das extensões para blobs e filas.
Usando a CLI do .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
Os Blobs do Azure, as Filas do Azure e as Tabelas do Azure agora usam extensões separadas e são referenciados individualmente. Por exemplo, para usar os gatilhos e associações para todos os três serviços em seu aplicativo de processo isolado .NET, você deve adicionar os seguintes pacotes ao seu projeto:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
Anteriormente, as extensões eram fornecidas juntas como Microsoft.Azure.Functions.Worker.Extensions.Storage, versão 4.x. Este mesmo pacote também tem uma versão 5.x, que faz referência aos pacotes divididos apenas para blobs e filas. Ao atualizar suas referências de pacote de versões mais antigas, talvez seja necessário fazer referência adicional ao novo pacote NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables . Além disso, ao fazer referência a esses pacotes divididos mais recentes, certifique-se de não estar fazendo referência a uma versão mais antiga do pacote de armazenamento combinado, pois isso resultará em conflitos de duas definições das mesmas associações.
Se você estiver escrevendo seu aplicativo usando F#, também deverá configurar essa extensão como parte da configuração de inicialização do aplicativo. Na chamada para ConfigureFunctionsWorkerDefaults()
ou ConfigureFunctionsWebApplication()
, adicione um delegado que usa um IFunctionsWorkerApplication
parâmetro. Em seguida, dentro do corpo desse delegado, chame ConfigureTablesExtension()
o objeto:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore
Instalar pacote
As associações de Tabelas do Azure fazem parte de um pacote de extensão, que é especificado em seu arquivo de projeto host.json. Talvez seja necessário modificar esse pacote para alterar a versão das associações ou se os pacotes ainda não estiverem instalados. Para saber mais, consulte Pacote de extensão.
Esta versão introduz a capacidade de se conectar usando uma identidade em vez de um segredo. Para obter um tutorial sobre como configurar seus aplicativos de função com identidades gerenciadas, consulte o tutorial de criação de um aplicativo de função com conexões baseadas em identidade.
Você pode adicionar esta versão da extensão do pacote de extensão v3 adicionando ou substituindo o seguinte código em seu host.json
arquivo:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Tipos de vinculação
Os tipos de associação suportados para .NET dependem da versão da extensão e do modo de execução C#, que pode ser um dos seguintes:
Uma biblioteca de classes de processo de trabalho isolada compilada função C# é executada em um processo isolado do tempo de execução.
Escolha uma versão para ver os detalhes do tipo de vinculação para o modo e a versão.
O processo de trabalho isolado suporta tipos de parâmetros de acordo com as tabelas abaixo. O suporte para associação a tipos de Azure.Data.Tables está em visualização.
Vinculação de entrada de Tabelas do Azure
Ao trabalhar com uma única entidade de tabela, a associação de entrada Tabelas do Azure pode se vincular aos seguintes tipos:
Tipo | Description |
---|---|
Um tipo serializável JSON que implementa ITableEntity | Funções tenta desserializar a entidade em um tipo de objeto CLR (POCO) simples. O tipo deve implementar ITableEntity ou ter uma propriedade string RowKey e uma propriedade string PartitionKey . |
TableEntity1 | A entidade como um tipo de dicionário. |
Ao trabalhar com várias entidades de uma consulta, a associação de entrada Tabelas do Azure pode se associar aos seguintes tipos:
Tipo | Description |
---|---|
IEnumerable<T> onde T implementa ITableEntity |
Uma enumeração de entidades retornadas pela consulta. Cada entrada representa uma entidade. O tipo T deve implementar ITableEntity ou ter uma propriedade string RowKey e uma propriedade string PartitionKey . |
TableClient1 | Um cliente conectado à tabela. Isso oferece o maior controle para processar a tabela e pode ser usado para gravar nela se a conexão tiver permissão suficiente. |
1 Para usar esses tipos, você precisa fazer referência a Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 ou posterior e às dependências comuns para associações de tipo SDK.
Vinculação de saída das Tabelas do Azure
Quando você deseja que a função grave em uma única entidade, a associação de saída Tabelas do Azure pode se vincular aos seguintes tipos:
Tipo | Description |
---|---|
Um tipo serializável JSON que implementa [ITableEntity] | As funções tentam serializar um tipo de objeto CLR (POCO) simples como a entidade. O tipo deve implementar [ITableEntity] ou ter uma propriedade string RowKey e uma propriedade string PartitionKey . |
Quando você deseja que a função grave em várias entidades, a associação de saída Tabelas do Azure pode se vincular aos seguintes tipos:
Tipo | Description |
---|---|
T[] onde T é um dos tipos de entidade única |
Uma matriz que contém várias entidades. Cada entrada representa uma entidade. |
Para outros cenários de saída, crie e use um TableClient com outros tipos de Azure.Data.Tables diretamente. Consulte Registrar clientes do Azure para obter um exemplo de como usar a injeção de dependência para criar um tipo de cliente a partir do SDK do Azure.