Desenvolver as Funções do Azure com o Visual Studio Code

A extensão do Azure Functions para Visual Studio Code permite desenvolver funções localmente e implantá-las no Azure. Se esta experiência for a sua primeira com o Azure Functions, pode saber mais em Uma introdução ao Azure Functions.

A extensão do Azure Functions fornece estes benefícios:

  • Edite, crie e execute funções no seu computador de desenvolvimento local.
  • Publique seu projeto do Azure Functions diretamente no Azure.
  • Escreva suas funções em vários idiomas enquanto aproveita os benefícios do Visual Studio Code.

Você está visualizando a versão em C# deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida no início do artigo.

Se você é novo no Functions, talvez queira primeiro concluir o artigo de início rápido do Visual Studio Code.

Você está visualizando a versão Java deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida no início do artigo.

Se você é novo no Functions, talvez queira primeiro concluir o artigo de início rápido do Visual Studio Code.

Você está visualizando a versão JavaScript deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida no início do artigo.

Se você é novo no Functions, talvez queira primeiro concluir o artigo de início rápido do Visual Studio Code.

Você está exibindo a versão PowerShell deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida no início do artigo.

Se você é novo no Functions, talvez queira primeiro concluir o artigo de início rápido do Visual Studio Code.

Você está visualizando a versão Python deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida no início do artigo.

Se você é novo no Functions, talvez queira primeiro concluir o artigo de início rápido do Visual Studio Code.

Você está visualizando a versão TypeScript deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida no início do artigo.

Se você é novo no Functions, talvez queira primeiro concluir o artigo de início rápido do Visual Studio Code.

Importante

Não misture desenvolvimento local e desenvolvimento de portal para um único aplicativo de função. Quando você publica de um projeto local em um aplicativo de função, o processo de implantação substitui todas as funções que você desenvolveu no portal.

Pré-requisitos

Você também precisa desses pré-requisitos para executar e depurar suas funções localmente. Eles não precisam apenas criar ou publicar projetos no Azure Functions.

  • As Ferramentas Principais do Azure Functions, que permitem uma experiência de depuração local integrada. Quando você tem a extensão do Azure Functions instalada, a maneira mais fácil de instalar ou atualizar as Ferramentas Principais é executando o Azure Functions: Install or Update Azure Functions Core Tools comando na paleta de comandos.
  • Node.js, uma das versões suportadas. Use o node --version comando para verificar sua versão.

Criar um projeto das Funções do Azure

A extensão Functions permite que você crie o projeto de aplicativo de função necessário ao mesmo tempo em que cria sua primeira função. Use estas etapas para criar uma função acionada por HTTP em um novo projeto. Um gatilho HTTP é o modelo de gatilho de função mais simples de demonstrar.

  1. Na barra de atividades, selecione o ícone do Azure. Na área Espaço de trabalho (Local), abra a + lista e selecione Criar função.

    Captura de tela da janela de criação de um novo projeto.

  2. Quando solicitado, selecione Criar novo projeto. Selecione o local do diretório para o espaço de trabalho do projeto e escolha Selecionar.

    Você pode criar uma nova pasta ou escolher uma pasta vazia para o espaço de trabalho do projeto, mas não escolha uma pasta de projeto que já faça parte de um espaço de trabalho.

  3. Quando solicitado, selecione um idioma para o seu projeto. Se necessário, escolha uma versão linguística específica.

  4. Selecione o modelo de função de gatilho HTTP ou você pode selecionar Ignorar por enquanto para criar um projeto sem uma função. Você sempre pode adicionar uma função ao seu projeto mais tarde.

    Captura de tela para selecionar o gatilho HTTP.

    Gorjeta

    Você pode exibir modelos adicionais selecionando a opção Alterar filtro de modelo e definindo o valor como Núcleo ou Todos.

  5. Para o nome da função, digite HttpExample, selecione Enter e, em seguida, selecione Autorização da função .

    Esse nível de autorização requer que você forneça uma chave de função quando chamar o ponto de extremidade da função.

    Captura de tela para criar autorização de função.

  6. Na lista suspensa, selecione Adicionar ao espaço de trabalho.

     Captura de ecrã para selecionarAdicionar ao local de trabalho.

  7. Na janela Você confia nos autores dos arquivos nesta pasta?, selecione Sim.

    Captura de ecrã para confirmar a confiança nos autores dos ficheiros.

O Visual Studio Code cria uma função no idioma escolhido e no modelo para uma função acionada por HTTP.

Arquivos de projeto gerados

