Compartilhar via


Guia do desenvolvedor do Azure Functions

No Azure Functions, todas as funções compartilham alguns dos principais conceitos técnicos e componentes, independentemente da sua linguagem ou ambiente de desenvolvimento preferido. Esse artigo é específico da linguagem. Escolha sua linguagem preferencial na parte superior do artigo.

Este artigo pressupõe que você já tenha lido a Visão geral do Azure Functions.

Se preferir entrar diretamente, você pode concluir um tutorial de início rápido usando o Visual Studio, Visual Studio Code ou no prompt de comando.

Se preferir entrar diretamente, você pode concluir um tutorial de início rápido usando o Maven (linha de comando), Eclipse, IntelliJ IDEA, Gradle, Quarkus, Spring Cloud ou Visual Studio Code.

Se preferir entrar diretamente, você pode concluir um tutorial de início rápido usando o Visual Studio Code ou no prompt de comando.

Se preferir entrar diretamente, você pode concluir um tutorial de início rápido usando o Visual Studio Code ou no prompt de comando.

Se preferir entrar diretamente, você pode concluir um tutorial de início rápido usando o Visual Studio Code ou no prompt de comando.

Se preferir entrar diretamente, você pode concluir um tutorial de início rápido usando o Visual Studio Code ou no prompt de comando.

Projeto de código

No núcleo do Azure Functions está um projeto de código específico da linguagem que implementa uma ou mais unidades de execução de código chamado funções. As funções são simplesmente métodos executados na nuvem do Azure com base em eventos, em resposta a solicitações HTTP ou em um agendamento. Pense no seu projeto de código do Azure Functions como um mecanismo para organizar, implantar e gerenciar coletivamente suas funções individuais no projeto quando elas estiverem em execução no Azure. Para obter mais informações, confira Organizar suas funções.

A maneira como você dispõe seu projeto de código e como você indica quais métodos em seu projeto são funções depende da linguagem de desenvolvimento do seu projeto. Para obter diretrizes detalhadas e específicas da linguagem, consulte o guia para desenvolvedores em C#.

A maneira como você dispõe seu projeto de código e como você indica quais métodos em seu projeto são funções depende da linguagem de desenvolvimento do seu projeto. Para obter diretrizes específicas da linguagem, consulte o guia para desenvolvedores em Java.

A maneira como você dispõe seu projeto de código e como você indica quais métodos em seu projeto são funções depende da linguagem de desenvolvimento do seu projeto. Para obter diretrizes específicas da linguagem, consulte o guia para desenvolvedores do Node.js.

A maneira como você dispõe seu projeto de código e como você indica quais métodos em seu projeto são funções depende da linguagem de desenvolvimento do seu projeto. Para obter diretrizes específicas da linguagem, consulte o guia para desenvolvedores do PowerShell.

A maneira como você dispõe seu projeto de código e como você indica quais métodos em seu projeto são funções depende da linguagem de desenvolvimento do seu projeto. Para obter diretrizes específicas da linguagem, consulte o guia para desenvolvedores em Python.

Todas as funções devem ter um gatilho, que define como a função é iniciada e pode fornecer entrada para a função. Opcionalmente, suas funções podem definir associações de entrada e saída. Essas associações simplificam as conexões com outros serviços sem que você precise trabalhar com SDKs do cliente. Para obter mais informações, consulte Gatilhos e conceitos de associações do Azure Functions.

O Azure Functions fornece um conjunto de modelos de projeto e função específicos da linguagem que facilitam a criação de novos projetos de código e a adição de funções ao seu projeto. Você pode usar qualquer uma das ferramentas que dão suporte ao desenvolvimento do Azure Functions para gerar novos aplicativos e funções usando esses modelos.

Ferramentas de desenvolvimento

As ferramentas a seguir fornecem uma experiência integrada de desenvolvimento e publicação para o Azure Functions em sua linguagem preferida:

