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:

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.

Próximos passos