Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Bij hostingplannen die deployment slots ondersteunen, kan je functie-app aparte instanties draaien, slots genoemd. Elke slot is een aparte omgeving met een eigen hostnaam. De toegang tot het eindpunt van een slot hangt af van het netwerk en de toegangsbeperkingen die je voor die slot instelt. Eén plek is altijd de productieplek, en je kunt een beschikbare stageplek op aanvraag ruilen met de productieplek.
Het aantal beschikbare slots is afhankelijk van uw specifieke hostingoptie.
| Hostingoptie | Tijdsloten (inclusief productie) |
|---|---|
| Verbruiksabonnement | 2 (één productieslot en één staging-slot) |
| Flex Consumption-abonnement | Momenteel niet ondersteund. Zie Site-updatestrategieën in Flex Consumption voor implementaties zonder downtime. |
| Premium-abonnement | 3 |
| Toegewezen App Service-plan | 1-20 |
| Azure Container Apps | Implementatieslots zijn niet van toepassing. Gebruik wijzigingen. |
Selecteer je hostingplan bovenaan dit artikel om de richtlijnen te bekijken die van toepassing zijn op je functieapp.
Implementeren zonder slots in Flex Consumption
Het Flex Consumption-plan ondersteunt geen inzetslots. Voor gecontroleerde releases en nul-downtime implementaties gebruik rolling updates als site-updatestrategie.
Implementeren met revisies op Azure Container Apps
Azure Functions op Azure Container Apps gebruikt geen deployment slots. Gebruik revisies om het verkeer te beheren en te leiden tussen versies van je functie-app.
Op de Consumption-, Premium- en Dedicated plannen gedragen de deploymentslots zich als volgt:
- Tijdens de routeringswissel worden nieuwe functietrigger-aanroepen naar de geruilde slot gerouteerd zonder dat een expliciete herstart van de applicatie nodig is.
- Slotwissels garanderen geen nul downtime. Functies die momenteel worden uitgevoerd, kunnen worden beëindigd en bij geschaalde apps kan verminderde beschikbaarheid optreden tijdens slotwisselingen. Zie De prestaties en betrouwbaarheid van Azure Functions verbeteren voor meer informatie over het schrijven van staatloze en defensieve functies. Als implementaties zonder downtime een vereiste zijn, overweeg dan het Flex Consumption-abonnement met rolling updates als de strategie voor site-update.
Waarom slots gebruiken?
Er zijn veel voordelen bij het gebruik van implementatieslots, waaronder:
- Verschillende omgevingen voor verschillende doeleinden: Door verschillende slots te gebruiken, kun je app-instanties onderscheiden voordat je overstapt naar productie of een staging-slot.
- Prewarming: Implementeer in een slot in plaats van rechtstreeks naar productie om de app alvast op te warmen voordat deze live gaat. Ook vermindert het gebruik van slots de latentie voor HTTP-getriggerde workloads. Exemplaren worden opgewarmd vóór de implementatie, waardoor de koude start voor nieuw geïmplementeerde functies wordt verminderd.
- Eenvoudige terugval: Na een wisseling met productie heeft de site met een eerder gefaseerde app nu de vorige productie-app. Als de wijzigingen die je naar het productieslot hebt omgewisseld niet zijn wat je verwacht, kun je de omwisseling direct ongedaan maken om je "laatst bekende goed werkende instantie" terug te krijgen.
- Het aantal herstarts minimaliseren: voor het wijzigen van app-instellingen in een productiesite moet de actieve app opnieuw worden opgestart. U kunt in plaats daarvan instellingen in een staging-slot wijzigen en de instellingen naar productie wisselen met een geprewarmde instantie. Slots zijn de aanbevolen manier om te migreren tussen versies van de Functions-runtime, met behoud van de hoogste beschikbaarheid. Zie Minimale downtime-update voor meer informatie.
Wisselbewerkingen
Tijdens een wisseling is het ene slot de bron en het andere het doel. Het bronvak heeft het exemplaar van de toepassing dat je op het doelslot toepast. De volgende stappen helpen de uitvaltijd van het doelslot tijdens een wisseling te beperken:
Pas instellingen toe: Pas instellingen toe vanuit de doelslot op alle instanties van de bronslot. Pas bijvoorbeeld de productie-instellingen toe op de staging-instantie. De toegepaste instellingen omvatten de volgende categorieën:
- Slotspecifieke app-instellingen en verbindingsreeksen (indien van toepassing)
- Instellingen voor continue implementatie (indien ingeschakeld)
- App Service-verificatie-instellingen (indien ingeschakeld)
Wacht op opnieuw opstarten en beschikbaarheid: de omwisseling wacht tot elk exemplaar in de bronlocatie de herstart heeft voltooid en beschikbaar is voor aanvragen. Als een instantie niet opnieuw kan worden opgestart, worden alle wijzigingen in de bronplek ongedaan gemaakt en wordt de bewerking gestopt.
Routering bijwerken: Als alle instanties in het bronslot succesvol opwarmen, voltooien de twee slots de omwisseling door de routeringsregels om te schakelen. Na deze stap heeft de doelsite (bijvoorbeeld de productiesite) de app die eerder is opgewarmd in de bronsite.
Herhalingsbewerking: Nu de bronsite de preswap-app eerder in de doelsite heeft, voltooit u dezelfde bewerking door alle instellingen toe te passen en de exemplaren voor de bronsite opnieuw op te starten.
Houd rekening met de volgende belangrijke punten:
Op elk moment van de wisselbewerking vindt initialisatie van de gewisselde apps plaats op de bronsite. De doelsite blijft online terwijl de bronsite wordt voorbereid, ongeacht of de wissel slaagt of mislukt.
Om een staging-slot te wisselen met het productieslot, zorg dat het productieslot altijd het doelslot is. Op deze manier heeft de wisselbewerking geen invloed op uw productie-app.
Configureer instellingen met betrekking tot gebeurtenisbronnen en bindings als instellingen voor de deployment slotvoordat je een swap start. Als u ze vooraf als 'plakkerig' markeert, worden gebeurtenissen en uitvoer doorgestuurd naar het juiste exemplaar.
Wanneer je een nieuw staging-slot maakt, kopieert de portal alle bestaande instellingen van het productieslot naar het nieuwe slot, ongeacht de stickiness van de instelling.
Instellingen beheren
Sommige configuratie-instellingen zijn specifiek voor een slot. De volgende lijsten beschrijven welke instellingen veranderen wanneer je van slot wisselt, en welke instellingen hetzelfde blijven.
Sitespecifieke instellingen:
- Eindpunten publiceren
- Aangepaste domeinnamen
- Niet-openbare certificaten en TLS/SSL-instellingen
- Schaalinstellingen
- IP-beperkingen
- Altijd ingeschakeld
- Diagnostische instellingen
- Delen van bronnen tussen verschillende oorsprongen (CORS)
- Privé-eindpunten
Niet-slot-specifieke instellingen:
- Algemene instellingen, zoals frameworkversie, 32/64-bit en web sockets
- App-instellingen (kan worden geconfigureerd om aan een slot vast te blijven)
- Verbindingsreeksen (kunnen worden geconfigureerd om vast te houden aan een sleuf)
- Handlertoewijzingen
- Openbare certificaten
- Hybride verbindingen *
- Integratie van virtueel netwerk *
- Service-eindpunten *
- Azure-netwerk voor contentlevering *
Functies die zijn gemarkeerd met een sterretje (*) worden standaard niet gewisseld.
Notitie
Bepaalde app-instellingen die van toepassing zijn op niet-geswapte instellingen zijn niet gewisseld. Bijvoorbeeld, omdat diagnostische instellingen niet zijn omgewisseld, zijn gerelateerde app-instellingen als WEBSITE_HTTPLOGGING_RETENTION_DAYS en DIAGNOSTICS_AZUREBLOBRETENTIONDAYS niet gewisseld, zelfs als ze niet als slotinstellingen verschijnen.
Een implementatie-instelling maken
U kunt instellingen markeren als een implementatie-instelling, waardoor deze plakkerig wordt. Een vaste instelling wordt niet verwisseld met het app-exemplaar.
Als je een deployment-instelling in één slot aanmaakt, zorg er dan voor dat je dezelfde instelling met een unieke waarde aanmaakt in elke andere slot die bij een swap betrokken is. Op deze manier blijven de instellingsnamen consistent tussen slots, terwijl de waarde van een instelling niet verandert. Deze naamconsistentie zorgt ervoor dat uw code geen toegang probeert te krijgen tot een instelling die in de ene slot is gedefinieerd, maar niet in een andere.
Gebruik de volgende stappen om een implementatie-instelling te maken:
Ga in de functie-app naar Implementatieslots en selecteer vervolgens de slotnaam.
Selecteer Configuratie en selecteer vervolgens de naam van de instelling die u aan de huidige slot wilt houden.
Selecteer implementatiesleufinstelling, en selecteer dan OK.
Nadat het settinggedeelte is gesloten, selecteer je Save om de wijzigingen te behouden.
Een app implementeren in een slot
Sleuven zijn leeg wanneer u een sleuf maakt. U kunt een van de ondersteunde implementatietechnologieën gebruiken om uw applicatie naar een slot te implementeren.
Hoe implementatieslots schalen
Alle slots worden geschaald naar hetzelfde aantal werknemers als de productiesleuf.
- Voor verbruiksabonnementen wordt de slot geschaald naarmate de functie-app wordt geschaald.
- Voor App Service plannen schaalt de app naar een vast aantal werkers. Sites worden uitgevoerd op hetzelfde aantal werkrollen als het app-plan.
Tijden weergeven
Je kunt informatie over bestaande slots bekijken door gebruik te maken van de Azure CLI of het Azure-portaal.
Gebruik deze stappen om bestaande slots in het portaal te bekijken:
Ga naar je functie-app.
Selecteer Deployment slots en bekijk de bestaande slots.
Een sleuf toevoegen
Je kunt een slot toevoegen door de Azure CLI of het Azure-portaal te gebruiken.
Gebruik deze stappen om een slot te maken in de portal:
Ga naar je functie-app.
Selecteer Implementatieslots en selecteer vervolgens + Slot toevoegen.
Voer de naam van de slot in en selecteer Toevoegen.
Je kunt ook een slot aanmaken door Azure Resource Manager (ARM) sjablonen of Bicep-bestanden te gebruiken. Voor een voorbeeld van het maken van een functie-app in een Consumptieplan met een implementatieslot, zie deze quickstart voor Azure Resource Manager.
Toegang tot sitebronnen
U opent bronnen (HTTP-triggers en beheerderseindpunten) in een testomgeving op dezelfde manier als in de productieomgeving. In plaats van de hostnaam van de functie-app gebruikt u echter de sitespecifieke hostnaam in de aanvraag-URL, samen met eventuele sitespecifieke sleutels. Omdat staging-sites live-apps zijn, moet u uw functies in een staging-site beveiligen zoals u dat zou doen in de productiesite.
Slots omwisselen
Je kunt slots wisselen in en uit productie door de Azure CLI of de Azure-portal te gebruiken.
Gebruik deze stappen om een staging-slot over te zetten naar productie:
Ga naar de functie-app.
Selecteer Implementatie-slots en selecteer Wisselen.
Controleer de configuratie-instellingen voor uw wissel en selecteer Wisselen.
De wisselbewerking kan enkele seconden duren.
Een wissel terugdraaien
Als een swap een fout veroorzaakt of je een swap wilt ongedaan maken, kun je terugrollen naar de beginstaat. Om terug te keren naar de voorgeswitchte staat, voer je nog een swap uit om de oorspronkelijke swap ongedaan te maken.
Een slot verwijderen
Je kunt een slot verwijderen door de Azure CLI of het Azure-portaal te gebruiken.
Gebruik deze stappen om een slot uit uw app in de portal te verwijderen:
Ga in de functie-app naar Implementatieslots en selecteer vervolgens de slotnaam.
Selecteer Verwijderen.
Typ de naam van het deploymentslot dat u wilt verwijderen en selecteer Verwijderen.
Sluit het bevestigingsvenster.
App Service-plan wijzigen
Met een functionele app die draait onder een App Service-plan, kun je het onderliggende App Service-plan aanpassen voor een slot.
Gebruik de volgende stappen om het App Service-plan van een slot te wijzigen:
Ga in de functie-app naar Implementatieslots en selecteer vervolgens de slotnaam.
Selecteer Onder App Service-plan de optie App Service-plan wijzigen.
Selecteer het abonnement waarnaar u een upgrade wilt uitvoeren of maak een nieuw plan.
Selecteer OK.
Overwegingen
Azure Functions-implementatiesites hebben de volgende overwegingen:
- Het aantal beschikbare slots voor een app is afhankelijk van het abonnement. Het verbruiksplan ondersteunt in totaal twee slots: het productieslot en één stagingslot. Er zijn meer slots beschikbaar voor apps die draaien onder andere abonnementen. Zie Servicelimieten voor meer informatie.
- Door een slot te verwisselen, worden sleutels opnieuw ingesteld voor apps met een
AzureWebJobsSecretStorageTypeapp-instelling die gelijk is aanfiles. - Wanneer je slots inschakelt, zet het portaal je functie-app op alleen-lezen-modus.
- Slotwissels kunnen falen wanneer je functie-app een beveiligd opslagaccount als standaard opslagaccount gebruikt (ingesteld in
AzureWebJobsStorage). Raadpleeg de referentieWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGSvoor meer informatie. - Gebruik namen van functie-apps die korter zijn dan 32 tekens. Namen langer dan 32 tekens kunnen botsingen van host-ID's veroorzaken.