Essas ferramentas se integram ao Azure Functions Core Tools para que você possa executar e depurar em seu computador local usando o runtime do Functions. Para mais informações, confira Codificar e testar o Azure Functions localmente.

Há também um editor no portal do Azure que permite atualizar o código e o arquivo de definição function.json diretamente no portal. Você só deve usar esse editor para pequenas alterações ou para criar funções de prova de conceito. Você sempre deve desenvolver suas funções localmente, quando possível. Para obter mais informações, consulte Criar sua primeira função no portal do Azure.

A edição no portal só tem suporte para Node.js versão 3, que usa o arquivo function.json.

Implantação

Ao publicar seu projeto de código no Azure, você está essencialmente implantando seu projeto em um recurso de aplicativo de funções existente. O aplicativo de funções fornece um contexto de execução no Azure no qual suas funções são executadas. Dessa forma, é a unidade de implantação e gerenciamento das suas funções. Do ponto de vista do Azure Resource, um aplicativo de funções é equivalente a um recurso de site (Microsoft.Web/sites) no Serviço de Aplicativo do Azure, que é equivalente a um aplicativo Web.

Um aplicativo de funções é composto por uma ou mais funções individuais que são gerenciadas, implantadas e dimensionadas em conjunto. Todas as funções em um aplicativo de funções compartilham o mesmo plano de preços, método de implantação e a versão de runtime. Para obter mais informações, confira Como gerenciar um aplicativo de funções.

Quando o aplicativo de funções e outros recursos necessários ainda não existirem no Azure, primeiro você precisará criar esses recursos antes de implantar os arquivos de projeto. Você pode criar esses recursos de uma dessas maneiras:

Além da publicação baseada em ferramentas, o Functions dá suporte a outras tecnologias para implantar o código-fonte em um aplicativo de funções existente. Para obter mais informações, confira Tecnologias de implantação do Azure Functions.

Conectar-se a serviços

Um requisito importante de qualquer serviço de computação baseado em nuvem é ler dados e gravar dados em outros serviços de nuvem. O Functions fornece um amplo conjunto de associações que facilita a conexão com serviços sem precisar trabalhar com SDKs do cliente.

Se você usa as extensões de associação fornecidas pelo Functions ou trabalha diretamente com os SDKs do cliente, armazena dados de conexão com segurança e não os inclui em seu código. Para mais informações, consulte as Conexões.

Associações

O Functions fornece associações para muitos serviços do Azure e alguns serviços de terceiros, que são implementados como extensões. Para obter mais informações, consulte a lista completa de associações com suporte.

As extensões de associação podem dar suporte a entradas e saídas, e muitos gatilhos também atuam como associações de entrada. As associações permitem configurar a conexão com os serviços para que o host do Functions possa lidar com o acesso a dados para você. Para obter mais informações, consulte Gatilhos e conceitos de associações do Azure Functions.

Se você estiver tendo problemas com erros provenientes de associações, consulte a documentação Códigos de Erro de Associação do Azure Functions.

SDKs do cliente

Embora o Functions forneça associações para simplificar o acesso a dados em seu código de função, você ainda poderá usar um SDK do cliente em seu projeto para acessar diretamente um determinado serviço, se preferir. Talvez seja necessário usar os SDKs do cliente diretamente caso suas funções exijam uma funcionalidade do SDK subjacente que não é compatível com a extensão de associação.

Ao usar SDKs de cliente, você deve usar o mesmo processo para armazenar e acessar cadeias de conexão usadas por extensões de associação.

Ao criar uma instância do SDK do cliente em suas funções, você deve obter as informações de conexão exigidas pelo cliente em Variáveis de ambiente.

Ao criar uma instância do SDK do cliente em suas funções, você deve obter as informações de conexão exigidas pelo cliente em Variáveis de ambiente.

Ao criar uma instância do SDK do cliente em suas funções, você deve obter as informações de conexão exigidas pelo cliente em Variáveis de ambiente.

