Partilhar via


Guia do programador das Funções do Azure

No Azure Functions, todas as funções partilham alguns conceitos técnicos e componentes principais, independentemente da sua linguagem ou ambiente de desenvolvimento preferidos. Este artigo é específico do idioma. Escolha o seu idioma preferido no topo do artigo.

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

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

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

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

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

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

Se preferir ir direto para dentro, 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 chamadas funções. As funções são simplesmente métodos que são executados na nuvem do Azure com base em eventos, em resposta a solicitações HTTP ou em uma agenda. Pense em 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 sendo executadas no Azure. Para obter mais informações, consulte Organizar suas funções.

A maneira como você estabelece 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 orientações detalhadas específicas da linguagem, consulte o Guia do desenvolvedor do C#.

A maneira como você estabelece 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 orientações específicas da linguagem, consulte o Guia do desenvolvedor Java.

A maneira como você estabelece 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 orientações específicas do idioma, consulte o Node.js guia do desenvolvedor.

A maneira como você estabelece 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 orientações específicas do idioma, consulte o Guia de desenvolvedores do PowerShell.

A maneira como você estabelece 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 orientações específicas da linguagem, consulte o guia de desenvolvedores do Python.

Todas as funções devem ter um gatilho, que define como a função é iniciada e pode fornecer entrada para a função. Suas funções podem, opcionalmente, definir ligações de entrada e saída. Essas associações simplificam as conexões com outros serviços sem que você precise trabalhar com SDKs de cliente. Para obter mais informações, veja Conceitos de acionadores e enlaces das Funções do Azure.

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 programação

As ferramentas a seguir fornecem uma experiência integrada de desenvolvimento e publicação para o Azure Functions em seu idioma preferido:

Essas ferramentas se integram às Ferramentas Principais do Azure Functions para que você possa executar e depurar em seu computador local usando o tempo de execução do Functions. Para obter mais informações, consulte Codificar e testar o Azure Functions localmente.

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

A edição do portal só é suportada para Node.js versão 3, que usa o arquivo function.json.

Implementação

Quando você publica seu projeto de código no Azure, você está essencialmente implantando seu projeto em um recurso de aplicativo de função existente. Um aplicativo de função fornece um contexto de execução no Azure no qual suas funções são executadas. Como tal, é a unidade de implementação e gestão para as suas funções. Do ponto de vista do recurso do Azure, um aplicativo de função é 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ção é composto por uma ou mais funções individuais que são gerenciadas, implantadas e dimensionadas juntas. Todas as funções em um aplicativo de função compartilham o mesmo plano de preços, método de implantação e versão de tempo de execução. Para obter mais informações, consulte Como gerenciar um aplicativo de função.

Quando o aplicativo de função e quaisquer outros recursos necessários ainda não existem no Azure, você primeiro precisa criar esses recursos antes de implantar seus arquivos de projeto. Você pode criar esses recursos de uma destas maneiras:

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

Ligar aos serviços

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

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

Enlaces

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 suportadas.

As extensões de vinculação podem suportar entradas e saídas, e muitos gatilhos também atuam como ligações de entrada. As ligações permitem configurar a conexão com serviços para que o host do Functions possa lidar com o acesso aos dados para você. Para obter mais informações, veja Conceitos de acionadores e enlaces das Funções do Azure.

Se você estiver tendo problemas com erros provenientes de associações, consulte a documentação de Códigos de erro de vinculaçã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 pode usar um SDK de cliente em seu projeto para acessar diretamente um determinado serviço, se preferir. Talvez seja necessário usar SDKs de cliente diretamente caso suas funções exijam uma funcionalidade do SDK subjacente que não seja suportada pela extensão de vinculaçã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 ligação.

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

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

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

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

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

Ligações

Como prática recomendada 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 com mais segurança. As configurações do aplicativo no Azure são armazenadas criptografadas e podem ser acessadas em tempo de execução pelo seu aplicativo como pares de variáveis name value 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 connection propriedade. Em vez da cadeia de conexão, você define 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 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 locais ao desenvolver localmente.

Valores de conexão

Quando o nome da conexão é resolvido para um único valor exato, o tempo de execução 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, úteis para configurar conexões baseadas em identidade. As variáveis de ambiente podem ser tratadas como uma coleção usando um prefixo compartilhado que termina em sublinhados __duplos. O grupo pode então ser referenciado definindo o nome da conexão para esse prefixo.

Por exemplo, a propriedade para uma definição de gatilho connection de Blob do Azure pode ser Storage1. Contanto 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 nomeada Storage1__blobServiceUri pode ser usada para informar a blobServiceUri propriedade da conexão. As propriedades de conexão são diferentes para cada serviço. Consulte a documentação do componente que usa a conexão.

