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.
As Ferramentas Principais do Azure Functions permitem-lhe desenvolver e testar as suas funções no seu computador local. Quando estiver pronto, você também poderá usar as Ferramentas Principais para implantar seu projeto de código no Azure e trabalhar com as configurações do aplicativo.
Você está visualizando a versão em C# deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.
Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.
Você está visualizando a versão Java deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.
Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.
Você está visualizando a versão JavaScript deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.
Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.
Você está exibindo a versão PowerShell deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.
Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.
Você está visualizando a versão Python deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.
Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.
Você está visualizando a versão TypeScript deste artigo. Certifique-se de selecionar sua linguagem de programação Functions preferida na parte superior do artigo.
Se quiser começar imediatamente, conclua o artigo de início rápido das Ferramentas Principais.
Instalar as Ferramentas de Núcleo de Funções do Azure
A maneira recomendada de instalar o Core Tools depende do sistema operacional do seu computador de desenvolvimento local.
As etapas a seguir usam um instalador do Windows (MSI) para instalar o Core Tools v4.x. Para obter mais informações sobre outros instaladores baseados em pacotes, consulte o Leiame das Ferramentas Principais.
Transfira e execute o instalador das Ferramentas Principais, com base na sua versão do Windows:
- v4.x - Windows de 64 bits (Recomendado. A depuração de código do Visual Studio requer 64 bits.)
- v4.x - Windows de 32 bits
Se você usou anteriormente o instalador do Windows (MSI) para instalar o Core Tools no Windows, você deve desinstalar a versão antiga de Adicionar remover programas antes de instalar a versão mais recente.
Para obter ajuda com problemas relacionados à versão, consulte Versões das ferramentas principais.
Criar o seu projeto local
Importante
Para Python, você deve executar comandos Core Tools em um ambiente virtual. Para obter mais informações, consulte Guia de início rápido: criar uma função Python no Azure a partir da linha de comando.
Na janela do terminal ou em um prompt de comando, execute o seguinte comando para criar um projeto na MyProjFolder
pasta:
func init MyProjFolder --worker-runtime dotnet-isolated
Por padrão, esse comando cria um projeto que é executado em processo com o host Functions na versão LTS (Long-Term Support) atual do .NET Core. Você pode usar a opção --target-framework
para apontar uma versão com suporte específica do .NET, incluindo o .NET Framework. Para obter mais informações, consulte a func init
referência.
Para obter uma comparação entre os dois modelos de processo .NET, consulte o artigo de comparação de modos de processo.
O Java usa um arquétipo Maven para criar o projeto local, juntamente com sua primeira função acionada por HTTP. Em vez de usar func init
e func new
, você deve seguir as etapas no Início Rápido da Linha de Comando.
Este comando cria um projeto JavaScript que usa a versão desejada do modelo de programação.
Este comando cria um projeto TypeScript que usa a versão desejada do modelo de programação.
func init MyProjFolder --worker-runtime powershell
Este comando cria um projeto Python que usa a versão desejada do modelo de programação.
Quando você executa func init
sem a --worker-runtime
opção, você é solicitado a escolher o idioma do projeto. Para saber mais sobre as opções disponíveis para o func init
comando, consulte a func init
referência.
Criar uma função
Para adicionar uma função ao seu projeto, execute o func new
comando usando a --template
opção para selecionar seu modelo de gatilho. O exemplo a seguir cria um gatilho HTTP chamado MyHttpTrigger
:
func new --template "Http Trigger" --name MyHttpTrigger
Este exemplo cria um gatilho de Armazenamento de Filas chamado MyQueueTrigger
:
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
As seguintes considerações se aplicam ao adicionar funções:
Quando você executa
func new
sem a--template
opção, você é solicitado a escolher um modelo.Use o
func templates list
comando para ver a lista completa de modelos disponíveis para o seu idioma.Ao adicionar um gatilho que se conecta a um serviço, você também precisará adicionar uma configuração de aplicativo que faça referência a uma cadeia de conexão ou uma identidade gerenciada ao arquivo local.settings.json. Usar as configurações do aplicativo dessa maneira evita que você tenha que incorporar credenciais em seu código. Para obter mais informações, consulte Trabalhar com configurações de aplicativo localmente.
- As Core Tools também adicionam uma referência à extensão de ligação específica no seu projeto C#.
Para saber mais sobre as opções disponíveis para o func new
comando, consulte a func new
referência.
Adicionar uma vinculação à sua função
O Functions fornece um conjunto de ligações de entrada e saída específicas do serviço, que facilitam a conexão da sua função com outros serviços do Azure sem precisar usar os SDKs de cliente específicos do serviço. Para obter mais informações, veja Conceitos de acionadores e enlaces das Funções do Azure.
Para adicionar uma ligação de entrada ou saída a uma função existente, você deve atualizar manualmente a definição de função.
O exemplo a seguir mostra a definição de função depois de adicionar uma vinculação de saída do Armazenamento de Fila a uma função desencadeada 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 definição do objeto MultiResponse
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.
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
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.
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
A maneira como você define a ligação de saída depende da versão do seu modelo de Node.js. Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
As seguintes considerações se aplicam ao adicionar associações a uma função:
- Para linguagens que definem funções usando o arquivo de configuração function.json , o Visual Studio Code simplifica o processo de adição de associações a uma definição de função existente. Para obter mais informações, consulte Conectar funções aos serviços do Azure usando associações.
- Ao adicionar associações que se conectam a um serviço, você também deve adicionar uma configuração de aplicativo que faça referência a uma cadeia de conexão ou identidade gerenciada ao arquivo local.settings.json. Para obter mais informações, consulte Trabalhar com configurações de aplicativo localmente.
- Quando você adiciona uma associação suportada, a extensão já deve estar instalada quando seu aplicativo usa o pacote de extensões. Para obter mais informações, consulte pacotes de extensão.
- Quando você adiciona uma associação que requer uma nova extensão de vinculação, você também deve adicionar uma referência a essa extensão de vinculação específica em seu projeto C#.
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Para obter mais informações, incluindo links para exemplos de código de vinculação aos quais você pode se referir, consulte Adicionar ligações a uma função.
Iniciar o tempo de execução das Funções
Antes de executar ou depurar as funções em seu projeto, você precisa iniciar o host Functions a partir do diretório raiz do seu projeto. O host habilita gatilhos para todas as funções no projeto. Use este comando para iniciar o tempo de execução local:
mvn clean package
mvn azure-functions:run
func start
func start
npm install
npm start
Este comando deve ser executado em um ambiente virtual.
Quando o host Functions é iniciado, ele gera uma lista de funções no projeto, incluindo as URLs de quaisquer funções acionadas por HTTP, como neste exemplo:
Found the following functions: Host.Functions.MyHttpTrigger Job host started Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger
A forma como as funções são carregadas depende da configuração do projeto. Para saber mais, consulte Registrando uma função.
Tenha em mente as seguintes considerações ao executar suas funções localmente:
Por padrão, a autorização não é imposta localmente para endpoints HTTP. Isso significa que todas as solicitações HTTP locais são tratadas como
authLevel = "anonymous"
. Para obter mais informações, consulte Nível de autorização. Você pode usar a--enableAuth
opção para exigir autorização ao executar localmente. Para mais informações, consultefunc start
Você pode usar o emulador local do Azurite ao executar localmente funções que exigem acesso aos serviços de Armazenamento do Azure (Armazenamento de Filas, Armazenamento de Blobs e Armazenamento de Tabelas) sem precisar se conectar a esses serviços no Azure. Ao usar a emulação local, certifique-se de iniciar o Azurite antes de iniciar o host local (func.exe). Para obter mais informações, consulte Emulação de armazenamento local.
- Você pode usar a emulação local do Azurite para atender ao requisito de armazenamento do trabalhador Python v2.
Você pode acionar funções não-HTTP localmente sem se conectar a um serviço ativo. Para obter mais informações, consulte Executar uma função local.
Quando você inclui as informações de conexão do Application Insights no arquivo local.settings.json, os dados de log locais são gravados na instância específica do Application Insights. Para manter os dados de telemetria locais separados dos dados de produção, considere o uso de uma instância separada do Application Insights para desenvolvimento e teste.
- Ao usar a versão 1.x das Ferramentas do Core, use o comando
func host start
para iniciar o tempo de execução local.
Executar uma função local
Com o host (func.exe) local do Functions em execução, agora você pode acionar funções individuais para executar e depurar seu código de função. A maneira como você executa uma função individual depende de seu tipo de gatilho.
Nota
Exemplos neste tópico usam a ferramenta cURL para enviar solicitações HTTP do terminal ou de um prompt de comando. Você pode usar uma ferramenta de sua escolha para enviar solicitações HTTP para o servidor local. A ferramenta cURL está disponível por padrão em sistemas baseados em Linux e Windows 10 build 17063 e posterior. No Windows mais antigo, você deve primeiro baixar e instalar a ferramenta cURL.
Os gatilhos HTTP são iniciados enviando uma solicitação HTTP para o endpoint local e a porta, conforme exibido na saída do func.exe, que geralmente tem este formato:
http://localhost:<PORT>/api/<FUNCTION_NAME>
Neste modelo de URL, <FUNCTION_NAME>
é o nome da função ou rota e <PORT>
é a porta local na qual func.exe está escutando.
Por exemplo, este comando cURL aciona a MyHttpTrigger
função de arranque rápido de uma solicitação GET com o parâmetro name passado na string de consulta.
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
Este exemplo mostra a mesma função chamada a partir de uma solicitação POST passando name no corpo da solicitação, mostrado tanto para o shell Bash quanto para a linha de comandos do Windows.
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"
As seguintes considerações se aplicam quando chamar endpoints HTTP localmente:
Você pode fazer solicitações GET de um navegador passando dados na string de consulta. Para todos os outros métodos HTTP, você deve usar uma ferramenta de teste HTTP que também mantenha seus dados seguros. Para obter mais informações, consulte Ferramentas de teste HTTP.
Certifique-se de usar o mesmo nome de servidor e porta que o host do Functions está escutando. Você vê um endpoint como este na saída gerada ao iniciar o Host de Funções. Você pode chamar essa URL usando qualquer método HTTP suportado pelo gatilho.
Publicar no Azure
As Ferramentas Principais do Azure Functions dão suporte a três tipos de implantação:
Tipo de implementação | Comando | Descrição |
---|---|---|
Ficheiros de projeto | func azure functionapp publish |
Implanta arquivos de projeto de funções diretamente no seu app de funções usando implantação zip. |
Aplicações de Contentores do Azure | func azurecontainerapps deploy |
Implanta um aplicativo de função em contêiner em um ambiente existente de Aplicativos de Contêiner. |
Cluster do Kubernetes | func kubernetes deploy |
Implanta seu aplicativo de função Linux como um contêiner Docker personalizado em um cluster Kubernetes. |
Você deve ter a CLI do Azure ou o Azure PowerShell instalado localmente para poder publicar no Azure a partir das Ferramentas Principais. Por padrão, o Core Tools usa essas ferramentas para autenticar com a sua conta no Azure.
Se você não tiver essas ferramentas instaladas, precisará obter um token de acesso válido para usar durante a implantação. Você pode apresentar um token de acesso usando a --access-token
opção nos comandos de implantação.
Implantar arquivos de projeto
Para publicar seu código local em um aplicativo de função no Azure, use o func azure functionapp publish
comando, como no exemplo a seguir:
func azure functionapp publish <FunctionAppName>
Este comando publica ficheiros de projeto do diretório atual para o <FunctionAppName>
como um pacote de implantação .zip. Se o projeto requer compilação, ela é feita remotamente durante a implantação.
O Java usa o Maven para publicar seu projeto local no Azure em vez das Ferramentas Principais. Use o seguinte comando Maven para publicar seu projeto no Azure:
mvn azure-functions:deploy
Quando você executa esse comando, os recursos do Azure são criados durante a implantação inicial com base nas configurações em seu arquivo de pom.xml . Para obter mais informações, consulte Implantar o projeto de função no Azure.
As seguintes considerações se aplicam a esse tipo de implantação:
A publicação substitui os arquivos existentes na implantação do aplicativo de função remota.
Você já deve ter criado um aplicativo de função em sua assinatura do Azure. Core Tools implanta o código do seu projeto neste recurso de aplicação de função. Para saber como criar um aplicativo de função a partir do prompt de comando ou da janela do terminal usando a CLI do Azure ou o Azure PowerShell, consulte Criar um aplicativo de função para execução sem servidor. Você também pode criar esses recursos no portal do Azure. Você recebe um erro quando tenta publicar em um
<FunctionAppName>
que não existe em sua assinatura.Uma pasta de projeto pode conter arquivos e diretórios específicos do idioma que não devem ser publicados. Os itens excluídos são listados em um arquivo .funcignore na pasta raiz do projeto.
Por padrão, seu projeto é implantado para que seja executado a partir do pacote de implantação. Para desativar esse modo de implantação recomendado, use a
--nozip
opção.Uma construção remota é realizada em projetos compilados. Isso pode ser controlado usando a
--no-build
opção.Use a opção
--publish-local-settings
para criar automaticamente as definições da aplicação na sua aplicação de função com base nos valores no ficheiro local.settings.json.Para publicar num slot com nome específico na sua aplicação de função, use a
--slot
opção.
Implantar contêineres
As Ferramentas Principais permitem implantar seu aplicativo de função em contêiner em ambientes gerenciados de Aplicativos de Contêiner do Azure e clusters Kubernetes que você gerencia.
Use o seguinte func azurecontainerapps deploy
comando para implantar uma imagem de contêiner existente em um ambiente de Aplicativos de Contêiner:
func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]
Quando você implanta em um ambiente de Aplicativos de Contêiner do Azure, as seguintes considerações se aplicam:
O ambiente e a conta de armazenamento já devem existir. A cadeia de conexão da conta de armazenamento fornecida é usada pela aplicação funcional implantada.
Você não precisa criar um recurso de aplicativo de função separado ao implantar em Aplicativos de Contêiner.
Cadeias de conexão de armazenamento e outras credenciais de serviço são segredos importantes. Certifique-se de armazenar com segurança todos os arquivos de script usando
func azurecontainerapps deploy
e não armazená-los em nenhum sistema de controle de origem acessível publicamente. Você pode criptografar o arquivo local.settings.json para maior segurança.
Para obter mais informações, consulte Aplicações de Contentores do Azure para hospedagem de Azure Functions.
Trabalhar com as configurações do aplicativo localmente
Quando executado em um aplicativo de função no Azure, as configurações exigidas por suas funções são armazenadas com segurança nas configurações do aplicativo. Durante o desenvolvimento local, essas configurações são adicionadas à coleção Values
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 local.settings.json do seu projeto destinam-se a espelhar itens nas definições da aplicação de funções no Azure.
As seguintes considerações se aplicam ao trabalhar com o arquivo de configurações locais:
Como o local.settings.json pode conter segredos, como cadeias de conexão, você nunca deve armazená-lo em um repositório remoto. As Ferramentas Principais ajudam-no a encriptar este ficheiro de definições locais para melhorar a segurança. Para obter mais informações, consulte Arquivo de configurações locais. Você também pode criptografar o arquivo local.settings.json para maior segurança.
Por padrão, as configurações locais não são migradas automaticamente quando o projeto é publicado no Azure. Use a
--publish-local-settings
opção ao publicar seus arquivos de projeto para garantir que essas configurações sejam adicionadas ao aplicativo de função no Azure. Os valores naConnectionStrings
seção nunca são publicados. Você também pode carregar configurações do arquivo local.settings.json a qualquer momento.Você pode baixar e substituir configurações no seu arquivo local.settings.json com as configurações da sua aplicação de funções no Azure. Para obter mais informações, consulte Baixar configurações do aplicativo.
- Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
- Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
- Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
- Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
- Os valores das configurações do aplicativo de função também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, consulte Variáveis de ambiente.
- Quando não está definida uma cadeia de conexão de armazenamento válida para
AzureWebJobsStorage
e não está a ser utilizado um emulador de armazenamento local, é mostrado um erro. Você pode usar as Ferramentas Principais para baixar uma cadeia de conexão específica de qualquer uma de suas contas de Armazenamento do Azure.
Baixar configurações do aplicativo
Na raiz do projeto, use o seguinte comando para baixar todas as configurações da aplicação myfunctionapp12345
no Azure:
func azure functionapp fetch-app-settings myfunctionapp12345
Este comando substitui todas as configurações existentes no arquivo local.settings.json com valores do Azure. Quando ainda não estão presentes, novos itens são adicionados à coleção. Para obter mais informações, consulte o func azure functionapp fetch-app-settings
comando.
Baixar uma string de conexão de armazenamento
As ferramentas principais também facilitam a obtenção da cadeia de conexão de qualquer conta de armazenamento à qual você tenha acesso. Na raiz do projeto, use o seguinte comando para baixar a cadeia de conexão de uma conta de armazenamento chamada mystorage12345
.
func azure storage fetch-connection-string mystorage12345
Este comando adiciona uma configuração nomeada mystorage12345_STORAGE
ao arquivo local.settings.json, que contém a cadeia de conexão para a mystorage12345
conta. Para obter mais informações, consulte o func azure storage fetch-connection-string
comando.
Para melhorar a segurança durante o desenvolvimento, considere criptografar o arquivo local.settings.json.
Carregar configurações locais para o Azure
Quando você publica seus arquivos de projeto no Azure sem usar a --publish-local-settings
opção, as configurações no arquivo local.settings.json não são definidas em seu aplicativo de função. Você pode sempre voltar a executar o func azure functionapp publish
com a opção --publish-settings-only
para carregar apenas as configurações sem publicar novamente os arquivos do projeto.
O exemplo a seguir carrega apenas as configurações da coleção Values
do arquivo local.settings.json para a aplicação de função no Azure chamada myfunctionapp12345
.
func azure functionapp publish myfunctionapp12345 --publish-settings-only
Criptografar o arquivo de configurações locais
Para melhorar a segurança das cadeias de conexão e outros dados valiosos em suas configurações locais, as Ferramentas Principais permitem criptografar o arquivo local.settings.json. Quando esse arquivo é criptografado, o tempo de execução descriptografa automaticamente as configurações quando necessário, da mesma forma que faz com a configuração do aplicativo no Azure. Também pode desencriptar um ficheiro encriptado localmente para trabalhar com as configurações.
Use o seguinte comando para criptografar o arquivo de configurações locais para o projeto:
func settings encrypt
Use o seguinte comando para descriptografar uma configuração local criptografada, para que você possa trabalhar com ela:
func settings decrypt
Quando o ficheiro de definições é encriptado e desencriptado, a definição do IsEncrypted
ficheiro também é atualizada.
Configurar extensões de vinculação
Funções, gatilhos e associações são implementados como pacotes de extensão .NET (NuGet). Para poder usar uma extensão de vinculação específica, essa extensão deve ser instalada no projeto.
Esta seção não se aplica à versão 1.x do tempo de execução do Functions. Na versão 1.x, as ligações suportadas foram incluídas na extensão principal do produto.
Para projetos de biblioteca de classes C#, adicione referências aos pacotes NuGet específicos para as extensões de vinculação exigidas por suas funções. O projeto de script C# (.csx) deve usar bundles de extensão.
Functions fornece pacotes de extensões para facilitar o trabalho com extensões de ligação no seu projeto. Os pacotes de extensão, que são versionados e definidos no arquivo host.json, instalam um conjunto completo de pacotes de extensão de vinculação compatíveis para seu aplicativo. Seu host.json já deve ter pacotes de extensão ativados. Se, por algum motivo, você precisar adicionar ou atualizar o pacote de extensão no arquivo host.json, consulte Pacotes de extensão.
Se você precisar usar uma extensão de vinculação ou uma versão de extensão que não esteja em um pacote suportado, será necessário instalar manualmente as extensões. Para cenários tão raros, consulte o func extensions install
comando.
Versões do Core Tools
As versões principais das Ferramentas Principais do Azure Functions estão vinculadas a versões principais específicas do tempo de execução do Azure Functions. Por exemplo, a versão 4.x do Core Tools suporta a versão 4.x do tempo de execução do Functions. Esta versão é a versão principal recomendada do tempo de execução do Functions e do Core Tools. Você pode determinar a versão de lançamento mais recente das Ferramentas Principais no repositório de Ferramentas Principais do Azure Functions.
A partir da versão 4.0.6517 das Ferramentas Principais, os projetos de modelo em processo devem fazer referência à versão 4.5.0 ou posterior do Microsoft.NET.Sdk.Functions
. Se uma versão anterior for usada, o func start
comando irá erro.
Execute o seguinte comando para determinar a versão da instalação atual do Core Tools:
func --version
Salvo indicação em contrário, os exemplos neste artigo referem-se à versão 4.x.
As seguintes considerações se aplicam às instalações do Core Tools:
Você só pode instalar uma versão do Core Tools em um determinado computador.
Ao atualizar para a versão mais recente do Core Tools, você deve usar o mesmo método usado para a instalação original para executar a atualização. Por exemplo, se você usou um MSI no Windows, desinstale o MSI atual e instale o mais recente. Ou, se você usou npm, execute novamente o
npm install command
arquivo .As versões 2.x e 3.x do Core Tools foram usadas com as versões 2.x e 3.x do runtime do Functions, que chegaram ao fim do suporte. Para obter mais informações, consulte Visão geral das versões de tempo de execução do Azure Functions.
- A versão 1.x do Core Tools é necessária ao usar a versão 1.x do Functions Runtime, que ainda é suportada. Esta versão do Core Tools só pode ser executada localmente em computadores Windows. Se você estiver executando atualmente a versão 1.x, considere migrar seu aplicativo para a versão 4.x hoje mesmo.
Próximos passos
Saiba como desenvolver, testar e publicar funções do Azure usando as ferramentas principais do Azure Functions. O Azure Functions Core Tools é de código aberto e hospedado no GitHub. Para arquivar um bug ou solicitação de recurso, abra um problema no GitHub.