Ao criar uma instância do SDK do cliente em suas funções, você deve obter as informações de conexão exigidas pelo cliente em Variáveis de ambiente.

Ao criar uma instância do SDK do cliente em suas funções, você deve obter as informações de conexão exigidas pelo cliente em Variáveis de ambiente.

conexões

Como melhor prática de segurança, o Azure Functions aproveita a funcionalidade de configurações de aplicativo do Serviço de Aplicativo do Azure para ajudá-lo a armazenar cadeias de caracteres, chaves e outros tokens necessários para se conectar a outros serviços. As configurações de aplicativo no Azure são armazenadas criptografadas e podem ser acessadas em runtime pelo aplicativo como pares name value de variáveis de ambiente. Para gatilhos e associações que exigem uma propriedade de conexão, defina o nome da configuração do aplicativo em vez da cadeia de conexão real. Não é possível configurar uma associação diretamente com uma cadeia de conexão ou chave.

Por exemplo, considere uma definição de gatilho que tenha uma propriedade connection. Em vez da cadeia de conexão, defina connection como o nome de uma variável de ambiente que contém a cadeia de conexão. O uso dessa estratégia de acesso a segredos torna seus aplicativos mais seguros e facilita a alteração de conexões entre ambientes. Para obter ainda mais segurança, você pode usar conexões baseadas em identidade.

O provedor de configuração padrão usa variáveis de ambiente. Essas variáveis são definidas nas configurações do aplicativo ao serem executadas no Azure e no arquivo de configurações local ao desenvolver localmente.

Valores de conexão

Quando o nome da conexão é resolvido para um único valor exato, o runtime identifica o valor como uma cadeia de conexão, que normalmente inclui um segredo. Os detalhes de uma cadeia de conexão dependem do serviço ao qual você se conecta.

No entanto, um nome de conexão também pode se referir a uma coleção de vários itens de configuração, útil para configurar conexões baseadas em identidade. As variáveis de ambiente podem ser tratadas como uma coleção ao usar um prefixo compartilhado que termina em sublinhados duplos __. Em seguida, o grupo pode ser referenciado ao definir o nome da conexão como esse prefixo.

Por exemplo, a propriedade connection de uma definição de gatilho de Blob do Azure pode ser Storage1. Desde que não haja um único valor de cadeia de caracteres configurado por uma variável de ambiente chamada Storage1, uma variável de ambiente chamada Storage1__blobServiceUri pode ser usada para informar a propriedade blobServiceUri da conexão. As propriedades de conexão são diferentes para cada serviço. Confira a documentação para ver o componente que usa a conexão.

Observação

Ao usar a Configuração de Aplicativos do Azure ou o Key Vault para fornecer configurações para conexões de Identidade Gerenciada, os nomes de configuração devem usar um separador de chave válido, como : ou / no lugar de __ para garantir que os nomes sejam resolvidos corretamente.

Por exemplo, Storage1:blobServiceUri.

Configurar uma conexão baseada em identidade

Algumas conexões no Azure Functions podem ser configuradas para usar uma identidade em vez de um segredo. O suporte depende da versão do runtime e da extensão usando a conexão. Em alguns casos, uma cadeia de conexão ainda pode ser necessária no Functions, mesmo que o serviço ao qual você está se conectando ofereça suporte a conexões baseadas em identidade. 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.

Observação

Ao ser executado em um plano de Consumo ou Elastic Premium, seu aplicativo usa as configurações WEBSITE_AZUREFILESCONNECTIONSTRING e WEBSITE_CONTENTSHARE ao se conectar aos Arquivos do Azure na conta de armazenamento usada pelo aplicativo de funções. Os Arquivos do Azure não dão suporte ao uso de identidade gerenciada ao acessar o compartilhamento de arquivos. Para obter mais informações, confira Cenários de autenticação com suporte dos Arquivos do Azure