O modelo de projeto cria um projeto no idioma escolhido e instala as dependências necessárias. Para qualquer idioma, o novo projeto tem estes arquivos:

  • host.json: Permite configurar o host Functions. Essas configurações se aplicam quando você executa funções localmente e quando as executa no Azure. Para obter mais informações, consulte host.json referência.

  • local.settings.json: Mantém as configurações usadas quando você executa funções localmente. Essas configurações são usadas somente quando você está executando funções localmente. Para obter mais informações, consulte Arquivo de configurações locais.

    Importante

    Como o arquivo local.settings.json pode conter segredos, certifique-se de excluir o arquivo do controle do código-fonte do projeto.

Dependendo do seu idioma, estes outros ficheiros são criados:

Um arquivo de biblioteca de classes HttpExample.cs, cujo conteúdo varia dependendo se seu projeto é executado em um processo de trabalho isolado ou em processo com o host Functions.

  • Um arquivo pom.xml na pasta raiz que define os parâmetros do projeto e da implementação, incluindo as dependências do projeto e a versão Java. O pom.xml também contém informações sobre os recursos do Azure que são criados durante uma implantação.

  • Um arquivo Functions.java no caminho src que implementa a função.

Os arquivos gerados dependem do modelo de programação Node.js escolhido para Funções:

  • Um arquivo package.json na pasta raiz.

  • Um arquivo .js nomeado na pasta src\functions , que contém a definição da função e o código da função.

Uma pasta HttpExample que contém:

Os arquivos gerados dependem do modelo de programação Python escolhido para o Functions:

  • Um arquivo de requirements.txt no nível do projeto que lista os pacotes exigidos pelo Functions.

  • Um arquivo function_app.py que contém a definição de função e o código.

Neste ponto, você pode executar sua função de gatilho HTTP localmente.

Adicionar uma função ao seu projeto

Você pode adicionar uma nova função a um projeto existente com base em um dos modelos de gatilho Functions predefinidos. Para adicionar um novo gatilho de função, selecione F1 para abrir a paleta de comandos e, em seguida, localize e execute o comando Azure Functions: Create Function. Siga as instruções para escolher o tipo de gatilho e definir os atributos necessários do gatilho. Se o gatilho exigir uma chave de acesso ou cadeia de conexão para se conectar a um serviço, prepare esse item antes de criar o gatilho de função.

Esta ação adiciona um novo arquivo de biblioteca de classes (.cs) C# ao seu projeto.

Esta ação adiciona um novo arquivo Java (.java) ao seu projeto.

Os resultados desta ação dependem da versão do modelo Node.js.

  • Um arquivo package.json na pasta raiz.

  • Um arquivo .js nomeado na pasta src\functions , que contém a definição da função e o código da função.

Esta ação cria uma nova pasta no projeto. A pasta contém um novo arquivo de function.json e o novo arquivo de código do PowerShell.

Os resultados desta ação dependem da versão do modelo Python.

O Visual Studio Code adiciona novo código de função ao arquivo function_app.py (comportamento padrão) ou a outro arquivo Python selecionado.

Ligar aos serviços

Você pode conectar sua função a outros serviços do Azure adicionando associações de entrada e saída. As ligações ligam a sua função a outros serviços sem que tenha de escrever o código de ligação.

Por exemplo, a maneira como você define uma associação de saída que grava dados em uma fila de armazenamento depende do seu modelo de processo:

  1. Se necessário, adicione uma referência ao pacote que suporta sua extensão de vinculação.

  2. Atualize o método de função para adicionar um atributo que define o parâmetro de vinculação, como QueueOutput para uma ligação de saída de fila. Você pode usar um MultiResponse objeto para retornar várias mensagens ou vários fluxos de saída.

Por exemplo, para adicionar uma associação de saída que grava dados em uma fila de armazenamento, atualize o método de função para adicionar um parâmetro de vinculação definido usando a QueueOutput anotação. O OutputBinding<T> objeto representa as mensagens que são gravadas em uma associação de saída quando a função é concluída.

Por exemplo, a maneira como você define a associação de saída que grava dados em uma fila de armazenamento depende da versão do modelo Node.js:

Usando o modelo Node.js v4, você deve adicionar manualmente uma return: opção na definição da função usando a storageQueueoutput função no objeto, que define a fila de armazenamento para gravar a return saída. A saída é gravada quando a função é concluída.

O Visual Studio Code permite que você adicione associações ao seu arquivo de function.json seguindo um conjunto conveniente de prompts.

Para adicionar uma ligação, abra o comando pallet (F1) e digite Azure Functions: add binding..., escolha a função para a nova vinculação e siga os prompts, que variam dependendo do tipo de associação que está sendo adicionado à função.

