Functies uitschakelen in Azure Functions
In dit artikel wordt uitgelegd hoe u een functie uitschakelt in Azure Functions. Als u een functie wilt uitschakelen , betekent dit dat de runtime de gebeurtenis negeert die is bedoeld om de functie te activeren. Met deze mogelijkheid kunt u voorkomen dat een specifieke functie wordt uitgevoerd zonder dat u de hele functie-app hoeft te wijzigen en opnieuw te publiceren.
U kunt een functie uitschakelen door een app-instelling te maken in de indeling die is AzureWebJobs.<FUNCTION_NAME>.Disabled
ingesteld op true
. U kunt deze toepassingsinstelling op verschillende manieren maken en wijzigen, waaronder met behulp van de Azure CLI, Azure PowerShell en op het tabblad Overzicht van uw functie in Azure Portal.
Wijzigingen in toepassingsinstellingen zorgen ervoor dat uw functie-app opnieuw wordt opgestart. Zie de naslaginformatie over app-instellingen voor Azure Functions voor meer informatie.
Een functie uitschakelen
Gebruik een van deze modi om een app-instelling te maken waarmee een voorbeeldfunctie met de naam QueueTrigger
:
Gebruik de knoppen Inschakelen en Uitschakelen op de pagina Overzicht van de functie. Deze knoppen werken door de waarde van de AzureWebJobs.QueueTrigger.Disabled
app-instelling te wijzigen. De functiespecifieke app-instelling wordt gemaakt wanneer een functie voor het eerst wordt uitgeschakeld.
Zelfs wanneer u vanuit een lokaal project naar uw functie-app publiceert, kunt u de portal nog steeds gebruiken om functies in de functie-app uit te schakelen.
Notitie
Uitgeschakelde functies kunnen nog steeds worden uitgevoerd door het REST-eindpunt aan te roepen met behulp van een hoofdsleutel. Zie Een uitgeschakelde functie uitvoeren voor meer informatie. Dit betekent dat een uitgeschakelde functie nog steeds wordt uitgevoerd wanneer deze wordt gestart vanuit het venster Testen/uitvoeren in de portal met behulp van de hoofdfunctie (hostsleutel).
Functies in een site uitschakelen
Standaard zijn app-instellingen ook van toepassing op apps die worden uitgevoerd in implementatiesites. U kunt de app-instelling die door de site wordt gebruikt echter overschrijven door een sitespecifieke app-instelling in te stellen. U wilt bijvoorbeeld dat een functie actief is in productie, maar niet tijdens het testen van de implementatie. Het is gebruikelijk om door timer geactiveerde functies in sleuven uit te schakelen om gelijktijdige uitvoeringen te voorkomen.
Een functie alleen uitschakelen in de staging-site:
Navigeer naar het site-exemplaar van uw functie-app door implementatiesites te selecteren onder Implementatie, uw site te kiezen en Functies in het site-exemplaar te selecteren. Kies uw functie en gebruik vervolgens de knoppen Inschakelen en Uitschakelen op de pagina Overzicht van de functie. Deze knoppen werken door de waarde van de AzureWebJobs.<FUNCTION_NAME>.Disabled
app-instelling te wijzigen. Deze functiespecifieke instelling wordt gemaakt wanneer u de functie de eerste keer uitschakelt.
U kunt ook rechtstreeks de app-instelling met de naam AzureWebJobs.<FUNCTION_NAME>.Disabled
toevoegen met de waarde true
in de configuratie voor het site-exemplaar. Wanneer u een sitespecifieke app-instelling toevoegt, schakelt u het selectievakje Implementatiesite-instelling in. Met deze optie blijft de instellingswaarde behouden bij de site tijdens wisselingen.
Zie Azure Functions-implementatiesites voor meer informatie.
Een uitgeschakelde functie uitvoeren
U kunt nog steeds ervoor zorgen dat een uitgeschakelde functie wordt uitgevoerd door de hoofdtoegangssleutel (_master
) in een REST-aanvraag op te geven aan de eindpunt-URL van de uitgeschakelde functie. Op deze manier kunt u functies in Azure in een uitgeschakelde status ontwikkelen en valideren, terwijl u voorkomt dat ze worden geopend door anderen. Als u een ander type sleutel in de aanvraag gebruikt, wordt een HTTP 404-antwoord geretourneerd.
Let op
Vanwege de verhoogde machtigingen in uw functie-app die zijn verleend door de hoofdsleutel, moet u deze sleutel niet delen met derden of distribueren in systeemeigen clienttoepassingen. Wees voorzichtig bij het kiezen van het HTTP-toegangsniveau van de beheerder voor uw functie-eindpunten.
Zie Sleutels begrijpen voor meer informatie over de hoofdsleutel. Zie Handmatig een niet-HTTP-geactiveerde functie uitvoeren voor meer informatie over het aanroepen van niet-HTTP-geactiveerde functies.
Functies lokaal uitschakelen
Functies kunnen op dezelfde manier worden uitgeschakeld wanneer ze lokaal worden uitgevoerd. Als u een functie met de naam QueueTrigger
wilt uitschakelen, voegt u als volgt een vermelding toe aan de verzameling Waarden in het local.settings.json-bestand:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobs.QueueTrigger.Disabled": true
}
}
Overwegingen
Houd rekening met de volgende overwegingen bij het uitschakelen van functies:
Wanneer u een door HTTP geactiveerde functie uitschakelt met behulp van de methoden die in dit artikel worden beschreven, kan het eindpunt nog steeds worden geopend wanneer het wordt uitgevoerd op uw lokale computer en in de portal.
Op dit moment kunnen functienamen met een afbreekstreepje (
-
) niet worden uitgeschakeld wanneer ze worden uitgevoerd op Linux. Als u van plan bent om uw functies uit te schakelen tijdens het uitvoeren op Linux, gebruikt u geen afbreekstreepjes in uw functienamen.
Volgende stappen
Dit artikel gaat over het uitschakelen van automatische triggers. Zie Triggers en bindingen voor meer informatie over triggers.