As conexões baseadas em identidade só têm suporte no Functions 4.x, se você estiver usando a versão 1.x, você deve primeiro migrar para a versão 4.x.

Os seguintes componentes suportam conexões baseadas em identidade:

Fonte de conexão Planos com suporte Saiba mais
Gatilhos e associações dos Blobs do Azure Tudo Extensão dos Blobs do Azure versão 5.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Gatilhos e associações das Filas do Azure Tudo Extensão das Filas do Azure versão 5.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Tabelas do Azure (ao usar o Armazenamento do Azure) Tudo Extensão das Tabelas do Azure versão 1.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Banco de Dados SQL do Azure Tudo Conectar um aplicativo de funções ao SQL do Azure com identidade gerenciada e associações de SQL
Gatilhos e associações dos Hubs de Eventos do Azure Tudo Extensão dos Hubs de Eventos do Azure versão 5.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Gatilhos e associações do Barramento de Serviço do Azure Tudo Extensão do Barramento de Serviço do Azure versão 5.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Associação de saída da Grade de Eventos do Azure Tudo Extensão da Grade de Eventos do Azure versão 3.3.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Gatilhos e associações do Azure Cosmos DB Tudo Extensão do Azure Cosmos DB versão 4.0.0 ou posterior,
Pacote de extensões 4.0.2 ou posterior
Gatilhos e associações do Azure SignalR Todos Extensão do SignalR do Azure versão 1.7.0 ou posterior,
Pacote de extensões 3.6.1 ou posterior
Provedor de armazenamento do Durable Functions ​​(Armazenamento do Azure) Tudo Extensão do Durable Functions versão 2.7.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Armazenamento exigido pelo host ("AzureWebJobsStorage") Tudo Conectar-se ao armazenamento de host com uma identidade

Quando hospedadas no serviço de Azure Functions, as conexões baseadas em identidade usam uma identidade gerenciada. A identidade atribuída pelo sistema é usada por padrão, embora a identidade atribuída pelo usuário possa ser especificada com as propriedades credential e clientID. Observe que não há suporte para configurar uma identidade atribuída pelo usuário com uma ID de recurso. Quando executado em outros contextos, como desenvolvimento local, a identidade do desenvolvedor é usada, embora isso possa ser personalizado. Confira Desenvolvimento local com conexões baseadas em identidade.

Conceder permissão para a identidade

Qualquer identidade que esteja sendo usada deve ter permissões para executar as ações pretendidas. Para a maioria dos serviços do Azure, isso significa que será necessário atribuir uma função no Azure RBAC, usando as funções internas ou as personalizadas que fornecem essas permissões.

Importante

Algumas permissões que não são necessárias em todos os contextos podem ser expostas pelo serviço de destino. Sempre que possível, siga o princípio do privilégio mínimo, concedendo à identidade apenas os privilégios necessários. Por exemplo, se o aplicativo precisar apenas ser capaz de ler uma fonte de dados, use uma função que só tenha permissão de leitura. Seria inapropriado atribuir uma função que também permitisse a gravação nesse serviço, pois seria um excesso de permissões para uma operação de leitura. Da mesma forma, seria melhor garantir que a atribuição da função tivesse o escopo apenas sobre os recursos que precisam ser lidos.

Escolha uma dessas guias para saber mais sobre permissões para cada componente:

Você precisa criar uma atribuição de função que forneça acesso ao seu contêiner de blobs no runtime. As funções de gerenciamento como a de Proprietário não são suficientes. A tabela a seguir mostra as funções internas recomendadas ao usar a extensão do Armazenamento de Blobs em operação normal. Seu aplicativo pode exigir mais permissões com base no código que você escrever.

Tipo de associação Exemplo de funções internas
Gatilho Proprietário de Dados do Blob de Armazenamento e Colaborador de Dados da Fila de Armazenamento1

