Como desabilitar funções no Azure Functions

Este artigo explica como desabilitar uma função no Azure Functions. Desabilitar uma função significa fazer com que o runtime ignore o evento destinado a disparar a função. Essa opção impede que uma função específica seja executada sem precisar modificar e republicar todo o aplicativo de funções.

Desabilite uma função no local criando uma configuração de aplicativo no formato definido AzureWebJobs.<FUNCTION_NAME>.Disabled como true. É possível criar e modificar essa configuração de aplicativo de várias maneiras, usando a CLI do Azure, o Azure PowerShell e na guia Visão geral da função no portal do Azure.

As alterações nas configurações do aplicativo fazem com que o aplicativo de funções seja reiniciado. Para saber mais, veja Referência das configurações de aplicativos para o Azure Functions.

Desabilitar uma função

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

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

Function state switch

Mesmo quando você publica no aplicativo de funções de um projeto local, ainda é possível usar o portal para desabilitar funções no aplicativo de funções.

Observação

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

Desabilitar funções em um slot

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

Para desabilitar uma função somente no slot de preparo:

Navegue até a instância de slot do aplicativo de funções selecionando Slots de implantação em Implantação, escolhendo o slot e selecionando Funções na instância do slot. Escolha a função e use os botões Habilitar e Desabilitar na página Visão geral da função. Esses botões funcionam alterando o valor da configuração do aplicativo AzureWebJobs.<FUNCTION_NAME>.Disabled. Essa configuração específica da função é criada na primeira vez que você desabilitar a função.

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

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

Executar uma função desabilitada

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. O uso de qualquer outro tipo de chave na solicitação retorna uma resposta HTTP 404.

Cuidado

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

Para saber mais sobre a chave mestra, consulte Obteção de chaves. Para saber mais sobre como chamar funções não disparadas por HTTP, consulte Executar manualmente uma função não disparada por HTTP.

Desabilitar funções localmente

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

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

Considerações

Lembre-se das seguintes considerações ao desabilitar funções:

  • Ao desabilitar uma função disparada por HTTP usando os métodos descritos neste artigo, o ponto de extremidade ainda pode ser acessado se estiver em execução no computador local e no portal.

  • Neste momento, os nomes de função que contêm um hífen (-) não podem ser desabilitados durante a execução no Linux. Caso planeje desabilitar suas funções ao executar no Linux, não use hifens em seus nomes de função.

Próximas etapas

Este artigo trata-se como desabilitar disparadores automáticos. Para obter mais informações, consulte Gatilhos e associações de armazenamento de Blobs.