Como desabilitar funções no Azure Functions

Este artigo explica como desabilitar uma função no Azure Functions. Desativar uma função significa fazer com que o tempo de execução ignore o evento destinado a acionar a função. Essa capacidade permite que você impeça que uma função específica seja executada sem ter que modificar e publicar novamente todo o aplicativo de função.

Você pode desativar uma função no local criando uma configuração de aplicativo no formato AzureWebJobs.<FUNCTION_NAME>.Disabled definido como true. Você pode criar e modificar essa configuração de aplicativo de várias maneiras, inclusive usando a CLI do Azure, o Azure PowerShell e a guia Visão geral da sua função no portal do Azure.

As alterações nas configurações do aplicativo fazem com que seu aplicativo de função seja reiniciado. Para obter mais informações, consulte Referência de configurações de aplicativo para o Azure Functions.

Desativar uma função

Use um destes modos para criar uma configuração de aplicativo que desative uma função de exemplo chamada QueueTrigger:

Use os botões Ativar e Desativar na página Visão geral da função. Esses botões funcionam alterando o AzureWebJobs.QueueTrigger.Disabled valor da configuração do aplicativo. A configuração do aplicativo específico da função é criada na primeira vez que uma função é desativada.

Function state switch

Mesmo quando você publica em seu aplicativo de função a partir de um projeto local, você ainda pode usar o portal para desabilitar funções no aplicativo de função.

Nota

As funções desabilitadas ainda podem ser executadas chamando o ponto de extremidade REST usando uma chave mestra. Para saber mais, consulte Executar uma função desativada. Isso significa que uma função desabilitada ainda é executada quando iniciada a partir da janela Test/Run no portal usando a chave master (Host key).

Desativar funções em um slot

Por padrão, as configurações do aplicativo também se aplicam a aplicativos executados em slots de implantação. No entanto, você pode substituir a configuração do aplicativo usada pelo slot definindo uma configuração de aplicativo específica do slot. Por exemplo, você pode querer que uma função esteja ativa na produção, mas não durante o teste de implantação. É comum desativar as funções acionadas pelo temporizador em slots para evitar execuções simultâneas.

Para desativar uma função somente no slot de preparação:

Navegue até a instância do slot do seu aplicativo de função selecionando Slots de implantação em Implantação, escolhendo seu slot e selecionando Funções na instância do slot. Escolha a sua função e, em seguida, utilize os botões Ativar e Desativar na página Descrição Geral da função. Esses botões funcionam alterando o AzureWebJobs.<FUNCTION_NAME>.Disabled valor da configuração do aplicativo. Essa configuração específica da função é criada na primeira vez que você desabilita a função.

Você também pode adicionar diretamente a configuração do aplicativo nomeada AzureWebJobs.<FUNCTION_NAME>.Disabled com o valor de na Configuração para a instância do true slot. Ao adicionar uma configuração de aplicativo específica do slot, marque a caixa Configuração do slot de implantação. Esta opção mantém o valor de configuração com o slot durante as trocas.

Para saber mais, consulte Slots de implantação do Azure Functions.

Executar uma função desativada

Você ainda pode fazer com que uma função desabilitada seja executada fornecendo a chave mestra em uma solicitação REST para a URL do ponto de extremidade da função desabilitada. Dessa forma, você pode desenvolver e validar funções no Azure em um estado desabilitado, impedindo que elas sejam acessadas por outras pessoas. Usar qualquer outro tipo de chave na solicitação retorna uma resposta HTTP 404.

Atenção

Devido às permissões elevadas em seu aplicativo de função concedidas pela chave mestra, você não deve compartilhar essa chave com terceiros ou distribuí-la em aplicativos cliente nativos. Tenha cuidado ao escolher o nível de acesso de administrador.

Para saber mais sobre a chave mestra, consulte Obtendo chaves. Para saber mais sobre como chamar funções acionadas não HTTP, consulte Executar manualmente uma função não acionada por HTTP.

Desativar funções localmente

As funções podem ser desativadas da mesma forma quando executadas localmente. Para desativar uma função chamada QueueTrigger, adicione uma entrada à coleção Values no arquivo local.settings.json, da seguinte maneira:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", 
    "AzureWebJobs.QueueTrigger.Disabled": true
  }
}

Considerações

Tenha em mente as seguintes considerações ao desativar funções:

  • Quando você desabilita uma função acionada por HTTP usando os métodos descritos neste artigo, o ponto de extremidade ainda pode ser acessado quando executado no computador local e no portal.

  • No momento, os nomes de função que contêm um hífen (-) não podem ser desativados quando executados no Linux. Se você planeja desativar suas funções ao executar no Linux, não use hífenes em seus nomes de função.

Próximos passos

Este artigo trata da desativação de gatilhos automáticos. Para obter mais informações sobre gatilhos, consulte Gatilhos e associações.