Permissões extras também devem ser concedidas à conexão AzureWebJobsStorage.2
Associação de entrada Leitor de Dados do Blob de Armazenamento
Associação de saída Proprietário de Dados do Blob de Armazenamento

1 O gatilho de blob lida com a falha em várias tentativas gravando blobs suspeitos em uma fila na conta de armazenamento especificada pela conexão.

2 A conexão AzureWebJobsStorage é usada internamente para blobs e filas que habilitam o gatilho. Se estiver configurado para usar uma conexão baseada em identidade, ele precisará de permissões extras além do requisito padrão. As permissões necessárias são cobertas pelas funções Proprietário de Dados de Blobs de Armazenamento, Colaborador de Dados da Fila de Armazenamento e Colaborador da Conta de Armazenamento. Para saber mais, confira Conectar-se ao armazenamento de host com uma identidade.

Propriedades comuns para conexões baseadas em identidade

Uma conexão baseada em identidade para um serviço do Azure aceita as seguintes propriedades comuns, em que <CONNECTION_NAME_PREFIX> é o valor da propriedade connection no gatilho ou na definição de associação:

Propriedade Modelo de variável de ambiente Descrição
Credencial de token <CONNECTION_NAME_PREFIX>__credential Define como um token deve ser obtido para a conexão. Essa configuração deve ser definida como managedidentity se o Azure Function implantado pretender usar a autenticação de identidade gerenciada. Esse valor só é válido quando uma identidade gerenciada está disponível no ambiente de hospedagem.
ID do Cliente <CONNECTION_NAME_PREFIX>__clientId Quando credential estiver definido como managedidentity, essa propriedade poderá ser definida para especificar a identidade atribuída pelo usuário a ser usada ao obter um token. A propriedade aceita uma ID de cliente correspondente a uma identidade atribuída pelo usuário atribuída ao aplicativo. É inválido especificar uma ID de recurso e uma ID de cliente. Se não for especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido.
ID de Recurso <CONNECTION_NAME_PREFIX>__managedIdentityResourceId Quando credential estiver definido como managedidentity, essa propriedade pode ser definida para especificar o identificador de recurso a ser usado na obtenção de um token. A propriedade aceita um identificador de recurso correspondente à ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar uma ID de recurso e uma ID de cliente. Se nenhuma delas for especificada, a identidade atribuída pelo sistema será usada. Essa propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não puder ser definido.

Outras opções podem ter suporte para um determinado tipo de conexão. Consulte a documentação do componente que está fazendo a conexão.

Variáveis de ambiente do SDK do Azure

Cuidado

O uso das variáveis de ambiente EnvironmentCredential do SDK do Azure não é recomendado devido ao impacto potencialmente não intencional em outras conexões. Eles também não têm suporte total quando implantados no Azure Functions.

As variáveis de ambiente associadas aos SDKs EnvironmentCredential do Azure também podem ser definidas, mas elas não são processadas pelo serviço do Functions para dimensionamento em planos de consumo. Essas variáveis de ambiente não são específicas para nenhuma conexão e serão aplicadas como padrão, a menos que uma propriedade correspondente não seja definida para uma determinada conexão. Por exemplo, se AZURE_CLIENT_ID estiver definido, isso será usado como se <CONNECTION_NAME_PREFIX>__clientId tivesse sido configurado. A configuração <CONNECTION_NAME_PREFIX>__clientId explícita substituiria esse padrão.

Desenvolvimento local com conexões baseadas em identidade

Observação

O desenvolvimento local com conexões baseadas em identidades requer a versão 4.0.3904 ou posteriores do Azure Functions Core Tools.

Quando você estiver executando seu projeto de função localmente, a configuração acima informa ao runtime para usar sua identidade de desenvolvedor local. A conexão tenta obter um token nos seguintes locais, em ordem:

  • Um cache local compartilhado entre aplicativos da Microsoft
  • O contexto do usuário atual no Visual Studio
  • O contexto do usuário atual no Visual Studio Code
  • O contexto do usuário atual na CLI do Azure