A seguir estão exemplos de prompts para definir uma nova ligação de saída de armazenamento:

Pedido valor Description
Selecionar direção de vinculação out A ligação é uma ligação de saída.
Selecionar vinculação com direção Azure Queue Storage A associação é uma associação de fila de Armazenamento do Azure.
O nome usado para identificar essa associação em seu código msg Nome que identifica o parâmetro de vinculação referenciado em seu código.
A fila para a qual a mensagem será enviada outqueue O nome da fila na qual a associação grava. Quando o queueName não existe, a associação o cria no primeiro uso.
Selecione a configuração de "local.settings.json" MyStorageConnection O nome de uma configuração de aplicativo que contém a cadeia de conexão para a conta de armazenamento. A AzureWebJobsStorage configuração contém a cadeia de conexão para a conta de armazenamento que você criou com o aplicativo de função.

Você também pode clicar com o botão direito do mouse (Ctrl+clique no macOS) diretamente no arquivo function.json na pasta de funções, selecionar Adicionar vinculação e seguir as mesmas instruções.

Neste exemplo, a seguinte associação é adicionada bindings à matriz em seu arquivo de function.json:

{
    "type": "queue",
    "direction": "out",
    "name": "msg",
    "queueName": "outqueue",
    "connection": "MyStorageConnection"
}

Por exemplo, a maneira como você define a ligação de saída que grava dados em uma fila de armazenamento depende da versão do seu modelo Python:

O @queue_output decorador na função é usado para definir um parâmetro de vinculação nomeado para a saída para a fila de armazenamento, onde func.Out define qual saída é gravada.

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.

Iniciar sessão no Azure

Antes de criar recursos do Azure ou publicar seu aplicativo, você deve entrar no Azure.

  1. Se você ainda não estiver conectado, escolha o ícone do Azure na barra de atividades. Em seguida, na área Recursos, escolha Entrar no Azure....

    Captura de ecrã do início de sessão na janela do Azure no VS Code.

    Se já tiver sessão iniciada e conseguir ver as suas subscrições existentes, vá para a secção seguinte. Se você ainda não tiver uma conta do Azure, escolha Criar uma Conta do Azure.... Os alunos podem escolher Criar uma Conta do Azure para Estudantes....

  2. Quando solicitado no navegador, escolha sua conta do Azure e entre usando suas credenciais de conta do Azure. Se criar uma nova conta, pode iniciar sessão depois de a sua conta ser criada.

  3. Depois de iniciar sessão com êxito, pode fechar a nova janela do browser. As assinaturas que pertencem à sua conta do Azure são exibidas na barra lateral.

Criar recursos do Azure

Antes de publicar seu projeto do Functions no Azure, você deve ter um aplicativo de função e recursos relacionados em sua assinatura do Azure para executar seu código. A aplicação de funções proporciona um contexto de execução para as suas funções. Quando você publica do Visual Studio Code em um aplicativo de função no Azure, o projeto é empacotado e implantado no aplicativo de função selecionado em sua assinatura do Azure.

Ao criar um aplicativo de função no Azure, você pode escolher um caminho de criação de aplicativo de função rápida usando padrões ou um caminho avançado. Dessa forma, você tem mais controle sobre a criação dos recursos remotos.

Criação rápida de aplicativos de função

Nesta seção, você cria um aplicativo de função e recursos relacionados em sua assinatura do Azure.

  1. Escolha o ícone do Azure na barra de atividades. Em seguida, na área Recursos , selecione o + ícone e escolha a opção Criar Aplicativo de Função no Azure .

    Criar um recurso na sua subscrição do Azure

  2. Forneça as seguintes informações nos pedidos:

    Pedido Seleção
    Selecionar subscrição Escolha a subscrição a utilizar. Você não verá esse prompt quando tiver apenas uma assinatura visível em Recursos.
    Insira um nome globalmente exclusivo para o aplicativo de função Digite um nome válido em um caminho de URL. O nome digitado é validado para garantir que seja exclusivo no Azure Functions.
    Selecione uma pilha de tempo de execução Escolha a versão de idioma na qual você está executando localmente.
    Selecione um local para novos recursos Para um melhor desempenho, escolha uma região perto de si.

    A extensão mostra o status de recursos individuais à medida que eles estão sendo criados no Azure no painel Azure: Log de Atividades .

    Log de criação de recursos do Azure

  3. Quando a criação estiver concluída, os seguintes recursos do Azure serão criados na sua subscrição. Os recursos são nomeados com base no nome do aplicativo de função:

    • Um grupo de recursos, que é um contêiner lógico para recursos relacionados.
    • Uma conta de Armazenamento do Azure padrão, que mantém o estado e outras informações sobre seus projetos.
    • Um aplicativo de função, que fornece o ambiente para executar seu código de função. Um aplicativo de função permite agrupar funções como uma unidade lógica para facilitar o gerenciamento, a implantação e o compartilhamento de recursos dentro do mesmo plano de hospedagem.
    • Um plano do Serviço de Aplicativo, que define o host subjacente para seu aplicativo de função.
    • Uma instância do Application Insights conectada ao aplicativo de função, que rastreia o uso de suas funções no aplicativo.

    Depois de criar a aplicação de funções, é apresentada uma notificação e o pacote de implementação é aplicado.

    Gorjeta

    Por padrão, os recursos do Azure exigidos pelo seu aplicativo de função são criados com base no nome do aplicativo de função fornecido. Por padrão, eles também são criados no mesmo novo grupo de recursos com o aplicativo de função. Se você quiser personalizar os nomes desses recursos ou reutilizar recursos existentes, você precisa publicar o projeto com opções de criação avançadas .

