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
Visual Studio Code instalado em uma das plataformas suportadas.
Extensão do Azure Functions. Você também pode instalar o pacote de extensão Ferramentas do Azure, que é recomendado para trabalhar com recursos do Azure.
Uma subscrição ativa do Azure. Se você ainda não tiver uma conta, poderá criar uma a partir da extensão no Visual Studio Code.
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.
A extensão C# para o Visual Studio Code.
.NET (CLI), que está incluído no SDK do .NET.
Depurador para extensão Java.
PowerShell 7.2 recomendado. Para obter informações sobre a versão, consulte Versões do PowerShell.
Tempo de execução do .NET 6.0.
Extensão do Python para o Visual Studio Code.
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.
No Visual Studio Code, pressione F1 para abrir a paleta de comandos e procure e execute o comando
Azure Functions: Create New Project...
. 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.
Em vez disso, você pode executar o comando
Azure Functions: Create New Containerized Project...
para também obter um Dockerfile gerado para o projeto.Quando solicitado, selecione um idioma para o seu projeto. Se necessário, escolha uma versão linguística específica.
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.
Gorjeta
Você pode exibir modelos adicionais selecionando a opção Alterar filtro de modelo e definindo o valor como Núcleo ou Todos.
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.
Na lista suspensa, selecione Adicionar ao espaço de trabalho.
Na janela Você confia nos autores dos arquivos nesta pasta?, selecione Sim.
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.
Dockerfile (opcional): Permite criar um aplicativo de função em contêiner a partir do seu projeto usando uma imagem base aprovada para o seu projeto. Você só obtém esse arquivo quando executa o comando
Azure Functions: Create New Containerized Project...
. Você pode adicionar um Dockerfile a um projeto existente usando ofunc init --docker-only
comando em Core Tools.
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:
Uma pasta HttpExample que contém:
- O arquivo de definição function.json
- Um arquivo run.ps1, que contém o código da função.
Os arquivos gerados dependem do modelo de programação Python escolhido para o Functions:
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.
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.
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:
Se necessário, adicione uma referência ao pacote que suporta sua extensão de vinculação.
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 umMultiResponse
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:
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 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.
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.
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.
Se ainda não tiver sessão iniciada, na barra de atividades, selecione o ícone do Azure. Em seguida, em Recursos, selecione Entrar no Azure.
Se já tiver sessão iniciada e conseguir ver as suas subscrições existentes, vá para a secção seguinte. Se ainda não tiver uma conta do Azure, selecione Criar uma Conta do Azure. Os alunos podem selecionar Criar uma Conta do Azure para Estudantes.
Quando você for solicitado no navegador, selecione 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.
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 que ofereça opções avançadas, como usar recursos existentes do Azure. Dessa forma, você tem mais controle sobre a criação dos recursos remotos.
Nesta seção, você cria um aplicativo de função e recursos relacionados em sua assinatura do Azure. Muitas das decisões de criação de recursos são tomadas para você com base em comportamentos padrão. Para obter mais controle sobre os recursos criados, você deve, em vez disso , criar seu aplicativo de função com opções avançadas.
No Visual Studio Code, selecione F1 para abrir a paleta de comandos. No prompt (
>
), insira e selecione Azure Functions: Create Function App in Azure.Nos prompts, forneça as seguintes informações:
Pedido Ação Selecionar subscrição Selecione a assinatura do Azure a ser usada. O prompt não aparece quando você tem apenas uma assinatura visível em Recursos. Insira um nome globalmente exclusivo para o aplicativo de função Insira um nome válido em um caminho de URL. O nome introduzido é validado para garantir que é exclusivo no Azure Functions. Selecione uma pilha de tempo de execução Selecione a versão de idioma que você executa localmente no momento. Selecione um local para novos recursos Selecione uma região do Azure. Para um melhor desempenho, selecione uma região perto de si. No painel Azure: Log de Atividades, a extensão do Azure mostra o status de recursos individuais à medida que são criados no Azure.
Quando o aplicativo de função é criado, os seguintes recursos relacionados são criados em sua assinatura do Azure. Os recursos são nomeados com base no nome que você inseriu para seu 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 do Azure, que define o host subjacente para seu aplicativo de função.
- Uma instância do Application Insights conectada ao aplicativo de função e 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 que você insere para seu aplicativo de função. Por padrão, os recursos são criados com o aplicativo de função no mesmo novo grupo de recursos. Se você quiser personalizar os nomes dos recursos associados ou reutilizar recursos existentes, publique o projeto com opções avançadas de criação.
Criar uma implantação de Aplicativos de Contêiner do Azure
Você usa o Visual Studio Code para criar recursos do Azure para um projeto de código em contêiner. Quando a extensão deteta a presença de um Dockerfile durante a criação de recursos, ela pergunta se você deseja implantar a imagem de contêiner em vez de apenas o código. O Visual Studio Code cria um ambiente de Aplicativos de Contêiner do Azure para seu projeto de código em contêiner integrado ao Azure Functions. Para obter mais informações, consulte Aplicativos de contêiner do Azure hospedando o Azure Functions.
Nota
A implantação de contêiner requer a extensão Aplicativos de Contêiner do Azure para Visual Studio Code. Esta extensão está atualmente em pré-visualização.
O processo de criação depende se você escolhe uma criação rápida ou se precisa usar opções avançadas:
No Visual Studio Code, pressione F1 para abrir a paleta de comandos e procure e execute o comando
Azure Functions: Create Function App in Azure...
.Quando solicitado, escolha Imagem de contêiner.
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 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 .
Para obter mais informações sobre os recursos necessários para executar suas funções em contêineres em Aplicativos de Contêiner, consulte Recursos necessários.
Nota
Atualmente, você não pode usar o Visual Studio Code para implantar um aplicativo de função em contêiner em um ambiente de Aplicativos de Contêiner integrado ao Azure Functions. Em vez disso, você deve publicar sua imagem de contêiner em um registro de contêiner e, em seguida, definir essa imagem do Registro como a fonte de implantação para seu aplicativo de função hospedado em Aplicativos de Contêiner. Para obter mais informações, consulte Criar seu aplicativo de função em um contêiner e Atualizar uma imagem no Registro.
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.
Na paleta de comandos, insira e selecione Azure Functions: Deploy to Function App.
Selecione o aplicativo de função que você acabou de criar. 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.
Quando a implantação estiver concluída, 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.
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.
Selecione F1 para abrir a paleta de comandos e, em seguida, localize e execute o comando Azure Functions: Copiar URL da Função.
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.
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:
Na paleta de comandos, insira Azure Functions: Execute function now e selecione sua assinatura do Azure.
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.
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:
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.
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.
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.
Na paleta de comandos, insira Azure Functions: Execute function now e escolha Local project.
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.
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:
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.
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.
Gorjeta
Você também pode usar os comandos NuGet no C# Dev Kit para instalar pacotes de extensão de vinculaçã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:
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:
Selecione Configurações de preferências>de arquivo.>
Vá para Extensões de Configurações>do>Usuário Azure Functions.
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.