Se nenhuma dessas opções for bem-sucedida, ocorrerá um erro.

Sua identidade já pode ter algumas atribuições de função em relação a recursos do Azure usados para desenvolvimento, mas talvez essas funções não forneçam o acesso necessário aos dados. As funções de gerenciamento como a de Proprietário não são suficientes. Verifique duas vezes quais permissões são necessárias para as conexões para cada componente, e verifique se você as atribuiu a si mesmo.

Em alguns casos, talvez você queira especificar o uso de uma identidade diferente. Você pode adicionar propriedades de configuração para a conexão que apontam para a identidade alternativa com base em uma ID do cliente e um segredo do cliente para uma entidade de serviço do Microsoft Entra. Essa configuração não têm suporte quando hospedada no serviço do Azure Functions. Para usar uma ID e um segredo em seu computador local, defina a conexão com as seguintes propriedades adicionais:

Propriedade Modelo de variável de ambiente Descrição
ID do locatário <CONNECTION_NAME_PREFIX>__tenantId A ID do locatário do Microsoft Entra (diretório).
ID do Cliente <CONNECTION_NAME_PREFIX>__clientId A ID do cliente (aplicativo) de um registro de aplicativo no locatário.
Segredo do cliente <CONNECTION_NAME_PREFIX>__clientSecret Um segredo do cliente que foi gerado para o registro do aplicativo.

Veja um exemplo das propriedades local.settings.json necessárias para a conexão baseada em identidade com os Blobs do Azure:

{
  "IsEncrypted": false,
  "Values": {
    "<CONNECTION_NAME_PREFIX>__blobServiceUri": "<blobServiceUri>",
    "<CONNECTION_NAME_PREFIX>__queueServiceUri": "<queueServiceUri>",
    "<CONNECTION_NAME_PREFIX>__tenantId": "<tenantId>",
    "<CONNECTION_NAME_PREFIX>__clientId": "<clientId>",
    "<CONNECTION_NAME_PREFIX>__clientSecret": "<clientSecret>"
  }
}

Conectar-se ao armazenamento de host com uma identidade

O anfitrião Azure Functions utiliza a ligação de armazenamento definida em AzureWebJobsStorage para permitir comportamentos principais, como a coordenação da execução singleton de gatilhos de temporizador e armazenamento de chaves de aplicações padrão. Essa conexão também pode ser configurada para usar uma identidade.

Cuidado

Outros componentes do Functions dependem de AzureWebJobsStorage para comportamentos padrão. Você não deve movê-la para uma conexão baseada em identidade se estiver usando versões mais antigas de extensões sem suporte para esse tipo de conexão, inclusive gatilhos e associações para Blobs do Azure, Hubs de Eventos e Durable Functions. Da mesma forma, AzureWebJobsStorage é usado para artefatos de implantação ao usar a compilação do lado do servidor no Consumo em Linux e, se você habilitar isso, precisará implantar usando AzureWebJobsStorage.

Além disso, seu aplicativo de funções pode estar reutilizando AzureWebJobsStorage para outras conexões de armazenamento em seus gatilhos, associações e/ou código de função. Garanta que todos os usos de AzureWebJobsStorage sejam capazes de usar o formato de conexão baseado em identidade antes de alterar esta conexão de uma cadeia de conexão.

Para usar uma conexão baseada em identidade para AzureWebJobsStorage, defina as seguintes configurações de aplicativo:

Configuração Descrição Valor de exemplo
AzureWebJobsStorage__blobServiceUri O URI do plano de dados do serviço de blobs da conta de armazenamento, usando o esquema HTTPS. https://<storage_account_name>.blob.core.windows.net
AzureWebJobsStorage__queueServiceUri O URI do plano de dados do serviço de filas da conta de armazenamento, usando o esquema HTTPS. https://<storage_account_name>.queue.core.windows.net
AzureWebJobsStorage__tableServiceUri URI do plano de dados de um serviço de tabela da conta de armazenamento, usando o esquema HTTPS. https://<storage_account_name>.table.core.windows.net