Nota

Ao usar a Configuração do Aplicativo do Azure ou o Cofre da Chave 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 do 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 tempo de execução e da extensão que usa 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 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.

Nota

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

Conexões baseadas em identidade são suportadas apenas 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 suportados Mais informações
Gatilhos e associações de Blobs do Azure Todos Extensão de Blobs do Azure versão 5.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Filas, gatilhos e associações do Azure Todos Extensão Azure Queues 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) Todos Extensão Azure Tables versão 1.0.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Base de Dados SQL do Azure Todos Conectar um aplicativo de função ao SQL do Azure com identidade gerenciada e associações SQL
Gatilhos e associações de Hubs de Eventos do Azure Todos 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 Todos 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
Vinculação de saída da Grade de Eventos do Azure Todos 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 Todos Extensão do Azure Cosmos DB versão 4.0.0 ou posterior,
Pacote de extensão 4.0.2 ou posterior
Gatilhos e ligações do Azure SignalR Todos Extensão do Azure SignalR versão 1.7.0 ou posterior
Pacote de extensão 3.6.1 ou posterior
Provedor de armazenamento de funções duráveis (Armazenamento do Azure) Todos Durable Functions extensão versão 2.7.0 ou posterior,
Pacote de extensão 3.3.0 ou posterior
Armazenamento necessário pelo host ("AzureWebJobsStorage") Todos Conectando-se ao armazenamento do host com uma identidade

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

Conceder permissão à 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 você precisa atribuir uma função no RBAC do Azure, usando funções internas ou personalizadas que fornecem essas permissões.

Importante

Algumas permissões podem ser expostas pelo serviço de destino que não são necessárias para todos os contextos. Sempre que possível, aderir ao princípio do menor privilégio, concedendo à identidade apenas os privilégios necessários. Por exemplo, se o aplicativo só precisa ser capaz de ler de uma fonte de dados, use uma função que só tenha permissão para ler. Seria inadequado atribuir uma função que também permita escrever a esse serviço, pois isso seria uma permissão excessiva para uma operação de leitura. Da mesma forma, convém garantir que a atribuição de função tenha escopo apenas sobre os recursos que precisam ser lidos.

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

Você precisa criar uma atribuição de função que forneça acesso ao seu contêiner de blob em tempo de execução. Funções de gerenciamento como Proprietário não são suficientes. A tabela a seguir mostra as funções internas recomendadas ao usar a extensão de Armazenamento de Blob em operação normal. Seu aplicativo pode exigir permissões adicionais com base no código que você escreve.

Tipo de vinculação Exemplo de funções internas
Acionador Proprietário de dados de blob de armazenamento e contribuidorde dados da fila de armazenamento 1

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

1 O gatilho de blob lida com falhas em várias tentativas gravando blobs venenosos 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 Blob de Armazenamento, Colaborador de Dados da Fila de Armazenamento e Colaborador de Conta de Armazenamento. Para saber mais, consulte Conectando-se ao armazenamento do 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, onde <CONNECTION_NAME_PREFIX> é o valor de sua connection propriedade na definição de gatilho ou associação:

Property Modelo de variável de ambiente Description
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 sua Função do Azure implantada pretende usar a autenticação de identidade gerenciada. Esse valor só é válido quando uma identidade gerenciada está disponível no ambiente de hospedagem.
ID de Cliente <CONNECTION_NAME_PREFIX>__clientId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar a identidade atribuída pelo usuário a ser usada ao obter um token. A propriedade aceita um 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 especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida.
ID do Recurso <CONNECTION_NAME_PREFIX>__managedIdentityResourceId Quando credential é definido como managedidentity, essa propriedade pode ser definida para especificar o Identificador de recurso a ser usado ao obter um token. A propriedade aceita um identificador de recurso correspondente ao ID do recurso da identidade gerenciada definida pelo usuário. É inválido especificar um ID de recurso e um ID de cliente. Se nenhum dos dois for especificado, a identidade atribuída ao sistema será usada. Esta propriedade é usada de forma diferente em cenários de desenvolvimento local, quando credential não deveria ser definida.

Outras opções podem ser suportadas para um determinado tipo de conexão. Consulte a documentação do componente que faz a conexão.

Variáveis de ambiente do SDK do Azure

Atenção

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

As variáveis de ambiente associadas ao SDK do EnvironmentCredential Azure também podem ser definidas, mas não são processadas pelo serviço Functions para dimensionamento em planos de Consumo. Essas variáveis de ambiente não são específicas de 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

Nota