Publicar um projeto em um novo aplicativo de função no Azure usando opções avançadas

As etapas a seguir publicam seu projeto em um novo aplicativo de função criado com opções avançadas de criação:

  1. Na paleta de comandos, insira Azure Functions: Create function app in Azure... (Avançado).

  2. Se não tiver sessão iniciada, ser-lhe-á pedido para Iniciar sessão no Azure. Você também pode Criar uma conta gratuita do Azure. Depois de entrar no navegador, volte para o Visual Studio Code.

  3. Seguindo as instruções, forneça estas informações:

    Pedido Seleção
    Insira um nome globalmente exclusivo para o novo aplicativo de função. Digite um nome globalmente exclusivo que identifique seu novo aplicativo de função e selecione Enter. Os carateres válidos para um nome de aplicação de funções são a-z, 0-9 e -.
    Selecione uma pilha de tempo de execução. Escolha a versão de idioma que você está executando localmente.
    Selecione um sistema operacional. Escolha Linux ou Windows. Os aplicativos Python devem ser executados no Linux.
    Selecione um grupo de recursos para novos recursos. Escolha Create new resource group (Criar novo grupo de recursos) e insira um nome de grupo de recursos, como myResourceGroup. Você também pode selecionar um grupo de recursos existente.
    Selecione um local para novos recursos. Selecione um local em uma região perto de você ou perto de outros serviços que suas funções acessam.
    Selecione um plano de hospedagem. Escolha Consumo para hospedagem de plano de consumo sem servidor, onde você será cobrado somente quando suas funções forem executadas.
    Selecione uma conta de armazenamento. Escolha Criar nova conta de armazenamento e, no prompt, insira um nome globalmente exclusivo para a nova conta de armazenamento usada pelo seu aplicativo de função. Os nomes das contas de armazenamento devem ter entre 3 e 24 caracteres e podem conter apenas números e letras minúsculas. Você também pode selecionar uma conta existente.
    Selecione um recurso do Application Insights para seu aplicativo. Escolha Create new Application Insights resource e, no prompt, insira um nome para a instância usada para armazenar dados de tempo de execução de suas funções.

    Uma notificação aparece depois que seu aplicativo de função é criado e o pacote de implantação é aplicado. Para exibir os resultados da criação e da implantação, incluindo os recursos do Azure que você criou, selecione Exibir saída nesta notificação.

Obter a URL de uma função acionada por HTTP no Azure

Para chamar uma função acionada por HTTP de um cliente, você precisa da URL da função, que está disponível após a implantação em seu aplicativo de função. Este URL inclui todas as teclas de função necessárias. Você pode usar a extensão para obter essas URLs para suas funções implantadas. Se você quiser apenas executar a função remota no Azure, use a funcionalidade Executar função agora da extensão.

  1. Selecione F1 para abrir a paleta de comandos e, em seguida, localize e execute o comando Azure Functions: Copiar URL da Função.

  2. Siga os prompts para selecionar seu aplicativo de função no Azure e, em seguida, o gatilho HTTP específico que você deseja invocar.

O URL da função é copiado para a área de transferência, juntamente com todas as chaves necessárias passadas code pelo parâmetro de consulta. Use uma ferramenta HTTP para enviar solicitações POST ou um navegador para enviar solicitações GET para a função remota.

Quando a extensão obtém a URL de uma função no Azure, a extensão usa sua conta do Azure para recuperar automaticamente as chaves necessárias para iniciar a função. Saiba mais sobre as teclas de acesso de função. Iniciar funções acionadas não HTTP requer o uso da chave admin.

Implantar arquivos de projeto

