Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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. As Ferramentas Principais do Azure Functions fornecem uma versão de tempo de execução local do Azure Functions que se integra com ferramentas de desenvolvimento populares para um desenvolvimento, depuração e implantações integrados. Suas funções locais podem até se conectar a serviços ao vivo do Azure.
Este artigo fornece algumas orientações compartilhadas para o desenvolvimento local, como trabalhar com o arquivolocal.settings.json. Está também ligado a orientações específicas para o ambiente de desenvolvimento.
Sugestão
Você pode encontrar informações detalhadas sobre como desenvolver funções localmente nos artigos de orientação específicos do IDE vinculados.
Ambientes de desenvolvimento local
A forma como desenvolve funções no seu computador local depende das suas preferências de idioma e ferramentas. Certifique-se de escolher o seu idioma preferido na parte superior do artigo.
Sugestão
Todo o desenvolvimento local depende das Ferramentas Core do Azure Functions para fornecer o tempo de execução do Functions para depuração num 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 .NET. Inclui as ferramentas principais para testes locais. Para saber mais, consulte Criar sua primeira função C# no Azure usando o Visual Studio |
Visual Studio Code | A extensão do Azure Functions para Visual Studio Code adiciona suporte a Functions ao Visual Studio Code. Requer as ferramentas principais. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função usando o Visual Studio Code. |
Prompt de comando ou terminal | As Ferramentas Principais do Azure Functions fornecem o tempo de execução principal e os modelos para a criação de funções, que permitem o desenvolvimento local. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar uma função C# no Azure a partir da linha de comando. |
Ambiente | Descrição |
---|---|
Maven | O arquétipo Maven usa Core Tools para permitir o desenvolvimento de funções Java. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função com Java e Maven. |
Visual Studio Code | A extensão do Azure Functions para Visual Studio Code adiciona suporte a Functions ao Visual Studio Code. Requer as ferramentas principais. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função usando o Visual Studio Code. |
IntelliJ IDEA | O arquétipo Maven e as ferramentas principais permitem que você desenvolva 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 Maven e as ferramentas principais permitem que você desenvolva suas funções usando o Eclipse. Para saber mais, consulte Criar sua primeira função Java no Azure usando o Ecplise. |
Ambiente | Descrição |
---|---|
Visual Studio Code | A extensão do Azure Functions para Visual Studio Code adiciona suporte a Functions ao Visual Studio Code. Requer as ferramentas principais. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função usando o Visual Studio Code. |
Prompt de comando ou terminal | As Ferramentas Principais do Azure Functions fornecem o tempo de execução principal e os modelos para a criação de funções, que permitem o desenvolvimento local. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar uma função Node.js no Azure a partir da linha de comando. |
Ambiente | Descrição |
---|---|
Visual Studio Code | A extensão do Azure Functions para Visual Studio Code adiciona suporte a Functions ao Visual Studio Code. Requer as ferramentas principais. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função usando o Visual Studio Code. |
Prompt de comando ou terminal | As Ferramentas Principais do Azure Functions fornecem o tempo de execução principal e os modelos para a criação de funções, que permitem o desenvolvimento local. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar uma função do PowerShell no Azure a partir da linha de comando. |
Ambiente | Descrição |
---|---|
Visual Studio Code | A extensão do Azure Functions para Visual Studio Code adiciona suporte a Functions ao Visual Studio Code. Requer as ferramentas principais. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar sua primeira função usando o Visual Studio Code. |
Prompt de comando ou terminal | As Ferramentas Principais do Azure Functions fornecem o tempo de execução principal e os modelos para a criação de funções, que permitem o desenvolvimento local. Suporta desenvolvimento em Linux, macOS e Windows. Para saber mais, consulte Criar uma função Python no Azure a partir da linha de comando. |
Cada um desses ambientes de desenvolvimento local permite criar projetos de aplicativo de função e usar modelos de função predefinidos para criar novas funções. Cada um usa as Ferramentas Principais para que você possa testar e depurar suas funções em relação ao tempo de execução real do Functions em sua própria máquina, assim como faria com qualquer outro aplicativo. Você também pode publicar seu projeto de aplicativo de função de qualquer um desses ambientes no Azure.
Arquivos de projeto locais
Um diretório de projeto Functions contém os seguintes arquivos na pasta raiz do projeto, independentemente do idioma:
Nome de ficheiro | Descrição |
---|---|
host.json | Para saber mais, consulte a referência host.json. |
local.settings.json | Configurações usadas pelas Ferramentas Principais quando executadas localmente, incluindo configurações de aplicativos. Para saber mais, consulte Arquivo de configurações locais. |
.gitignore | Impede que o arquivo local.settings.json seja publicado acidentalmente em um repositório Git. Para saber mais, consulte Arquivo de configurações locais. |
.vscode\extensions.json | Arquivo de configurações usado ao abrir a pasta do projeto no Visual Studio Code. |
Outros arquivos no projeto dependem do seu idioma e funções específicas. Para obter mais informações, consulte o guia do desenvolvedor para seu idioma.
Ficheiro de definições locais
O local.settings.json
arquivo armazena as configurações do aplicativo e as configurações usadas pelas ferramentas de desenvolvimento local. As configurações no local.settings.json
arquivo são usadas somente quando você está executando seu projeto localmente. Quando publicar o seu projeto no Azure, certifique-se de que também adiciona quaisquer definições necessárias às definições da aplicação para a aplicação de funções.
Importante
Como o local.settings.json
arquivo pode conter segredos, como cadeias de conexão, você deve ter cuidado ao confirmar o controle do código-fonte. As ferramentas que suportam Funções fornecem maneiras de sincronizar as configurações no local.settings.json
arquivo com as configurações do aplicativo no aplicativo de função no qual seu projeto é implantado.
O local.settings.json
ficheiro tem esta 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 são suportadas 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 de máquina local. Usado com os comandos func settings O valor predefinido é false . Talvez você queira criptografar o arquivo local.settings.json em seu computador local quando ele contiver segredos, como cadeias de conexão de serviço. O host descriptografa automaticamente as configurações quando é executado. Utilize 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 está sendo executado localmente. Esses pares chave-valor (string-string) correspondem às configurações do aplicativo em seu aplicativo de função no Azure, como AzureWebJobsStorage . Muitos gatilhos e associações têm uma propriedade que se refere a uma definição de aplicação para a cadeia de conexão, como Connection para o gatilho de Armazenamento de Blobs. Para estas propriedades, precisa-se de uma definição de configuração no array Values . Consulte a tabela subsequente para obter uma lista das configurações mais usadas. Os valores devem ser cadeias de caracteres e não objetos ou matrizes JSON. Os nomes de configuração não podem incluir um sublinhado duplo ( __ ) e não devem incluir dois pontos (: ). Caracteres sublinhados duplos são reservados pelo tempo de execução e os dois pontos são reservados para suportar a 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 de Funções (func host start e func run ). A --port opção de linha de comando 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 -> Depuração" e especificando explicitamente o número da porta em um host start --port <your-port-number> comando que pode ser fornecido no campo "Argumentos do aplicativo". |
CORS |
Define as origens permitidas para o compartilhamento de recursos entre origens (CORS). As origens são fornecidas como uma lista separada por vírgulas sem espaços. O valor curinga (*) é suportado, o que permite solicitações de qualquer origem. |
CORSCredentials |
Quando definido como true , permite withCredentials solicitações. |
ConnectionStrings |
Uma coleção. Não use esta coleção para as cadeias de conexão usadas pelas suas associações de funções. Essa coleção é usada apenas por frameworks que tipicamente obtêm cadeias de conexão da seção ConnectionStrings de um ficheiro de configuração, como Entity Framework. As cadeias de conexão neste objeto são adicionadas ao ambiente com o tipo de provedor System.Data.SqlClient. Os itens desta coleção não são publicados no Azure com outras configurações de aplicativo. Você deve adicionar explicitamente esses valores à Connection strings coleção de configurações do seu aplicativo de função. Se você estiver criando um SqlConnection em seu código de função, você deve armazenar o valor da cadeia de conexão com suas outras conexões em Configurações do aplicativo no portal. |
As seguintes configurações de aplicação Values
podem ser incluídas na matriz quando executadas localmente:
Definiçã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 ao usar gatilhos diferentes de HTTP. Para obter mais informações, consulte a AzureWebJobsStorage referência.Quando você tem o emulador Azurite instalado localmente e você define AzureWebJobsStorage como UseDevelopmentStorage=true , Core Tools usa o emulador. Para obter mais informações, consulte Emulador de armazenamento local. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true |false |
Para desativar uma função ao executar localmente, adicione "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" à coleção, onde <FUNCTION_NAME> é o nome da função. Para saber mais, consulte Como desabilitar funções no Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnet dotnet-isolated node java powershell python |
Indica a linguagem de destino do tempo de execução das Funções. Necessário para a versão 2.x e superior do tempo de execução do Functions. Essa configuração é gerada para seu projeto pelas Ferramentas Principais. Para saber mais, consulte a FUNCTIONS_WORKER_RUNTIME referência. |
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 só é usada quando executada localmente. A versão de tempo de execução do PowerShell é determinada pela definição de configuração do site, quando é executada powerShellVersion no Azure, que pode ser definida no portal. |
Sincronizar configurações
Quando você desenvolve suas funções localmente, todas as configurações locais exigidas pelo seu aplicativo também devem estar presentes nas configurações do aplicativo de função no qual seu código é implantado. Você também pode precisar baixar as configurações atuais do aplicativo de função para seu projeto local. Embora você possa definir manualmente as configurações do aplicativo no portal do Azure, as seguintes ferramentas também permitem sincronizar as configurações do aplicativo com as configurações locais em seu projeto:
Acionadores e enlaces
Quando você desenvolve suas funções localmente, precisa levar em consideração comportamentos de gatilho e ligação. Para acionar HTTP, pode-se chamar o ponto de extremidade HTTP no computador local, usando http://localhost/
. Para funções acionadas não HTTP, há várias opções para executar localmente:
- A maneira mais fácil de testar associações durante o desenvolvimento local é usar cadeias de conexão destinadas a serviços ao vivo do Azure. Você pode direcionar serviços dinâmicos adicionando as configurações de cadeia de conexão apropriadas na
Values
matriz no 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 configurar serviços separados para usar durante o desenvolvimento e o teste e, em seguida, alternar 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 pontos finais especiais de administrador. Para obter mais informações, consulte Executar manualmente uma função não acionada por HTTP.
Durante o teste local, você deve estar executando o host fornecido pelo Core Tools (func.exe) localmente. Para obter mais informações, consulte Ferramentas principais do Azure Functions.
Ferramentas de teste HTTP
Durante o desenvolvimento, é fácil chamar qualquer um dos seus endpoints de funções a partir de um navegador quando eles suportam o método HTTP GET. No entanto, para outros métodos HTTP que suportam cargas úteis, como POST ou PUT, você precisa usar uma ferramenta de teste 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, certifique-se de usar uma ferramenta que proteja seus dados e reduza o risco de expor quaisquer dados confidenciais ao público. Os dados confidenciais que você deve proteger podem incluir: credenciais, segredos, tokens de acesso, chaves de API, dados de geolocalização e até mesmo dados pessoais.
Você pode manter seus dados seguros escolhendo uma ferramenta de teste HTTP que funcione offline ou localmente, não sincronize seus dados com a nuvem e não exija 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ções HTTP (incluindo informações confidenciais), não seguem as melhores práticas de segurança ou não respeitam as preocupações com a privacidade de dados.
Considere o uso de uma destas ferramentas para enviar solicitações HTTP com segurança para seus pontos de extremidade de função:
- Código do Visual Studio com uma extensão do Visual Studio Marketplace, como o Cliente REST
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ferramenta Network Console
- Bruno
- curl
Emulador de armazenamento local
Durante o desenvolvimento local, você pode usar o emulador local do Azurite ao testar funções com associações de Armazenamento do Azure (Armazenamento de Filas, Armazenamento de Blobs e Armazenamento de Tabelas), sem precisar se conectar a serviços de armazenamento remoto. O Azurite integra-se com o Visual Studio Code e o Visual Studio, e você também pode executá-lo a partir do prompt de comando usando npm. Para obter mais informações, consulte Usar o emulador Azurite para o desenvolvimento local do Armazenamento do Azure.
A seguinte configuração na Values
coleção do arquivo local.settings.json informa ao host local do Functions para usar o Azurite para a conexão padrão AzureWebJobsStorage
:
"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 quando executado localmente. Tenha estas considerações em mente ao usar a emulação de armazenamento durante a execução local:
- Tem de ter o Azurite instalado e em execução.
- Você deve testar com uma conexão de armazenamento real para os serviços do Azure antes de publicar no Azure.
- Quando publicares o teu projeto, não publiques a configuração
AzureWebJobsStorage
comoUseDevelopmentStorage=true
. No Azure, aAzureWebJobsStorage
configuração sempre deve ser a cadeia de conexão da conta de armazenamento usada pelo seu aplicativo de função. Para obter mais informações, vejaAzureWebJobsStorage
.
Artigos relacionados
- Para saber mais sobre o desenvolvimento local de funções usando o Visual Studio, consulte Desenvolver funções do Azure 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 funções do Azure usando o Visual Studio Code.
- Para saber mais sobre como desenvolver funções a partir do prompt de comando ou terminal, consulte Trabalhar com as ferramentas principais do Azure Functions.