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.

Function state switch

Ä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 huvudnyckeln 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örsåtkomstnivå.

Mer information om huvudnyckeln finns i Hämta 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 QueueTriggerlä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.