Desenvolva o Azure Functions localmente usando as Ferramentas Principais

As Ferramentas Principais do Azure Functions permitem-lhe desenvolver e testar as suas funções no seu computador local. Quando estiver pronto, você também poderá usar as Ferramentas Principais para implantar seu projeto de código no Azure e trabalhar com as configurações do aplicativo.

Você está visualizando a versão em C# deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.

Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.

Você está visualizando a versão Java deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.

Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.

Você está visualizando a versão JavaScript deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.

Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.

Você está exibindo a versão PowerShell deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.

Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.

Você está visualizando a versão Python deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.

Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.

Você está visualizando a versão TypeScript deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.

Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.

Instalar as Ferramentas de Núcleo de Funções do Azure

A maneira recomendada de instalar o Core Tools depende do sistema operacional do seu computador de desenvolvimento local.

As etapas a seguir usam um instalador do Windows (MSI) para instalar o Core Tools v4.x. Para obter mais informações sobre outros instaladores baseados em pacotes, consulte o Leiame das Ferramentas Principais.

Transfira e execute o instalador das Ferramentas Principais, com base na sua versão do Windows:

Se você usou anteriormente o instalador do Windows (MSI) para instalar o Core Tools no Windows, você deve desinstalar a versão antiga de Adicionar remover programas antes de instalar a versão mais recente.

Para obter ajuda com problemas relacionados à versão, consulte Versões das ferramentas principais.

Criar o seu projeto local

Importante

Para Python, você deve executar comandos Core Tools em um ambiente virtual. Para obter mais informações, consulte Guia de início rápido: criar uma função Python no Azure a partir da linha de comando.

Na janela do terminal ou em um prompt de comando, execute o seguinte comando para criar um projeto na MyProjFolder pasta:

func init MyProjFolder --worker-runtime dotnet-isolated 

Por padrão, esse comando cria um projeto que é executado em processo com o host Functions na versão LTS (Long-Term Support) atual do .NET Core. Você pode usar a opção para direcionar uma versão com suporte específica do .NET, incluindo o --target-framework .NET Framework. Para obter mais informações, consulte a func init referência.

Para obter uma comparação entre os dois modelos de processo .NET, consulte o artigo de comparação de modo de processo.

O Java usa um arquétipo Maven para criar o projeto local, juntamente com sua primeira função acionada por HTTP. Em vez de usar func init e func new, você deve seguir as etapas no início rápido da linha de comando.

func init MyProjFolder --worker-runtime javascript --model V4

Este comando cria um projeto JavaScript que usa a versão desejada do modelo de programação.

func init MyProjFolder --worker-runtime typescript --model V4

Este comando cria um projeto TypeScript que usa a versão desejada do modelo de programação.

func init MyProjFolder --worker-runtime powershell
func init MyProjFolder --worker-runtime python --model V2

Este comando cria um projeto Python que usa a versão desejada do modelo de programação.

Quando você executa func init sem a --worker-runtime opção, você é solicitado a escolher o idioma do projeto. Para saber mais sobre as opções disponíveis para o func init comando, consulte a func init referência.

Criar uma função

Para adicionar uma função ao seu projeto, execute o func new comando usando a --template opção para selecionar seu modelo de gatilho. O exemplo a seguir cria um gatilho HTTP chamado MyHttpTrigger:

func new --template "Http Trigger" --name MyHttpTrigger

Este exemplo cria um gatilho de Armazenamento de Filas chamado MyQueueTrigger:

func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger

As seguintes considerações se aplicam ao adicionar funções:

  • Quando você executa func new sem a --template opção, você é solicitado a escolher um modelo.

  • Use o func templates list comando para ver a lista completa de modelos disponíveis para o seu idioma.

  • Ao adicionar um gatilho que se conecta a um serviço, você também precisará adicionar uma configuração de aplicativo que faça referência a uma cadeia de conexão ou uma identidade gerenciada ao arquivo local.settings.json. Usar as configurações do aplicativo dessa maneira evita que você tenha que incorporar credenciais em seu código. Para obter mais informações, consulte Trabalhar com configurações de aplicativo localmente.

  • As ferramentas principais também adicionam uma referência à extensão de vinculação específica ao seu projeto C#.

Para saber mais sobre as opções disponíveis para o func new comando, consulte a func new referência.

Adicionar uma ligação à sua função

O Functions fornece um conjunto de ligações de entrada e saída específicas do serviço, que facilitam a conexão da sua função com outros serviços do Azure sem precisar usar os SDKs de cliente específicos do serviço. Para obter mais informações, veja Conceitos de acionadores e enlaces das Funções do Azure.