Recomendamos configurar a implantação contínua para que seu aplicativo de função no Azure seja atualizado quando você atualizar os arquivos de origem no local de origem conectado. Você também pode implantar seus arquivos de projeto do Visual Studio Code. Quando você publica a partir do Visual Studio Code, você pode aproveitar a tecnologia de implantação Zip.

Importante

A implantação em um aplicativo de função existente sempre substitui o conteúdo desse aplicativo no Azure.

  1. Na área Recursos da atividade do Azure, localize o recurso de aplicativo de função que você acabou de criar, clique com o botão direito do mouse no recurso e selecione Implantar no aplicativo funcional....

  2. Quando solicitado sobre a substituição de implantações anteriores, selecione Implantar para implantar seu código de função no novo recurso de aplicativo de função.

  3. Após a conclusão da implantação, selecione Exibir saída para exibir os resultados da criação e da implantação, incluindo os recursos do Azure que você criou. Se você perder a notificação, selecione o ícone de sino no canto inferior direito para vê-lo novamente.

    Captura de ecrã da janela Ver Saída.

Executar funções

A extensão Azure Functions permite executar funções individuais. Você pode executar funções em seu projeto em seu computador de desenvolvimento local ou em sua assinatura do Azure.

Para funções de gatilho HTTP, a extensão chama o ponto de extremidade HTTP. Para outros tipos de gatilhos, a extensão chama APIs de administrador para iniciar a função. O corpo da mensagem da solicitação enviada para a função depende do tipo de gatilho. Quando um gatilho requer dados de teste, você é solicitado a inserir dados em um formato JSON específico.

Executar funções no Azure

Para executar uma função no Azure a partir do Visual Studio Code, siga estes passos:

  1. Na paleta de comandos, insira Azure Functions: Execute function now e selecione sua assinatura do Azure.

  2. Na lista, escolha seu aplicativo de função no Azure. Se não vir a sua aplicação funcional, certifique-se de que tem sessão iniciada na subscrição correta.

  3. Na lista, escolha a função que deseja executar. Em Inserir corpo da solicitação, digite o corpo da mensagem da solicitação e pressione Enter para enviar essa mensagem de solicitação para sua função.

    O texto padrão em Enter request body indica o formato do corpo. Se o seu aplicativo de função não tiver funções, um erro de notificação será exibido com esse erro.

    Quando a função é executada no Azure e retorna uma resposta, o Visual Studio Code mostra uma notificação.

Também pode executar a sua função a partir da área Azure: Funções abrindo o menu de atalho para a função que pretende executar a partir da sua aplicação de função na sua subscrição do Azure e, em seguida, selecionando Executar Função Agora....

Quando você executa suas funções no Azure a partir do Visual Studio Code, a extensão usa sua conta do Azure para recuperar automaticamente as chaves necessárias para iniciar a função. Saiba mais sobre as teclas de acesso de função. Iniciar funções acionadas não HTTP requer o uso da chave admin.

Executar funções localmente

O tempo de execução local é o mesmo tempo de execução que hospeda seu aplicativo de função no Azure. As configurações locais são lidas a partir do arquivo local.settings.json. Para executar seu projeto do Functions localmente, você deve atender a mais requisitos.

Configurar o projeto para ser executado localmente

O tempo de execução do Functions usa uma conta de Armazenamento do Azure internamente para todos os tipos de gatilho diferentes de HTTP e webhooks. Portanto, você precisa definir a chave Values.AzureWebJobsStorage para uma cadeia de conexão válida da conta de Armazenamento do Azure.

Esta seção usa a extensão de Armazenamento do Azure para Visual Studio Code com o Gerenciador de Armazenamento do Azure para se conectar e recuperar a cadeia de conexão de armazenamento.

Para definir a cadeia de conexão da conta de armazenamento:

  1. No Visual Studio, abra o Cloud Explorer, expanda Conta>de Armazenamento Sua Conta de Armazenamento e selecione Propriedades e copie o valor da Cadeia de Conexão Primária.

  2. Em seu projeto, abra o arquivo de local.settings.json e defina o valor da chave AzureWebJobsStorage para a cadeia de conexão que você copiou.

  3. Repita a etapa anterior para adicionar chaves exclusivas à matriz Values para quaisquer outras conexões exigidas por suas funções.

Para obter mais informações, consulte Arquivo de configurações locais.

Depurar funções localmente

Para depurar suas funções, selecione F5. Se as Ferramentas Principais não estiverem disponíveis, você será solicitado a instalá-las. Quando o Core Tools está instalado e em execução, a saída é mostrada no Terminal. Esta etapa é a mesma que executar o func start comando Core Tools a partir do Terminal, mas com tarefas de compilação extras e um depurador anexado.

