Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Sempre que possível, você deve criar e validar seu projeto de código do Azure Functions em um ambiente de desenvolvimento local. O Azure Functions Core Tools fornece uma versão de runtime local do Azure Functions que se integra às ferramentas de desenvolvimento populares para um desenvolvimento integrado, depuração e implantações. Suas funções locais podem até mesmo se conectar aos serviços dinâmicos do Azure.
Este artigo fornece algumas diretrizes compartilhadas para o desenvolvimento local, como trabalhar com o arquivolocal.settings.json. Ele também se vincula a diretrizes específicas do ambiente de desenvolvimento.
Dica
Você pode encontrar informações detalhadas sobre como desenvolver funções localmente nos artigos de diretrizes específicos do IDE vinculados.
Ambientes de desenvolvimento locais
A maneira como você desenvolve funções em seu computador local depende de seu idioma e preferências de ferramentas. Escolha seu idioma preferido na parte superior do artigo.
Dica
Todo o desenvolvimento local é auxiliado pelo Azure Functions Core Tools, que fornece o runtime do Functions para depuração em um ambiente local.
Você pode usar esses ambientes de desenvolvimento para codificar funções localmente em seu idioma preferido:
| Ambiente | Descrição |
|---|---|
| Visual Studio | As ferramentas do Azure Functions estão incluídas na carga de trabalho de desenvolvimento do Azure do Visual Studio. Permite compilar e implantar seu código de função C# no Azure como uma biblioteca de classes do .NET. Inclui as Ferramentas Essenciais para teste local. Para saber mais, confira Criar sua primeira função em C# no Azure usando o Visual Studio |
| Código do Visual Studio | A extensão do Azure Functions para Visual Studio Code adiciona suporte ao Functions ao Visual Studio Code. Requer as Ferramentas Essenciais. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar sua primeira função usando o Visual Studio Code. |
| Prompt de comando ou terminal | O Azure Functions Core Tools fornece os principais tempos de execução e modelos para a criação de funções, o que permite o desenvolvimento local. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar uma função C# no Azure na linha de comando. |
| Ambiente | Descrição |
|---|---|
| Maven | O arquétipo do Maven usa ferramentas principais para habilitar o desenvolvimento de funções Java. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função com Java e Maven. |
| Código do Visual Studio | A extensão do Azure Functions para Visual Studio Code adiciona suporte ao Functions ao Visual Studio Code. Requer as Ferramentas Essenciais. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar sua primeira função usando o Visual Studio Code. |
| Ideia do IntelliJ | O arquétipo do Maven e as Ferramentas Principais permitem desenvolver suas funções usando o IntelliJ. Para obter mais informações, consulte Criar sua primeira função Java no Azure usando o IntelliJ. |
| Eclipse | O arquétipo do Maven e as Ferramentas Principais permitem desenvolver suas funções usando o Eclipse. Para saber mais, confira Criar sua primeira função Java no Azure usando o Ecplise. |
| Ambiente | Descrição |
|---|---|
| Código do Visual Studio | A extensão do Azure Functions para Visual Studio Code adiciona suporte ao Functions ao Visual Studio Code. Requer as Ferramentas Essenciais. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar sua primeira função usando o Visual Studio Code. |
| Prompt de comando ou terminal | O Azure Functions Core Tools fornece os principais tempos de execução e modelos para a criação de funções, o que permite o desenvolvimento local. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, consulte Criar uma função Node.js no Azure na linha de comando. |
| Ambiente | Descrição |
|---|---|
| Código do Visual Studio | A extensão do Azure Functions para Visual Studio Code adiciona suporte ao Functions ao Visual Studio Code. Requer as Ferramentas Essenciais. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar sua primeira função usando o Visual Studio Code. |
| Prompt de comando ou terminal | O Azure Functions Core Tools fornece os principais tempos de execução e modelos para a criação de funções, o que permite o desenvolvimento local. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar uma função do PowerShell no Azure na linha de comando. |
| Ambiente | Descrição |
|---|---|
| Código do Visual Studio | A extensão do Azure Functions para Visual Studio Code adiciona suporte ao Functions ao Visual Studio Code. Requer as Ferramentas Essenciais. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar sua primeira função usando o Visual Studio Code. |
| Prompt de comando ou terminal | O Azure Functions Core Tools fornece os principais tempos de execução e modelos para a criação de funções, o que permite o desenvolvimento local. Dá suporte ao desenvolvimento no Linux, macOS e Windows. Para saber mais, confira Criar uma função python no Azure na linha de comando. |
Cada um desses ambientes de desenvolvimento local permite criar projetos de aplicativos de funções e usar modelos de funções predefinidos para criar novas funções. Cada um usa as Ferramentas Essenciais para que você possa testar e depurar suas funções com relação ao runtime do Functions em seu próprio computador, assim como faria com qualquer outro aplicativo. Você também pode publicar seu projeto de aplicativo de funções de qualquer um desses ambientes no Azure.
Arquivos de projeto locais
Um diretório de projeto do Functions contém os seguintes arquivos na pasta raiz do projeto, independentemente da linguagem:
| Nome do arquivo | Descrição |
|---|---|
| host.json | Para saber mais, confira a referência de host.json. |
| local.settings.json | Configurações usadas pelo Core Tools ao executar localmente, incluindo as configurações do aplicativo. Para saber mais, confira Arquivo de configurações local. |
| .gitignore | Impede que o arquivo local.settings.json seja acidentalmente publicado em um repositório Git. Para saber mais, confira Arquivo de configurações local. |
| .vscode\extensions.json | Arquivo de configurações usado ao abrir a pasta do projeto no Visual Studio Code. |
Outros arquivos no projeto dependem da linguagem e das funções específicas. Para saber mais, confira o guia do desenvolvedor em seu idioma.
Arquivo de configurações local
O local.settings.json arquivo armazena as configurações do aplicativo e das ferramentas de desenvolvimento locais. As configurações no arquivo local.settings.json são usadas somente quando você executa o projeto localmente. Ao publicar seu projeto no Azure, adicione também as configurações necessárias às configurações do aplicativo para o aplicativo de funções.
Importante
Como o local.settings.json arquivo pode conter segredos, como cadeias de conexão, você deve ter cuidado ao se comprometer com o controle do código-fonte. As ferramentas que dão suporte ao Functions fornecem maneiras de sincronizar as local.settings.json configurações no arquivo com as configurações do aplicativo de funções no qual o projeto é implantado.
O local.settings.json arquivo tem essa estrutura:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>",
"AzureWebJobs.HttpExample.Disabled": "true"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*",
"CORSCredentials": false
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
Essas configurações têm suporte quando você executa projetos localmente:
| Configuração | Descrição |
|---|---|
IsEncrypted |
Quando essa configuração é definida como true, todos os valores são criptografados com uma chave do computador local. Usado com func settings comandos. O valor padrão é false. Talvez você queira criptografar o arquivo local.settings.json no computador local quando ele contiver segredos, como cadeias de conexão de serviço. O host descriptografa automaticamente as configurações quando ele é executado. Use o comando func settings decrypt antes de tentar ler as configurações criptografadas localmente. |
Values |
Coleção de configurações de aplicativo usadas quando um projeto é executado localmente. Esses pares de chave-valor (cadeia-cadeia) correspondem às configurações do aplicativo de funções no Azure, como AzureWebJobsStorage. Muitos gatilhos e associações têm uma propriedade que se refere a uma configuração de aplicativo de cadeia de conexão, como Connection para o gatilho do Armazenamento de blobs. Para essas propriedades, você precisa de uma configuração de aplicativo definida na matriz Values. Confira a tabela subsequente para obter uma lista de configurações comumente usadas. Os valores devem ser cadeias de caracteres e não matrizes ou objetos JSON. Os nomes de configuração não podem incluir um sublinhado duplo ( __) e não devem incluir dois pontos (:). Os caracteres de sublinhado duplo são reservados pelo runtime e os dois-pontos são reservados para dar suporte à injeção de dependência. |
Host |
As configurações nesta seção personalizam o processo de host do Functions quando você executa projetos localmente. Essas configurações são separadas das configurações de host.json, que também se aplicam quando você executa projetos no Azure. |
LocalHttpPort |
Define a porta padrão usada ao executar o host local do Functions (func host start e func run). A opção de linha de comando --port tem precedência sobre essa configuração. Por exemplo, ao executar no IDE do Visual Studio, você pode alterar o número da porta navegando até a janela "Propriedades do Projeto -> Depurar" e especificando explicitamente o número da porta em um comando host start --port <your-port-number> que pode ser fornecido no campo "Argumentos do Aplicativo". |
CORS |
Define as origens permitidas para CORS (Compartilhamento de recurso entre origens). As origens são fornecidas como uma lista separada por vírgulas, sem espaços. Há suporte para o valor do caractere curinga (*), que permite solicitações de qualquer origem. |
CORSCredentials |
Quando definido como true, withCredentials solicitações são permitidas. |
ConnectionStrings |
Uma coleção. Não use essa coleção para as cadeias de conexão usadas por suas associações de função. Ela só é usada por estruturas que devem obter cadeias de conexão da seção ConnectionStrings de um arquivo de configuração, como o Entity Framework. As cadeias de caracteres de conexão neste objeto são adicionadas ao ambiente com o tipo de provedor de System.Data.SqlClient. Os itens nesta coleção não são publicados no Azure com outras configurações de aplicativo. É necessário adicionar explicitamente esses valores à coleção Connection strings das configurações do aplicativo de funções. Ao criar um SqlConnection no código de função, armazene o valor da cadeia de conexão com as outras conexões em Configurações do Aplicativo no portal. |
As seguintes configurações de aplicativo podem ser incluídas na matriz Values ao serem executadas localmente:
| Configuração | Valores | Descrição |
|---|---|---|
AzureWebJobsStorage |
Cadeia de conexão da conta de armazenamento, ouUseDevelopmentStorage=true |
Contém a cadeia de conexão para uma conta de Armazenamento do Azure. Necessário quando são usados gatilhos diferentes de HTTP. Para obter mais informações, confira a referência AzureWebJobsStorage.Quando o Emulador do Azurite tiver sido instalado localmente e você configurar AzureWebJobsStorage em UseDevelopmentStorage=true, o Core Tools usará o emulador. Para mais informações, confira Emulador de armazenamento local. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true|false |
Para desabilitar uma função durante a execução local, adicione "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" à coleção, em que <FUNCTION_NAME> é o nome da função. Para saber mais, confira Como desabilitar funções no Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnetdotnet-isolatednodejavapowershellpython |
Indica a linguagem de destino do runtime do Functions. Necessário para a versão 2.x e versões superiores do runtime do Functions. Essa configuração é gerada para seu projeto pelo Core Tools. Para saber mais, confira a referência FUNCTIONS_WORKER_RUNTIME. |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Indica usar o PowerShell 7 ao executar localmente. Se não estiver definido, o PowerShell Core 6 será usado. Essa configuração é usada apenas durante a execução local. A versão do runtime do PowerShell é determinada pela configuração de site do powerShellVersion, quando executada no Azure, que pode ser definida no portal. |
Para saber como usar valores da values matriz como variáveis de ambiente em seu código de função, consulte variáveis de ambiente no guia do desenvolvedor.
Para saber como usar valores da values matriz como variáveis de ambiente em seu código de função, consulte variáveis de ambiente no guia do desenvolvedor.
Para saber como usar valores da values matriz como variáveis de ambiente em seu código de função, consulte variáveis de ambiente no guia do desenvolvedor.
Para saber como usar valores da values matriz como variáveis de ambiente em seu código de função, consulte variáveis de ambiente no guia do desenvolvedor.
Sincronizar configurações
Ao desenvolver suas funções localmente, quaisquer configurações locais exigidas pelo aplicativo também devem estar presentes nas configurações do aplicativo de funções no qual o código é implantado. Talvez você também precise baixar as configurações atuais do aplicativo de funções para seu projeto local. Embora você possa definir manualmente as configurações do aplicativo no portal do Azure, as ferramentas a seguir também permitem sincronizar as configurações do aplicativo com as configurações locais em seu projeto:
Gatilhos e associações
Ao desenvolver suas funções localmente, você precisa levar em consideração os comportamentos de gatilho e associação. Para gatilhos HTTP, você pode chamar o ponto de extremidade HTTP no computador local, usando http://localhost/. Para funções não acionadas por HTTP, há várias opções para serem executadas localmente:
- A maneira mais fácil de testar associações durante o desenvolvimento local é usar cadeias de conexão direcionadas aos serviços dinâmicos do Azure. Você pode ter como alvo serviços dinâmicos adicionando as configurações de cadeia de conexão apropriadas na matriz
Valuesno arquivo local.settings.json. Quando você faz isso, as execuções locais durante o teste podem afetar seus serviços de produção. Em vez disso, considere a configuração de serviços separados a serem usados durante o desenvolvimento e o teste e, em seguida, alterne para serviços diferentes durante a produção. - Para gatilhos baseados em armazenamento, você pode usar um emulador de armazenamento local.
- Você pode executar manualmente funções de acionamento não HTTP usando endpoints especiais de administrador. Para obter mais informações, consulte Executar manualmente uma função não disparada por HTTP.
Durante o teste local, você deve executar o host fornecido pelo Core Tools (func.exe) localmente. Para obter mais informações, consulte Azure Functions Core Tools.
Ferramentas de Teste de HTTP
Durante o desenvolvimento, é fácil chamar qualquer um dos pontos de extremidade de função de um navegador da Web quando eles dão suporte ao método HTTP GET. No entanto, para outros métodos HTTP que dão suporte a cargas, como POST ou PUT, você precisa usar uma ferramenta de teste de HTTP para criar e enviar essas solicitações HTTP para seus pontos de extremidade de função.
Atenção
Para cenários em que suas solicitações devem incluir dados confidenciais, use uma ferramenta que proteja seus dados e reduza o risco de expor dados confidenciais ao público. Os dados confidenciais que você deve proteger podem incluir: credenciais, segredos, tokens de acesso, chaves de API, dados de localização geográfica, até mesmo dados pessoais.
Você pode manter seus dados seguros escolhendo uma ferramenta de teste de HTTP que funciona offline ou localmente, não sincroniza seus dados com a nuvem e não exige que você entre em uma conta online. Algumas ferramentas também podem proteger seus dados contra exposição acidental implementando recursos de segurança específicos.
Evite usar ferramentas que armazenam centralmente seu histórico de solicitação HTTP (incluindo informações confidenciais), que não seguem as práticas recomendadas de segurança ou não respeitam as preocupações de privacidade de dados.
Considere usar uma dessas ferramentas para enviar solicitações HTTP com segurança para seus pontos de extremidade de função:
- Visual Studio Code com uma extensão do Visual Studio Marketplace, como Cliente REST
- Invoke-RestMethod do PowerShell
- Microsoft Edge – ferramenta Console de Rede
- Bruno
- curl
Emulador de armazenamento local
Durante o desenvolvimento local, você pode usar o emulador Azurite local ao testar funções com associações do Armazenamento do Azure (Armazenamento de Filas, Armazenamento de Blobs e Armazenamento de Tabelas), sem precisar se conectar aos serviços de armazenamento remoto. O Azurite se integra ao Visual Studio Code e ao Visual Studio, e você também pode executá-lo no prompt de comando usando o npm. Para obter mais informações, consulte Usar o emulador Azurite para desenvolvimento local do armazenamento do Azure.
A seguinte configuração na coleção Values do arquivo local.settings.json informa ao host local do Functions para usar o Azurite para a conexão AzureWebJobsStorage padrão:
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
Com esse valor de configuração, qualquer gatilho ou associação do Armazenamento do Azure que usa AzureWebJobsStorage como conexão se conecta ao Azurite ao ser executado localmente. Tenha essas considerações em mente ao usar a emulação de armazenamento durante a execução local:
- Você precisa ter o Azurite instalado e em execução.
- Você deve testá-lo com uma conexão de armazenamento real com os serviços do Azure antes de publicá-lo no Azure.
- Ao publicar seu projeto, não publique a configuração
AzureWebJobsStoragecomoUseDevelopmentStorage=true. No Azure, a configuraçãoAzureWebJobsStorageprecisa ser sempre a cadeia de conexão da conta de armazenamento usada pelo aplicativo de funções. Para obter mais informações, consulteAzureWebJobsStorage.
Artigos relacionados
- Para saber mais sobre o desenvolvimento local de funções usando o Visual Studio, consulte Desenvolver o Azure Functions usando o Visual Studio.
- Para saber mais sobre o desenvolvimento local de funções usando o Visual Studio Code em um computador Mac, Linux ou Windows, consulte Desenvolver o Azure Functions usando o Visual Studio Code.
- Para saber mais sobre como desenvolver funções do prompt de comando ou do terminal, consulte Trabalhar com as Ferramentas Essenciais do Azure Functions.