Para adicionar uma ligação de entrada ou saída a uma função existente, você deve atualizar manualmente a definição de função.

O exemplo a seguir mostra a definição de função depois de adicionar uma ligação de saída de armazenamento de fila a uma função acionada por HTTP:

Como uma função acionada por HTTP também retorna uma resposta HTTP, a função retorna um MultiResponse objeto, que representa a saída HTTP e a saída da fila.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Este exemplo é a MultiResponse definição do objeto que inclui a ligação de saída:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

Ao aplicar esse exemplo ao seu próprio projeto, talvez seja necessário alterar HttpRequest para HttpRequestData e IActionResult para HttpResponseData, dependendo se você estiver usando ASP.NET integração Core ou não.

As mensagens são enviadas para a fila quando a função é concluída. A maneira como você define a ligação de saída depende do seu modelo de processo. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Exemplo de vinculação para Node.js modelo v4 ainda não disponível.

A maneira como você define a ligação de saída depende da versão do seu modelo de Node.js. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

A maneira como você define a ligação de saída depende da versão do seu modelo Python. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Exemplo de vinculação para Node.js modelo v4 ainda não disponível.

A maneira como você define a ligação de saída depende da versão do seu modelo de Node.js. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

As seguintes considerações se aplicam ao adicionar associações a uma função:

  • Ao adicionar associações que se conectam a um serviço, você também deve adicionar uma configuração de aplicativo que faça referência a uma cadeia de conexão ou identidade gerenciada ao arquivo local.settings.json. Para obter mais informações, consulte Trabalhar com configurações de aplicativo localmente.
  • Quando você adiciona uma associação suportada, a extensão já deve estar instalada quando seu aplicativo usa o pacote de extensões. Para obter mais informações, consulte pacotes de extensão.
  • Quando você adiciona uma associação que requer uma nova extensão de vinculação, você também deve adicionar uma referência a essa extensão de vinculação específica em seu projeto C#.

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.

Iniciar o tempo de execução do Functions

Antes de executar ou depurar as funções em seu projeto, você precisa iniciar o host Functions a partir do diretório raiz do seu projeto. O host habilita gatilhos para todas as funções no projeto. Use este comando para iniciar o tempo de execução local:

mvn clean package 
mvn azure-functions:run
func start
npm install
npm start     

Este comando deve ser executado em um ambiente virtual.

Quando o host Functions é iniciado, ele gera uma lista de funções no projeto, incluindo as URLs de quaisquer funções acionadas por HTTP, como neste exemplo:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

Tenha em mente as seguintes considerações ao executar suas funções localmente:

  • Por padrão, a autorização não é imposta localmente para pontos de extremidade HTTP. Isso significa que todas as solicitações HTTP locais são tratadas como authLevel = "anonymous". Para obter mais informações, consulte Nível de autorização. Você pode usar a --enableAuth opção para exigir autorização ao executar localmente. Para mais informações, consulte func start

  • Você pode usar o emulador local do Azurite ao executar localmente funções que exigem acesso aos serviços de Armazenamento do Azure (Armazenamento de Filas, Armazenamento de Blobs e Armazenamento de Tabelas) sem precisar se conectar a esses serviços no Azure. Ao usar a emulação local, certifique-se de iniciar o Azurite antes de iniciar o host local (func.exe). Para obter mais informações, consulte Emulação de armazenamento local.

  • Você pode usar a emulação local do Azurite para atender ao requisito de armazenamento do trabalhador Python v2.
  • Você pode acionar funções não-HTTP localmente sem se conectar a um serviço ativo. Para obter mais informações, consulte Executar uma função local.

  • Quando você inclui as informações de conexão do Application Insights no arquivo local.settings.json, os dados de log locais são gravados na instância específica do Application Insights. Para manter os dados de telemetria locais separados dos dados de produção, considere o uso de uma instância separada do Application Insights para desenvolvimento e teste.

  • Ao usar a versão 1.x das Ferramentas Principais, use o func host start comando para iniciar o tempo de execução local.

Executar uma função local

Com o host (func.exe) local do Functions em execução, agora você pode acionar funções individuais para executar e depurar seu código de função. A maneira como você executa uma função individual depende de seu tipo de gatilho.

Nota

Exemplos neste tópico usam a ferramenta cURL para enviar solicitações HTTP do terminal ou de um prompt de comando. Você pode usar uma ferramenta de sua escolha para enviar solicitações HTTP para o servidor local. A ferramenta cURL está disponível por padrão em sistemas baseados em Linux e Windows 10 build 17063 e posterior. No Windows mais antigo, você deve primeiro baixar e instalar a ferramenta cURL.

