Inaktivera funktioner i Azure Functions
Den här artikeln beskriver hur du inaktiverar en funktion i Azure Functions. Om du vill inaktivera en funktion innebär det att körningen ignorerar händelsen som är avsedd att utlösa funktionen. Med den här funktionen kan du förhindra att en specifik funktion körs utan att du behöver ändra och publicera om hela funktionsappen.
Du kan inaktivera en funktion på plats genom att skapa en appinställning i formatet AzureWebJobs.<FUNCTION_NAME>.Disabled
som är inställt på true
. Du kan skapa och ändra den här programinställningen på flera sätt, bland annat genom att använda Azure CLI, Azure PowerShell och från funktionens översiktsflik i Azure-portalen.
Ändringar i programinställningarna gör att funktionsappen startas om. Mer information finns i Referens för appinställningar för Azure Functions.
Inaktivera en funktion
Använd något av dessa lägen för att skapa en appinställning som inaktiverar en exempelfunktion med namnet QueueTrigger
:
Använd knapparna Aktivera och inaktivera på funktionens översiktssida. De här knapparna fungerar genom att ändra värdet för appinställningen AzureWebJobs.QueueTrigger.Disabled
. Den funktionsspecifika appinställningen skapas första gången en funktion inaktiveras.
Även när du publicerar till funktionsappen från ett lokalt projekt kan du fortfarande använda portalen för att inaktivera funktioner i funktionsappen.
Kommentar
Inaktiverade funktioner kan fortfarande köras genom att anropa REST-slutpunkten med hjälp av en huvudnyckel. Mer information finns i Kör en inaktiverad funktion. Det innebär att en inaktiverad funktion fortfarande körs när den startas från test-/körningsfönstret i portalen med hjälp av huvudnyckeln (värdnyckeln).)
Inaktivera funktioner i ett fack
Som standard gäller appinställningarna även för appar som körs i distributionsplatser. Du kan dock åsidosätta appinställningen som används av facket genom att ange en platsspecifik appinställning. Du kanske till exempel vill att en funktion ska vara aktiv i produktion men inte under distributionstestningen. Det är vanligt att inaktivera timerutlösta funktioner i fack för att förhindra samtidiga körningar.
Så här inaktiverar du endast en funktion i mellanlagringsplatsen:
Gå till platsinstansen av funktionsappen genom att välja Distributionsplatser under Distribution, välja din plats och välja Funktioner i platsinstansen. Välj din funktion och använd sedan knapparna Aktivera och Inaktivera på funktionens översiktssida. De här knapparna fungerar genom att ändra värdet för appinställningen AzureWebJobs.<FUNCTION_NAME>.Disabled
. Den här funktionsspecifika inställningen skapas första gången du inaktiverar funktionen.
Du kan också direkt lägga till appinställningen med namnet AzureWebJobs.<FUNCTION_NAME>.Disabled
med värdet true
i konfigurationen för platsinstansen. När du lägger till en platsspecifik appinställning kontrollerar du inställningen Distributionsfack. Det här alternativet behåller inställningsvärdet med facket under växlingar.
Mer information finns i Distributionsfack för Azure Functions.
Kör en inaktiverad funktion
Du kan fortfarande orsaka att en inaktiverad funktion körs genom att ange huvudåtkomstnyckeln (_master
) i en REST-begäran till slutpunkts-URL:en för den inaktiverade funktionen. På så sätt kan du utveckla och validera funktioner i Azure i ett inaktiverat tillstånd samtidigt som du förhindrar att andra kan komma åt dem. Om du använder någon annan typ av nyckel i begäran returneras ett HTTP 404-svar.
Varning
På grund av de utökade behörigheterna i funktionsappen som har beviljats av huvudnyckeln bör du inte dela den här nyckeln med tredje part eller distribuera den i interna klientprogram. Var försiktig när du väljer administratörens HTTP-åtkomstnivå för funktionsslutpunkterna.
Mer information om huvudnyckeln finns i Förstå nycklar. Mer information om hur du anropar icke-HTTP-utlösta funktioner finns i Köra en funktion som inte är HTTP-utlöst manuellt.
Inaktivera funktioner lokalt
Funktioner kan inaktiveras på samma sätt när de körs lokalt. Om du vill inaktivera en funktion med namnet QueueTrigger
lägger du till en post i samlingen Värden i filen local.settings.json enligt följande:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobs.QueueTrigger.Disabled": true
}
}
Att tänka på
Tänk på följande när du inaktiverar funktioner:
När du inaktiverar en HTTP-utlöst funktion med hjälp av de metoder som beskrivs i den här artikeln kan slutpunkten fortfarande nås när den körs på din lokala dator och i portalen.
För närvarande kan funktionsnamn som innehåller ett bindestreck (
-
) inte inaktiveras när de körs i Linux. Om du planerar att inaktivera dina funktioner när du kör på Linux ska du inte använda bindestreck i funktionsnamnen.
Nästa steg
Den här artikeln handlar om att inaktivera automatiska utlösare. Mer information om utlösare finns i Utlösare och bindningar.