Quando o projeto está em execução, você pode usar o recurso Executar Função Agora... da extensão para acionar suas funções como faria quando o projeto é implantado no Azure. Com o projeto em execução no modo de depuração, os pontos de interrupção são atingidos no Visual Studio Code como seria de esperar.

  1. Na paleta de comandos, insira Azure Functions: Execute function now e escolha Local project.

  2. Escolha a função que deseja executar em seu projeto e digite o corpo da mensagem da solicitação em Inserir corpo da solicitação. Prima Enter para enviar esta mensagem de pedido para a sua função. O texto padrão em Enter request body deve indicar o formato do corpo. Se o seu aplicativo de função não tiver funções, um erro de notificação será exibido com esse erro.

  3. Quando a função é executada localmente e depois que a resposta é recebida, uma notificação é gerada no Visual Studio Code. As informações sobre a execução da função são mostradas no painel Terminal .

As chaves não são necessárias quando executadas localmente, o que se aplica às teclas de função e às teclas de nível de administrador.

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.

Por padrão, essas configurações não são migradas automaticamente quando o projeto é publicado no Azure. Após a conclusão da publicação, você terá a opção de publicar as configurações do local.settings.json para seu aplicativo de função no Azure. Para saber mais, consulte Publicar configurações do aplicativo.

Os valores em ConnectionStrings nunca são publicados.

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.

Configurações do aplicativo no Azure

As configurações no arquivo local.settings.json em seu projeto devem ser as mesmas que as configurações do aplicativo no aplicativo de função no Azure. Todas as configurações adicionadas ao local.settings.json você também deve adicionar ao aplicativo de função no Azure. Essas configurações não são carregadas automaticamente quando você publica o projeto. Da mesma forma, todas as configurações que você criar em seu aplicativo de função no portal devem ser baixadas para seu projeto local.

Publicar configurações do aplicativo

A maneira mais fácil de publicar as configurações necessárias em seu aplicativo de função no Azure é usar o link Configurações de carregamento que aparece depois que você publica seu projeto:

Captura de tela para carregar as configurações do aplicativo.

Você também pode publicar configurações usando o comando Azure Functions: Carregar Configuração Local na paleta de comandos. Você pode adicionar configurações individuais às configurações do aplicativo no Azure usando o comando Azure Functions: Add New Setting .

Gorjeta

Certifique-se de salvar seu arquivo local.settings.json antes de publicá-lo.

Se o ficheiro local estiver encriptado, é desencriptado, publicado e encriptado novamente. Se houver configurações com valores conflitantes nos dois locais, você será solicitado a escolher como proceder.

Exiba as configurações existentes do aplicativo na área Azure: Funções expandindo sua assinatura, seu aplicativo de função e Configurações do Aplicativo.

 Captura de tela para exibir as configurações do aplicativo de função no Visual Studio Code.

Baixar configurações do Azure

Se você criou configurações de aplicativo no Azure, pode baixá-las em seu arquivo de local.settings.json usando o comando Azure Functions: Baixar Configurações Remotas .

Tal como acontece com o carregamento, se o ficheiro local estiver encriptado, é desencriptado, atualizado e encriptado novamente. Se houver configurações com valores conflitantes nos dois locais, você será solicitado a escolher como proceder.

Instalar as extensões de enlace

Exceto para gatilhos HTTP e timer, as ligações são implementadas em pacotes de extensão.

Você deve instalar explicitamente os pacotes de extensão para os gatilhos e associações que precisam deles. O pacote específico que você instala depende do modelo de processo do seu projeto.

Execute o comando dotnet add package na janela Terminal para instalar os pacotes de extensão que você precisa em seu projeto. Este modelo demonstra como você adiciona uma associação para uma biblioteca de classes de processo isolado:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

Substitua <BINDING_TYPE_NAME> pelo nome do pacote que contém a ligação necessária. Você pode encontrar o artigo de referência de vinculação desejado na lista de ligações suportadas.

Substitua <TARGET_VERSION> no exemplo por uma versão específica do pacote, como 3.0.0-beta5. As versões válidas estão listadas nas páginas de pacotes individuais em NuGet.org. As versões principais que correspondem ao tempo de execução atual do Functions são especificadas no artigo de referência para a associação.

O script C# usa pacotes de extensão.

A maneira mais fácil de instalar extensões de vinculação é habilitar pacotes de extensão. Quando você habilita pacotes, um conjunto predefinido de pacotes de extensão é instalado automaticamente.

Para habilitar pacotes de extensão, abra o arquivo host.json e atualize seu conteúdo para corresponder ao seguinte código:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.*, 4.0.0)"
    }
}