Os gatilhos HTTP são iniciados enviando uma solicitação HTTP para o ponto de extremidade local e a porta, conforme exibido na saída func.exe, que tem este formato geral:

http://localhost:<PORT>/api/<FUNCTION_NAME>

Neste modelo de URL, <FUNCTION_NAME> é o nome da função ou rota e <PORT> é a porta local na qual func.exe está escutando.

Por exemplo, este comando cURL aciona a MyHttpTrigger função de início rápido de uma solicitação GET com o parâmetro name passado na cadeia de caracteres de consulta:

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

Este exemplo é a mesma função chamada a partir de um nome de passagem de solicitação POST no corpo da solicitação, mostrado para o shell Bash e a linha de comando do Windows:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"

As seguintes considerações se aplicam ao chamar pontos de extremidade HTTP localmente:

  • Você pode fazer solicitações GET de um navegador passando dados na cadeia de caracteres de consulta. Para todos os outros métodos HTTP, você deve usar uma ferramenta de teste HTTP que também mantenha seus dados seguros. Para obter mais informações, consulte Ferramentas de teste HTTP.

  • Certifique-se de usar o mesmo nome de servidor e porta que o host do Functions está escutando. Você vê um ponto de extremidade como este na saída gerada ao iniciar o host de função. Você pode chamar essa URL usando qualquer método HTTP suportado pelo gatilho.

Publicar no Azure

As Ferramentas Principais do Azure Functions dão suporte a três tipos de implantação:

Tipo de implementação Comando Description
Ficheiros de projeto func azure functionapp publish Implanta arquivos de projeto de função diretamente em seu aplicativo de função usando a implantação zip.
Azure Container Apps func azurecontainerapps deploy Implanta um aplicativo de função em contêiner em um ambiente existente de Aplicativos de Contêiner.
Cluster do Kubernetes func kubernetes deploy Implanta seu aplicativo de função Linux como um contêiner Docker personalizado em um cluster Kubernetes.

Você deve ter a CLI do Azure ou o Azure PowerShell instalado localmente para poder publicar no Azure a partir das Ferramentas Principais. Por padrão, as Ferramentas Principais usam essas ferramentas para autenticar com sua conta do Azure.

Se você não tiver essas ferramentas instaladas, precisará obter um token de acesso válido para usar durante a implantação. Você pode apresentar um token de acesso usando a --access-token opção nos comandos de implantação.

Implantar arquivos de projeto

Para publicar seu código local em um aplicativo de função no Azure, use o func azure functionapp publish comando, como no exemplo a seguir:

func azure functionapp publish <FunctionAppName>

Este comando publica arquivos de projeto do diretório atual para o <FunctionAppName> pacote de implantação como um .zip. Se o projeto requer compilação, ela é feita remotamente durante a implantação.

O Java usa o Maven para publicar seu projeto local no Azure em vez das Ferramentas Principais. Use o seguinte comando Maven para publicar seu projeto no Azure:

mvn azure-functions:deploy

Quando você executa esse comando, os recursos do Azure são criados durante a implantação inicial com base nas configurações em seu arquivo de pom.xml . Para obter mais informações, consulte Implantar o projeto de função no Azure.

As seguintes considerações se aplicam a esse tipo de implantação:

  • A publicação substitui os arquivos existentes na implantação do aplicativo de função remota.

  • Você já deve ter criado um aplicativo de função em sua assinatura do Azure. Core Tools implanta seu código de projeto para este recurso de aplicativo de função. Para saber como criar um aplicativo de função a partir do prompt de comando ou da janela do terminal usando a CLI do Azure ou o Azure PowerShell, consulte Criar um aplicativo de função para execução sem servidor. Você também pode criar esses recursos no portal do Azure. Você recebe um erro quando tenta publicar em um <FunctionAppName> que não existe em sua assinatura.

  • Uma pasta de projeto pode conter arquivos e diretórios específicos do idioma que não devem ser publicados. Os itens excluídos são listados em um arquivo .funcignore na pasta raiz do projeto.

  • Por padrão, seu projeto é implantado para que seja executado a partir do pacote de implantação. Para desativar esse modo de implantação recomendado, use a --nozip opção.

  • Uma compilação remota é executada em projetos compilados. Isso pode ser controlado usando a --no-build opção.

  • Use a opção para criar automaticamente as --publish-local-settings configurações do aplicativo em seu aplicativo de função com base nos valores no arquivo local.settings.json.

  • Para publicar em um slot nomeado específico em seu aplicativo de função, use a --slot opção.

