Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Functions integra-se com o Armazenamento do Azure por meio de gatilhos e associações. A integração com o armazenamento de Blob permite criar funções que reagem a alterações nos dados de blob, bem como valores de leitura e gravação.
| Ação | Tipo |
|---|---|
| Executar uma função como alterações de dados de armazenamento de blob | Acionador |
| Ler dados de armazenamento de blob em uma função | Vinculação de entrada |
| Permitir que uma função escreva dados de armazenamento de blob | 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.
A funcionalidade 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ê se associe a tipos de Azure.Storage.Blobs. Saiba mais sobre como esses novos tipos são diferentes e WindowsAzure.StorageMicrosoft.Azure.Storage como migrar para eles no Guia de Migração Azure.Storage.Blobs.
Esta versão suporta a configuração de gatilhos e ligações através da integração do .NET Aspire .
Adicione a extensão ao seu projeto instalando o pacote NuGet Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs, versão 5.x ou posterior.
Usando a CLI do .NET:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
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 ConfigureBlobStorageExtension() o objeto:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureBlobStorageExtension() |> ignore
) |> ignore
Instalar pacote
Para poder usar essa extensão de associação em seu aplicativo, certifique-se de que o arquivo dehost.json na raiz do seu projeto contém esta extensionBundle referência:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Neste exemplo, o version valor de instrui o host Functions a usar uma versão de [4.0.0, 5.0.0) pacote que seja pelo menos 4.0.0 , mas menor que 5.0.0, que inclui todas as versões potenciais do 4.x. Essa notação mantém efetivamente seu aplicativo na versão secundária mais recente disponível do pacote de extensão v4.x.
Quando possível, você deve usar a versão principal mais recente do pacote de extensão e permitir que o tempo de execução mantenha automaticamente a versão secundária mais recente. Você pode visualizar o conteúdo do pacote mais recente na página de lançamento dos pacotes de extensão. Para obter mais informações, consulte Pacotes de extensão do Azure Functions.
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.
Gatilho de blob
O gatilho de blob pode se ligar aos seguintes tipos:
| Tipo | Descrição |
|---|---|
string |
O conteúdo de blob como uma cadeia de caracteres. Use quando o conteúdo do blob for texto simples. |
byte[] |
Os bytes do conteúdo do blob. |
| Tipos serializáveis JSON | Quando um blob contém dados JSON, o Functions tenta desserializar os dados JSON em um tipo de objeto CLR (POCO) simples. |
| Fluxo1 | Um fluxo de entrada do conteúdo do blob. |
|
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Um cliente conectado ao blob. Esse conjunto de tipos oferece mais controle para processar o blob e pode ser usado para gravar novamente no blob se a conexão tiver permissão suficiente. |
1 Para usar esses tipos, você precisa fazer referência a Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 ou posterior e às dependências comuns para associações de tipo SDK.
Ligação de entrada de Blob
Quando você deseja que a função processe um único blob, a ligação de entrada de blob pode se vincular aos seguintes tipos:
| Tipo | Descrição |
|---|---|
string |
O conteúdo de blob como uma cadeia de caracteres. Use quando o conteúdo do blob for texto simples. |
byte[] |
Os bytes do conteúdo do blob. |
| Tipos serializáveis JSON | Quando um blob contém dados JSON, o Functions tenta desserializar os dados JSON em um tipo de objeto CLR (POCO) simples. |
| Fluxo1 | Um fluxo de entrada do conteúdo do blob. |
|
BlobClient1, BlockBlobClient1, PageBlobClient1, AppendBlobClient1, BlobBaseClient1 |
Um cliente conectado ao blob. Esse conjunto de tipos oferece o maior controle para processar o blob e pode ser usado para gravar nele se a conexão tiver permissão suficiente. |
Quando você deseja que a função processe vários blobs de um contêiner, a ligação de entrada de blob pode se vincular aos seguintes tipos:
| Tipo | Descrição |
|---|---|
T[] ou List<T> onde T é um dos tipos de ligação de entrada de blob único |
Uma matriz ou lista de vários blobs. Cada entrada representa um blob do contêiner. Você também pode vincular a quaisquer interfaces implementadas por esses tipos, como IEnumerable<T>. |
| BlobContainerClient1 | Um cliente conectado ao contêiner. Esse tipo oferece o maior controle para processar o contêiner e pode ser usado para gravar nele se a conexão tiver permissão suficiente. |
1 Para usar esses tipos, você precisa fazer referência a Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 6.0.0 ou posterior e às dependências comuns para associações de tipo SDK.
Ligação de saída de blob
Quando você deseja que a função grave em um único blob, a ligação de saída de blob pode se vincular aos seguintes tipos:
| Tipo | Descrição |
|---|---|
string |
O conteúdo de blob como uma cadeia de caracteres. Use quando o conteúdo do blob for texto simples. |
byte[] |
Os bytes do conteúdo do blob. |
| Tipos serializáveis JSON | Um objeto que representa o conteúdo de um blob JSON. As funções tentam serializar um tipo de objeto CLR (POCO) antigo em dados JSON. |
Quando você deseja que a função grave em vários blobs, a ligação de saída de blob pode se vincular aos seguintes tipos:
| Tipo | Descrição |
|---|---|
T[] onde T é um dos tipos de ligação de saída de blob único |
Uma matriz que contém conteúdo para vários blobs. Cada entrada representa o conteúdo de um blob. |
Para outros cenários de saída, crie e use um BlobClient ou BlobContainerClient com outros tipos de Azure.Storage.Blobs 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.
Tipos de vinculação SDK
Os Tipos de SDK para o Blob de Armazenamento do Azure estão geralmente disponíveis! Siga o exemplo Python SDK Bindings for Blob para começar a usar os tipos de SDK para Blob em Python.
Importante
Usar associações de tipo SDK requer o modelo de programação Python v2.
| Enlace | Tipos de parâmetros | Exemplos |
|---|---|---|
| gatilho de blob |
BlobClient, ContainerClient, StorageStreamDownloader |
BlobClient,ContainerClient,StorageStreamDownloader |
| Entrada de Blob |
BlobClient, ContainerClient, StorageStreamDownloader |
BlobClient,ContainerClient,StorageStreamDownloader |
host.json configurações
Esta seção descreve as definições de configuração do aplicativo de função disponíveis para funções que usam essa associação. Essas configurações só se aplicam ao usar a extensão versão 5.0.0 e superior. O exemplo host.json arquivo abaixo contém apenas as configurações da versão 2.x+ para essa ligação. Para obter mais informações sobre definições de configuração de aplicativo de função nas versões 2.x e versões posteriores, consulte host.json referência para o Azure Functions.
Nota
Esta seção não se aplica a versões de extensão anteriores à 5.0.0. Para essas versões anteriores, não há nenhuma definição de configuração funcional em todo o aplicativo para blobs.
{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": 4,
"poisonBlobThreshold": 1
}
}
}
| Propriedade | Predefinição | Descrição |
|---|---|---|
| maxGraudeParalelismo | 8 * (o número de núcleos disponíveis) | O número inteiro de invocações simultâneas permitido para todas as funções acionadas por blob em um determinado aplicativo de função. O valor mínimo permitido é 1. |
| poisonBlobThreshold | 5 | O número inteiro de vezes para tentar processar uma mensagem antes de movê-la para a fila de venenos. O valor mínimo permitido é 1. |