Jak zakázat funkce v Azure Functions
Tento článek vysvětluje, jak zakázat funkci v Azure Functions. Pokud chcete funkci zakázat , znamená to, že modul runtime ignoruje automatickou aktivační událost definovanou pro funkci. To vám umožní zabránit spuštění konkrétní funkce, aniž by se zastavila celá aplikace funkcí.
Doporučený způsob zakázání funkce je s nastavením 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ě pomocí Azure CLI a na kartě Přehled vaší funkce v Azure Portal.
Vypnutí funkce
Na stránce Přehled funkce použijte tlačítka Povolit a Zakázat. 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í.
I když publikujete aplikaci funkcí z místního projektu, můžete funkce v aplikaci funkcí zakázat pomocí portálu.
Poznámka
Funkce integrovaného testování portálu Disabled
ignoruje toto nastavení. To znamená, že zakázaná funkce se pořád spouští při spuštění z okna Test na portálu.
Funkce 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í, například aktivovaná funkce časovače.
Zakázání funkce pouze v přípravném slotu:
Přejděte do instance slotu aplikace funkcí výběrem slotů nasazení v části Nasazení, výběrem slotu a výběrem funkcí v instanci slotu. Zvolte funkci a pak na stránce Přehled funkce použijte tlačítka Povolit a Zakázat. 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í.
Můžete také přímo přidat nastavení aplikace s názvem AzureWebJobs.<FUNCTION_NAME>.Disabled
hodnota true
v konfiguraci instance slotu. Když přidáte nastavení aplikace specifické pro slot, nezapomeňte zaškrtnout políčko Nastavení slotu nasazení . Tím se zachová hodnota nastavení s slotem během prohození.
Další informace najdete v tématu Azure Functions Sloty nasazení.
local.settings.json
Funkce se dají zakázat stejným způsobem jako při místním spuštění. Pokud chcete funkci s názvem HttpExample
zakázat, 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.HttpExample.Disabled": true
}
}
Jiné metody
I když se metoda nastavení aplikace doporučuje pro všechny jazyky a všechny verze modulu runtime, existuje několik dalších způsobů, jak zakázat funkce. Tyto metody, které se liší podle verze jazyka a modulu runtime, se udržují kvůli zpětné kompatibilitě.
Knihovny tříd jazyka C#
Ve funkci knihovny tříd můžete také použít Disable
atribut, abyste zabránili aktivaci funkce. Tento atribut umožňuje přizpůsobit název nastavení použitého k zakázání funkce. Použijte verzi atributu, která umožňuje definovat parametr konstruktoru, který odkazuje na nastavení logické aplikace, jak je znázorněno v následujícím příkladu:
public static class QueueFunctions
{
[Disable("MY_TIMER_DISABLED")]
[FunctionName("QueueTrigger")]
public static void QueueTrigger(
[QueueTrigger("myqueue-items")] string myQueueItem,
TraceWriter log)
{
log.Info($"C# function processed: {myQueueItem}");
}
}
Tato metoda umožňuje povolit a zakázat funkci změnou nastavení aplikace bez opětovného dokončování nebo opětovného nasazení. Změna nastavení aplikace způsobí restartování aplikace funkcí, takže se okamžitě rozpozná změna zakázaného stavu.
Existuje také konstruktor pro parametr, který nepřijímá řetězec pro název nastavení. Tato verze atributu se nedoporučuje. Pokud používáte tuto verzi, musíte projekt znovu zkompilovat a znovu nasadit, aby se změnil stav zakázané funkce.
Functions 1.x – skriptovací jazyky
Ve verzi 1.x můžete také použít disabled
vlastnost souboru function.json k tomu, aby modul runtime neaktivoval funkci. Tato metoda funguje jenom pro skriptovací jazyky, jako jsou skripty jazyka C# a JavaScript. Vlastnost disabled
lze nastavit na true
nebo na název nastavení aplikace:
{
"bindings": [
{
"type": "queueTrigger",
"direction": "in",
"name": "myQueueItem",
"queueName": "myqueue-items",
"connection":"MyStorageConnectionAppSetting"
}
],
"disabled": true
}
nebo
"bindings": [
...
],
"disabled": "IS_DISABLED"
V druhém příkladu je funkce zakázaná, pokud existuje nastavení aplikace s názvem IS_DISABLED a je nastaveno na true
nebo 1.
Důležité
Portál používá nastavení aplikace k zakázání funkcí v1.x. Když nastavení aplikace koliduje se souborem function.json, může dojít k chybě. Vlastnost byste měli odebrat disabled
ze souboru function.json, abyste zabránili chybám.
Požadavky
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, koncový bod může být stále přístupný při spuštění na místním počítači.
V tuto chvíli se názvy funkcí, které obsahují spojovník (
-
) při spouštění v plánu Linuxu, nedají zakázat. Pokud potřebujete zakázat funkce při spuštění v plánu Linuxu, nepoužívejte ve svých názvech funkcí spojovníky.
Další kroky
Tento článek se týká zakázání automatických triggerů. Další informace o triggerech najdete v tématu Triggery a vazby.