Implantar contêineres

As Ferramentas Principais permitem implantar seu aplicativo de função em contêiner em ambientes gerenciados de Aplicativos de Contêiner do Azure e clusters Kubernetes que você gerencia.

Use o seguinte func azurecontainerapps deploy comando para implantar uma imagem de contêiner existente em um ambiente de Aplicativos de Contêiner:

func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]

Quando você implanta em um ambiente de Aplicativos de Contêiner do Azure, as seguintes considerações se aplicam:

  • A conta de ambiente e armazenamento já deve existir. A cadeia de conexão da conta de armazenamento fornecida é usada pelo aplicativo de função implantado.

  • Você não precisa criar um recurso de aplicativo de função separado ao implantar em Aplicativos de Contêiner.

  • Cadeias de conexão de armazenamento e outras credenciais de serviço são segredos importantes. Certifique-se de armazenar com segurança todos os arquivos de script usando func azurecontainerapps deploy e não armazená-los em nenhum sistema de controle de origem acessível publicamente. Você pode criptografar o arquivo local.settings.json para maior segurança.

Para obter mais informações, consulte Aplicativos de contêiner do Azure hospedando o Azure Functions.

Trabalhar com as configurações do aplicativo localmente

Quando executado em um aplicativo de função no Azure, as configurações exigidas por suas funções são armazenadas com segurança nas configurações do aplicativo. Durante o desenvolvimento local, essas configurações são adicionadas Values à coleção no arquivo local.settings.json. O arquivo local.settings.json também armazena as configurações usadas pelas ferramentas de desenvolvimento local.

Os itens na Values coleção no arquivo de local.settings.json do seu projeto destinam-se a espelhar itens nas configurações do aplicativo de função no Azure.

As seguintes considerações se aplicam ao trabalhar com o arquivo de configurações locais:

  • Como o local.settings.json pode conter segredos, como cadeias de conexão, você nunca deve armazená-lo em um repositório remoto. As Ferramentas Principais ajudam-no a encriptar este ficheiro de definições locais para melhorar a segurança. Para obter mais informações, consulte Arquivo de configurações locais. Você também pode criptografar o arquivo local.settings.json para maior segurança.

  • Por padrão, as configurações locais não são migradas automaticamente quando o projeto é publicado no Azure. Use a --publish-local-settings opção ao publicar seus arquivos de projeto para garantir que essas configurações sejam adicionadas ao aplicativo de função no Azure. Os valores na ConnectionStrings seção nunca são publicados. Você também pode carregar configurações do arquivo local.settings.json a qualquer momento.

  • Você pode baixar e substituir configurações em seu arquivo de local.settings.json com configurações de seu aplicativo de função no Azure. Para obter mais informações, consulte Baixar configurações do aplicativo.

  • Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
  • Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
  • Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
  • Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
  • Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
  • Quando nenhuma cadeia de conexão de armazenamento válida está definida e AzureWebJobsStorage um emulador de armazenamento local não está sendo usado, um erro é mostrado. Você pode usar as Ferramentas Principais para baixar uma cadeia de conexão específica de qualquer uma de suas contas de Armazenamento do Azure.

Baixar configurações do aplicativo

Na raiz do projeto, use o seguinte comando para baixar todas as configurações do myfunctionapp12345 aplicativo no Azure:

func azure functionapp fetch-app-settings myfunctionapp12345

Este comando substitui todas as configurações existentes no arquivo local.settings.json com valores do Azure. Quando ainda não estão presentes, novos itens são adicionados à coleção. Para obter mais informações, consulte o func azure functionapp fetch-app-settings comando.

Baixar uma cadeia de conexão de armazenamento

As ferramentas principais também facilitam a obtenção da cadeia de conexão de qualquer conta de armazenamento à qual você tenha acesso. Na raiz do projeto, use o seguinte comando para baixar a cadeia de conexão de uma conta de armazenamento chamada mystorage12345.

func azure storage fetch-connection-string mystorage12345

Este comando adiciona uma configuração nomeada mystorage12345_STORAGE ao arquivo local.settings.json, que contém a cadeia de conexão para a mystorage12345 conta. Para obter mais informações, consulte o func azure storage fetch-connection-string comando.

Para melhorar a segurança durante o desenvolvimento, considere criptografar o arquivo local.settings.json.

Carregar configurações locais para o Azure