As propriedades comuns para conexões baseadas em identidade também podem ser definidas.

Se estiver configurando AzureWebJobsStorage usando uma conta de armazenamento que usa o sufixo DNS padrão e o nome de serviço para o Azure global, seguindo o formato https://<accountName>.[blob|queue|file|table].core.windows.net, você poderá definir o nome da sua conta de armazenamento como AzureWebJobsStorage__accountName. Os pontos de extremidade de cada serviço de armazenamento são inferidos para essa conta. Isso não funciona quando a conta de armazenamento estiver em uma nuvem soberana ou tiver um DNS personalizado.

Configuração Descrição Valor de exemplo
AzureWebJobsStorage__accountName O nome da conta de uma conta de armazenamento, válido somente se a conta não estiver em uma nuvem soberana e não tiver um DNS personalizado. Essa sintaxe é exclusiva para AzureWebJobsStorage e não pode ser usada para outras conexões baseadas em identidade. <storage_account_name>

Será necessário criar uma atribuição de função que forneça acesso à conta de armazenamento para "AzureWebJobsStorage" no tempo de execução. Funções de gerenciamento como Proprietário não são suficientes. A função de Proprietário de Dados do Blob de Armazenamento abrange as necessidades básicas do armazenamento de host de Funções, o tempo de execução precisa de acesso de leitura e gravação aos blobs e à capacidade de criar contêineres. Várias extensões usam essa conexão como local padrão para blobs, filas e tabelas, e esses usos podem adicionar requisitos conforme observado na tabela a seguir. Você poderá precisar de permissões adicionais se usar "AzureWebJobsStorage" para outras finalidades.

Extensão Funções necessárias Explicação
Sem extensão (somente host) Proprietário de Dados do Blob de Armazenamento Usado para coordenação geral, repositório de chaves padrão
Blobs do Azure (somente gatilho) Todas:
Colaborador da Conta de Armazenamento,
Proprietário de Dados do Storage Blob,
Colaborador de dados da fila de armazenamento
O gatilho de blob usa internamente as Filas do Azure e grava os recebimentos de blobs. Ele usa AzureWebJobsStorage para isso, independentemente da conexão configurada para o gatilho.
Hubs de Eventos do Azure (gatilho somente) (nenhuma alteração do requisito padrão)
Proprietário de Dados do Blob de Armazenamento
Os pontos de verificação são mantidos em blobs usando a conexão AzureWebJobsStorage.
Gatilho de temporizador (nenhuma alteração do requisito padrão)
Proprietário de Dados do Blob de Armazenamento
Para garantir uma execução por evento, são obtidos bloqueios com blobs usando a conexão AzureWebJobsStorage.
Funções duráveis Todas:
Colaborador de Dados de Blob de Armazenamento,
Colaborador de Dados da Fila de Armazenamento,
Colaborador de dados da tabela de armazenamento
A extensão Durable Functions usa blobs, filas e tabelas para coordenar funções de atividade e manter o estado da orquestração. Ela usa a conexão AzureWebJobsStorage para todos eles por padrão, mas você pode especificar uma conexão diferente na configuração da extensão Durable Functions.

Problemas de relatórios

Item Descrição Link
Runtime Host de Script, Gatilhos e Associações, Suporte ao Idioma Registrar um Problema
Modelos Problemas de Código com o Modelo de Criação Registrar um Problema
Portal Interface do Usuário ou Problema de Experiência Registrar um Problema

Repositórios de código aberto

O código para o Azure Functions é de código aberto e você pode encontrar os principais componentes nesses repositórios do GitHub:

Próximas etapas

Para saber mais, consulte os recursos a seguir: