Associações das 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 gravam dados usando o Azure Cosmos DB for Table e o Armazenamento de Tabelas do Azure.
Ação | Type |
---|---|
Ler os dados da tabela em uma função | Associação de entrada |
Permitir que uma função grave os dados da tabela | Associação de saída |
Instalar a extensão
O pacote NuGet da extensão instalado depende do modo C# usado no aplicativo de funções:
As funções são executadas em um processo de trabalho do C# isolado. Para saber mais, confira o Guia para executar C# do Azure Functions em um processo de trabalho isolado.
O processo para instalar a extensão varia de acordo com a versão da extensão:
Essa versão apresenta a capacidade de se conectar usando uma identidade em vez de um segredo. Para ver um tutorial sobre a configuração de aplicativos de funções com identidades gerenciadas, confira o tutorial sobre como criar um aplicativo de funções com conexões baseadas em identidade.
Ela permite que você se associe a tipos do Azure.Data.Tables
. Ela 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 da extensão 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
Observação
Agora, os Blobs do Azure, as Filas do Azure e as Tabelas do Azure usam extensões separadas e são referenciados individualmente. Por exemplo, para usar os gatilhos e as associações para os três serviços no aplicativo de processo isolado .NET, você deve adicionar os seguintes pacotes ao 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 enviadas juntas como Microsoft.Azure.Functions.Worker.Extensions.Storage, versão 4.x. Esse mesmo pacote também tem uma versão 5.x, que faz referência apenas aos pacotes divididos para blobs e filas. Ao atualizar as referências de pacote de versões mais antigas, talvez seja necessário também fazer referência ao novo pacote NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables. Além disso, ao referenciar esses pacotes divididos mais recentes, verifique se você não está 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 representante que usa um parâmetro IFunctionsWorkerApplication
. Em seguida, dentro do corpo desse representante, chame ConfigureTablesExtension()
no 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 no 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, confira pacotes de extensão.
Essa versão apresenta a capacidade de se conectar usando uma identidade em vez de um segredo. Para ver um tutorial sobre a configuração de aplicativos de funções com identidades gerenciadas, confira o tutorial sobre como criar um aplicativo de funções 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 arquivo host.json
:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Tipos de associação
Os tipos de associação com suporte para .NET dependem da versão da extensão e do modo de execução do C#, que pode ser um dos seguintes:
Uma função C# compilada da biblioteca de classes do processo de trabalho isolado é executada em um processo isolado do runtime.
Escolha uma versão para ver os detalhes do tipo de associação para o modo e a versão.
O processo de trabalho isolado dá suporte a tipos de parâmetro de acordo com a tabela abaixo. O suporte à associação aos tipos das Azure.Data.Tables está em versão prévia.
Associação de entrada das Tabelas do Azure
Ao trabalhar com uma única entidade de tabela, a associação de entrada das Tabelas do Azure pode ser associada aos seguintes tipos:
Type | Descrição |
---|---|
Um tipo de JSON serializável que implementa ITableEntity | O Functions tenta desserializar a entidade em um tipo de objeto CRL básico antigo (POCO). O tipo deve implementar uma [ITableEntity] ou ter uma propriedade RowKey de cadeia de caracteres e uma propriedade PartitionKey de cadeia de caracteres. |
TableEntity1 | A entidade como um tipo semelhante a um dicionário. |
Ao trabalhar com várias entidades de uma consulta, a associação de entrada das Tabelas do Azure pode ser associada aos seguintes tipos:
Type | Descrição |
---|---|
IEnumerable<T> onde T implementa ITableEntity |
Uma enumeração de entidades retornada pela consulta. Cada entrada representa uma entidade. O tipo T deve implementar uma [ITableEntity] ou ter uma propriedade RowKey de cadeia de caracteres e uma propriedade PartitionKey de cadeia de caracteres. |
TableClient1 | Um cliente conectado à tabela. Isso oferece a maior parte do 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ê precisará mencionar o Microsoft.Azure.Functions.Worker.Extensions.CosmosDB 1.2.0 ou posterior e as dependências comuns para associações do tipo SDK.
Associação de saída das Tabelas do Azure
Quando você quiser que a função seja gravada em uma única entidade, a associação de saída das Tabelas do Azure poderá ser associada aos seguintes tipos:
Type | Descrição |
---|---|
Um tipo de JSON serializável que implementa [ITableEntity] | O Functions tenta serializar um tipo de objeto CRL básico antigo (POCO) como a entidade. O tipo deve implementar uma [ITableEntity] ou ter uma propriedade RowKey de cadeia de caracteres e uma propriedade PartitionKey de cadeia de caracteres. |
Quando você quiser que a função seja gravada em várias entidades, a associação de saída das Tabelas do Azure poderá ser associada aos seguintes tipos:
Type | Descrição |
---|---|
T[] onde T é um dos tipos de entidade única |
Uma matriz contendo várias entidades. Cada entrada representa uma entidade. |
Para outros cenários de saída, crie e use um TableClient com outros tipos diretamente de Azure.Data.Tables . Consulte Registrar clientes do Azure para obter um exemplo de como usar a injeção de dependência para criar um tipo de cliente do SDK do Azure.