Se, por algum motivo, você não puder usar um pacote de extensões para instalar extensões de vinculação para seu projeto, consulte Instalar extensões explicitamente.

Funções de monitorização

Quando você executa funções localmente, os dados de log são transmitidos para o console do Terminal. Você também pode obter dados de log quando seu projeto do Functions estiver em execução em um aplicativo de função no Azure. Você pode se conectar a logs de streaming no Azure para ver dados de log quase em tempo real. Você deve habilitar o Application Insights para uma compreensão mais completa de como seu aplicativo de função está se comportando.

Registos de transmissão em fluxo

Quando você está desenvolvendo um aplicativo, geralmente é útil ver as informações de registro em tempo quase real. Você pode visualizar um fluxo de arquivos de log que estão sendo gerados por suas funções. Ative os logs do palete de comandos com o Azure Functions: Start streaming logs comando. Esta saída é um exemplo de logs de streaming para uma solicitação para uma função acionada por HTTP:

Captura de tela para saída de logs de streaming para o gatilho H T T P.

Para saber mais, consulte Logs de streaming.

Application Insights

Você deve monitorar a execução de suas funções integrando seu aplicativo de função com o Application Insights. Quando você cria um aplicativo de função no portal do Azure, essa integração ocorre por padrão. Ao criar seu aplicativo de função durante a publicação do Visual Studio, você mesmo precisa integrar o Application Insights. Para saber como, consulte Habilitar a integração do Application Insights.

Para saber mais sobre o monitoramento usando o Application Insights, consulte Monitorar o Azure Functions.

Projetos de script C#

Por padrão, todos os projetos C# são criados como projetos de biblioteca de classes compilados em C#. Se preferir trabalhar com projetos de script C#, selecione o script C# como o idioma padrão nas configurações de extensão do Azure Functions:

  1. Selecione Configurações de preferências>de arquivo.>

  2. Vá para Extensões de Configurações>do>Usuário Azure Functions.

  3. Selecione C#Script da Função do Azure: Linguagem do Projeto.

Depois de concluir essas etapas, as chamadas feitas para as Ferramentas Principais subjacentes incluem a --csx opção, que gera e publica arquivos de projeto de script C# (.csx). Quando você tiver essa linguagem padrão especificada, todos os projetos criados serão padronizados para projetos de script C#. Você não será solicitado a escolher um idioma do projeto quando um padrão for definido. Para criar projetos em outros idiomas, você deve alterar essa configuração ou removê-la do arquivo de settings.json do usuário. Depois de remover essa configuração, você será solicitado novamente a escolher seu idioma ao criar um projeto.

Referência da paleta de comandos

A extensão do Azure Functions fornece uma interface gráfica útil na área para interagir com seus aplicativos de função no Azure. A mesma funcionalidade também está disponível como comandos na paleta de comandos (F1). Estes comandos do Azure Functions estão disponíveis:

Comando Azure Functions Description
Adicionar novas configurações Cria uma nova configuração de aplicativo no Azure. Para saber mais, consulte Publicar configurações do aplicativo. Também poderá ter de transferir esta definição para as suas definições locais.
Configurar origem de implantação Conecta seu aplicativo de função no Azure a um repositório Git local. Para saber mais, consulte Implantação contínua para o Azure Functions.
Conectar-se ao repositório GitHub Conecta seu aplicativo de função a um repositório GitHub.
Copiar URL da função Obtém a URL remota de uma função acionada por HTTP que está sendo executada no Azure. Para saber mais, consulte Obter a URL da função implantada.
Criar aplicativo de função no Azure Cria um novo aplicativo de função em sua assinatura no Azure. Para saber mais, consulte a seção sobre como publicar em um novo aplicativo de função no Azure.
Desencriptar configurações Descriptografa as configurações locais que foram criptografadas pelo Azure Functions: Criptografar Configurações.
Excluir aplicativo de função Remove um aplicativo de função da sua assinatura no Azure. Quando não houver outros aplicativos no plano do Serviço de Aplicativo, você terá a opção de excluí-los também. Outros recursos, como contas de armazenamento e grupos de recursos, não são excluídos. Para remover todos os recursos, você deve excluir o grupo de recursos. Seu projeto local não é afetado.
Excluir função Remove uma função existente de um aplicativo de função no Azure. Como essa exclusão não afeta seu projeto local, considere remover a função localmente e, em seguida , republicar seu projeto.
Excluir proxy Remove um proxy do Azure Functions do seu aplicativo de função no Azure. Para saber mais sobre proxies, consulte Trabalhar com proxies do Azure Functions.
Excluir configuração Exclui uma configuração de aplicativo de função no Azure. Essa exclusão não afeta as configurações no arquivo local.settings.json.
Desconectar do Repo Remove a conexão de implantação contínua entre um aplicativo de função no Azure e um repositório de controle do código-fonte.
Baixar Configurações remotas Transfere definições da aplicação de função escolhida no Azure para o seu ficheiro local.settings.json. Se o ficheiro local estiver encriptado, é desencriptado, atualizado e encriptado novamente. Se houver configurações com valores conflitantes nos dois locais, você será solicitado a escolher como proceder. Certifique-se de salvar as alterações no arquivo local.settings.json antes de executar este comando.
Editar configurações Altera o valor de uma configuração de aplicativo de função existente no Azure. Este comando não afeta as configurações no arquivo local.settings.json.
Criptografar configurações Criptografa itens individuais na Values matriz nas configurações locais. Nesse arquivo, IsEncrypted também é definido como true, que especifica que o tempo de execução local descriptografa as configurações antes de usá-las. Criptografe as configurações locais para reduzir o risco de vazamento de informações valiosas. No Azure, as configurações do aplicativo são sempre armazenadas criptografadas.
Execute a função agora Inicia manualmente uma função usando APIs de administração. Este comando é usado para testes, tanto localmente durante a depuração quanto em funções em execução no Azure. Quando uma função no Azure é iniciada, a extensão primeiro obtém automaticamente uma chave de administrador, que ela usa para chamar as APIs de administração remota que iniciam funções no Azure. O corpo da mensagem enviada para a API depende do tipo de gatilho. Os gatilhos de temporizador não exigem que você passe nenhum dado.
Inicializar projeto para uso com o VS Code Adiciona os arquivos de projeto necessários do Visual Studio Code a um projeto existente do Functions. Use este comando para trabalhar com um projeto que você criou usando as Ferramentas Principais.
Instalar ou atualizar as ferramentas principais do Azure Functions Instala ou atualiza as Ferramentas Principais do Azure Functions, que são usadas para executar funções localmente.
Voltar a implementar Permite reimplantar arquivos de projeto de um repositório Git conectado para uma implantação específica no Azure. Para publicar novamente atualizações locais do Visual Studio Code, publique novamente seu projeto.
Renomear configurações Altera o nome da chave de uma configuração de aplicativo de função existente no Azure. Este comando não afeta as configurações no arquivo local.settings.json. Depois de renomear as configurações no Azure, você deve baixar essas alterações para o projeto local.
Recomeçar Reinicia o aplicativo de função no Azure. A implantação de atualizações também reinicia o aplicativo de função.
Definir AzureWebJobsStorage Define o AzureWebJobsStorage valor da configuração do aplicativo. Essa configuração é exigida pelo Azure Functions. Ele é definido quando um aplicativo de função é criado no Azure.
Iniciar Inicia um aplicativo de função interrompida no Azure.
Iniciar Streaming de Logs Inicia os logs de streaming para o aplicativo de função no Azure. Use logs de streaming durante a solução de problemas remota no Azure se precisar ver as informações de log quase em tempo real. Para saber mais, consulte Logs de streaming.
Parar Interrompe um aplicativo de função em execução no Azure.
Parar Streaming Logs Interrompe os logs de streaming para o aplicativo de função no Azure.
Alternar como configuração de slot Quando habilitado, garante que uma configuração de aplicativo persista para um determinado slot de implantação.
Desinstalar as ferramentas principais do Azure Functions Remove as Ferramentas Principais do Azure Functions, que são exigidas pela extensão.
Carregar configurações locais Carrega as configurações do seu arquivo de local.settings.json para o aplicativo de função escolhido no Azure. Se o ficheiro local estiver encriptado, é desencriptado, carregado e encriptado novamente. Se houver configurações com valores conflitantes nos dois locais, você será solicitado a escolher como proceder. Certifique-se de salvar as alterações no arquivo local.settings.json antes de executar este comando.
Exibir confirmação no GitHub Mostra a confirmação mais recente em uma implantação específica quando seu aplicativo de função está conectado a um repositório.
Exibir logs de implantação Mostra os logs de uma implantação específica para o aplicativo de função no Azure.

Próximos passos

Para saber mais sobre as Ferramentas Principais do Azure Functions, consulte Trabalhar com as Ferramentas Principais do Azure Functions.

Para saber mais sobre como desenvolver funções como bibliotecas de classes .NET, consulte Referência do desenvolvedor do Azure Functions C#. Este artigo também fornece links para exemplos de como usar atributos para declarar os vários tipos de associações suportadas pelo Azure Functions.