Zakázání funkcí ve službě Azure Functions

Tento článek vysvětluje, jak zakázat funkci ve službě Azure Functions. Zakázání funkce znamená, že modul runtime ignoruje událost určenou k aktivaci funkce. Tato možnost umožňuje zabránit spuštění konkrétní funkce, aniž byste museli upravovat a znovu publikovat celou aplikaci funkcí.

Funkci můžete zakázat tak, že vytvoříte nastavení aplikace ve formátu AzureWebJobs.<FUNCTION_NAME>.Disabled nastaveném na true. Toto nastavení aplikace můžete vytvořit a upravit několika způsoby, včetně použití Azure CLI, Azure PowerShellu a na kartě Přehled vaší funkce na webu Azure Portal.

Změny nastavení aplikace způsobí restartování aplikace funkcí. Další informace najdete v referenčních informacích k nastavení aplikace pro Azure Functions.

Vypnutí funkce

Pomocí jednoho z těchto režimů vytvořte nastavení aplikace, které zakáže ukázkovou funkci s názvem QueueTrigger:

Na stránce Přehled funkce použijte tlačítka Povolit a Zakázat. Tato tlačítka fungují změnou hodnoty AzureWebJobs.QueueTrigger.Disabled nastavení aplikace. Nastavení aplikace specifické pro funkci se vytvoří při prvním zakázání funkce.

Function state switch

I když publikujete do aplikace funkcí z místního projektu, můžete pomocí portálu zakázat funkce v aplikaci funkcí.

Poznámka:

Zakázané funkce je stále možné spouštět voláním koncového bodu REST pomocí hlavního klíče. Další informace najdete v tématu Spuštění zakázané funkce. To znamená, že zakázaná funkce se stále spouští při spuštění z okna Test/Run na portálu pomocí hlavního klíče (klíč hostitele).

Zakázání funkcí v slotu

Ve výchozím nastavení platí i pro aplikace spuštěné v slotech nasazení. Nastavení aplikace používané slotem ale můžete přepsat nastavením aplikace specifické pro slot. Můžete například chtít, aby byla funkce aktivní v produkčním prostředí, ale ne během testování nasazení. V slotech je běžné zakázat funkce aktivované časovačem, aby se zabránilo souběžným spuštěním.

Zakázání funkce pouze v přípravném slotu:

Přejděte do instance slotu vaší aplikace funkcí tak, že v části Nasazení vyberete sloty nasazení, zvolíte slot a vyberete Funkce v instanci slotu. Zvolte funkci a pak použijte tlačítka Povolit a Zakázat na stránce Přehled funkce. Tato tlačítka fungují změnou hodnoty AzureWebJobs.<FUNCTION_NAME>.Disabled nastavení aplikace. Toto nastavení specifické pro funkci se vytvoří při prvním zakázání funkce.

Můžete také přímo přidat nastavení aplikace s názvem AzureWebJobs.<FUNCTION_NAME>.Disabled s hodnotou true v konfiguraci instance slotu. Když přidáte nastavení aplikace specifické pro slot, nezapomeňte zaškrtnout políčko Nastavení slotu nasazení. Tato možnost udržuje hodnotu nastavení s slotem během prohození.

Další informace najdete v tématu Sloty nasazení služby Azure Functions.

Spuštění zakázané funkce

Zakázané funkce můžete přesto spustit zadáním hlavního klíče v požadavku REST na adresu URL koncového bodu zakázané funkce. Tímto způsobem můžete vyvíjet a ověřovat funkce v Azure v zakázaném stavu a zároveň jim zabránit v přístupu jinými uživateli. Použití jakéhokoli jiného typu klíče v požadavku vrátí odpověď HTTP 404.

Upozornění

Vzhledem ke zvýšeným oprávněním v aplikaci funkcí udělených hlavním klíčem byste tento klíč neměli sdílet s třetími stranami ani ho distribuovat v nativních klientských aplikacích. Při výběru úrovně přístupu správce buďte opatrní.

Další informace o hlavním klíči najdete v tématu Získání klíčů. Další informace o volání funkcí, které nejsou aktivované protokolem HTTP, najdete v tématu Ruční spuštění funkce, která není aktivovaná protokolem HTTP.

Místní zakázání funkcí

Funkce je možné zakázat stejným způsobem při místním spuštění. Chcete-li zakázat funkci s názvem QueueTrigger, přidejte položku do kolekce Values v souboru local.settings.json následujícím způsobem:

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

Důležité informace

Při zakázání funkcí mějte na paměti následující aspekty:

  • Když zakážete funkci aktivovanou protokolem HTTP pomocí metod popsaných v tomto článku, bude mít koncový bod stále přístup při spuštění na místním počítači a na portálu.

  • V tuto chvíli se názvy funkcí, které obsahují spojovník (-), nedají při spuštění v Linuxu zakázat. Pokud plánujete zakázat funkce při spuštění v Linuxu, nepoužívejte ve svých názvech funkcí pomlčky.

Další kroky

Tento článek se týká zakázání automatických triggerů. Další informace o triggerech najdete v tématu Aktivační události a vazby.