Quando você publica seus arquivos de projeto no Azure sem usar a --publish-local-settings opção, as configurações no arquivo local.settings.json não são definidas em seu aplicativo de função. Você sempre pode executar novamente o func azure functionapp publish com a --publish-settings-only opção de carregar apenas as configurações sem republicar os arquivos do projeto.

O exemplo a seguir carrega apenas configurações da coleção no arquivo local.settings.json Values para o aplicativo de função no Azure chamado myfunctionapp12345:

func azure functionapp publish myfunctionapp12345 --publish-settings-only

Criptografar o arquivo de configurações locais

Para melhorar a segurança das cadeias de conexão e outros dados valiosos em suas configurações locais, as Ferramentas Principais permitem criptografar o arquivo local.settings.json. Quando esse arquivo é criptografado, o tempo de execução descriptografa automaticamente as configurações quando necessário, da mesma forma que faz com a configuração do aplicativo no Azure. Também pode desencriptar um ficheiro encriptado localmente para trabalhar com as configurações.

Use o seguinte comando para criptografar o arquivo de configurações locais para o projeto:

func settings encrypt

Use o seguinte comando para descriptografar uma configuração local criptografada, para que você possa trabalhar com ela:

func settings decrypt

Quando o ficheiro de definições é encriptado e desencriptado, a definição do IsEncrypted ficheiro também é atualizada.

Configurar extensões de vinculação

Funções, gatilhos e associações são implementados como pacotes de extensão .NET (NuGet). Para poder usar uma extensão de vinculação específica, essa extensão deve ser instalada no projeto.

Esta seção não se aplica à versão 1.x do tempo de execução do Functions. Na versão 1.x, as ligações suportadas foram incluídas na extensão principal do produto.

Para projetos de biblioteca de classes C#, adicione referências aos pacotes NuGet específicos para as extensões de vinculação exigidas por suas funções. O projeto de script C# (.csx) deve usar pacotes de extensão.

O Functions fornece pacotes de extensões para facilitar o trabalho com extensões de vinculação em seu projeto. Os pacotes de extensão, que são versionados e definidos no arquivo host.json, instalam um conjunto completo de pacotes de extensão de vinculação compatíveis para seu aplicativo. Seu host.json já deve ter pacotes de extensão ativados. Se, por algum motivo, você precisar adicionar ou atualizar o pacote de extensão no arquivo host.json, consulte Pacotes de extensão.

Se você precisar usar uma extensão de vinculação ou uma versão de extensão que não esteja em um pacote suportado, será necessário instalar manualmente as extensões. Para cenários tão raros, consulte o func extensions install comando.

Versões do Core Tools

As versões principais das Ferramentas Principais do Azure Functions estão vinculadas a versões principais específicas do tempo de execução do Azure Functions. Por exemplo, a versão 4.x do Core Tools suporta a versão 4.x do tempo de execução do Functions. Esta versão é a versão principal recomendada do tempo de execução do Functions e do Core Tools. Você pode determinar a versão de lançamento mais recente das Ferramentas Principais no repositório de Ferramentas Principais do Azure Functions.

Execute o seguinte comando para determinar a versão da instalação atual do Core Tools:

func --version

Salvo indicação em contrário, os exemplos neste artigo referem-se à versão 4.x.

As seguintes considerações se aplicam às instalações do Core Tools:

  • Você só pode instalar uma versão do Core Tools em um determinado computador.

  • Ao atualizar para a versão mais recente do Core Tools, você deve usar o mesmo método usado para a instalação original para executar a atualização. Por exemplo, se você usou um MSI no Windows, desinstale o MSI atual e instale o mais recente. Ou, se você usou npm, execute novamente o npm install commandarquivo .

  • As versões 2.x e 3.x do Core Tools foram usadas com as versões 2.x e 3.x do tempo de execução do Functions, que chegaram ao fim do suporte. Para obter mais informações, consulte Visão geral das versões de tempo de execução do Azure Functions.

  • A versão 1.x do Core Tools é necessária ao usar a versão 1.x do Functions Runtime, que ainda é suportada. Esta versão do Core Tools só pode ser executada localmente em computadores Windows. Se você estiver executando atualmente a versão 1.x, considere migrar seu aplicativo para a versão 4.x hoje mesmo.

Próximos passos

Saiba como desenvolver, testar e publicar funções do Azure usando as ferramentas principais do Azure Functions. O Azure Functions Core Tools é de código aberto e hospedado no GitHub. Para arquivar um bug ou solicitação de recurso, abra um problema no GitHub.