O desenvolvimento local com conexões baseadas em identidade requer uma versão 4.0.3904 das Ferramentas Principais do Azure Functions ou uma versão posterior.

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

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

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

Sua identidade pode já ter algumas atribuições de função em relação aos recursos do Azure usados para desenvolvimento, mas essas funções podem não fornecer o acesso necessário aos dados. Funções de gerenciamento como Proprietário não são suficientes. Verifique novamente quais permissões são necessárias para conexões para cada componente e certifique-se de atribuí-las a si mesmo.

Em alguns casos, você pode querer 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 Segredo do cliente para uma entidade de serviço do Microsoft Entra. Essa opção de configuração não é suportada quando hospedada no serviço Azure Functions. Para usar um ID e um segredo em sua máquina local, defina a conexão com as seguintes propriedades extras:

Property Modelo de variável de ambiente Description
ID de Inquilino do <CONNECTION_NAME_PREFIX>__tenantId A ID do locatário (diretório) do Microsoft Entra.
ID de 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.

Aqui está um exemplo de local.settings.json propriedades necessárias para conexão baseada em identidade com 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>"
  }
}

Conectando-se ao armazenamento do host com uma identidade

O host do Azure Functions usa a conexão de armazenamento definida AzureWebJobsStorage para habilitar comportamentos principais, como coordenar a execução singleton de gatilhos de timer e o armazenamento de chave de aplicativo padrão. Essa conexão também pode ser configurada para usar uma identidade.

Atenção

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

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

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

Definição Descrição Valor de exemplo
AzureWebJobsStorage__blobServiceUri O URI do plano de dados do serviço de blob 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 fila da conta de armazenamento, usando o esquema HTTPS. https://< storage_account_name.queue.core.windows.net>
AzureWebJobsStorage__tableServiceUri O 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>

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

Se você 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 https://<accountName>.[blob|queue|file|table].core.windows.net formato, você pode, em vez disso, definir AzureWebJobsStorage__accountName como o nome da sua conta de armazenamento. Os pontos de extremidade para cada serviço de armazenamento são inferidos para essa conta. Isso não funciona quando a conta de armazenamento está em uma nuvem soberana ou tem um DNS personalizado.

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

Você precisará criar uma atribuição de função que forneça acesso à conta de armazenamento para "AzureWebJobsStorage" em tempo de execução. Funções de gestão como Proprietário não são suficientes. A função Storage Blob Data Owner cobre as necessidades básicas do armazenamento de host do Functions - o tempo de execução precisa de acesso de leitura e gravação a blobs e a capacidade de criar contêineres. Várias extensões usam essa conexão como um local padrão para blobs, filas e tabelas, e esses usos podem adicionar requisitos, conforme observado na tabela abaixo. Você pode precisar de permissões adicionais se usar "AzureWebJobsStorage" para quaisquer outros fins.

Extensão Funções necessárias Explicação
Sem extensão (apenas host) Proprietário dos Dados do Armazenamento de Blobs Usado para coordenação geral, armazenamento de chaves padrão
Blobs do Azure (somente gatilho) Todos de:
Colaborador da conta de armazenamento,
Proprietário de dados de Blob de armazenamento,
Contribuidor de dados da fila de armazenamento
O gatilho de blob usa internamente as Filas do Azure e grava recibos de blob. Ele usa AzureWebJobsStorage para estes, independentemente da conexão configurada para o gatilho.
Hubs de Eventos do Azure (somente gatilho) (sem alteração em relação ao requisito padrão)
Proprietário dos Dados do Armazenamento de Blobs
Os pontos de verificação são persistidos em blobs usando a conexão AzureWebJobsStorage.
Acionador de temporizador (sem alteração em relação ao requisito padrão)
Proprietário dos Dados do Armazenamento de Blobs
Para garantir uma execução por evento, os bloqueios são feitos com blobs usando a conexão AzureWebJobsStorage.
Funções Duráveis Todos de:
Contribuidor de dados de Blob de armazenamento,
Contribuidor de dados da fila de armazenamento,
Contribuidor de dados da tabela de armazenamento
Durable Functions usa blobs, filas e tabelas para coordenar funções de atividade e manter o estado de orquestração. Ele 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.

Comunicar problemas

Item Description Ligação
Runtime Script Host, Triggers & Bindings, Suporte a Idiomas Registre um problema
Modelos Problemas de código com o modelo de criação Registre um problema
Portal Interface do usuário ou problema de experiência Registre um problema

Repositórios de código aberto

O código do Azure Functions é de código aberto e você pode encontrar componentes-chave nesses repositórios do GitHub:

Próximos passos

Para obter mais informações, consulte os seguintes recursos: