Azure Functions-implementatiesites
Met Azure Functions-implementatiesites kan uw functie-app verschillende exemplaren met de naam slots uitvoeren. Sites zijn verschillende omgevingen die beschikbaar zijn via een openbaar beschikbaar eindpunt. Eén app-exemplaar wordt altijd toegewezen aan de productiesite en u kunt exemplaren die zijn toegewezen aan een site op aanvraag wisselen.
Het aantal beschikbare sites is afhankelijk van uw specifieke hostingoptie:
Hostingoptie | Slots (inclusief productie) |
---|---|
Verbruiksabonnement | 2 |
Flex Consumption-abonnement | Wordt momenteel niet ondersteund |
Premium-abonnement | 3 |
Toegewezen (App Service)-plan | 1-20 |
Container Apps | Maakt gebruik van revisies |
Hieronder ziet u hoe functies worden beïnvloed door sites te wisselen:
- Verkeersomleiding is naadloos; er worden geen aanvragen verwijderd vanwege een swap. Dit naadloze gedrag treedt op omdat de volgende functietrigger wordt gerouteerd naar de gewisselde site.
- De functie die momenteel wordt uitgevoerd, wordt beëindigd tijdens het wisselen. Zie De prestaties en betrouwbaarheid van Azure Functions verbeteren voor meer informatie over het schrijven van staatloze en defensieve functies.
Waarom slots gebruiken?
Er zijn veel voordelen bij het gebruik van implementatiesites, waaronder:
- Verschillende omgevingen voor verschillende doeleinden: als u verschillende sites gebruikt, hebt u de mogelijkheid om app-exemplaren te onderscheiden voordat u overgaat naar productie of een staging-site.
- Voorbereiding: Door in een site te implementeren in plaats van rechtstreeks naar productie te gaan, kan de app worden opgewarmd voordat de app live gaat. Daarnaast vermindert het gebruik van sleuven de latentie voor door HTTP geactiveerde 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 zijn gewisseld in de productiesite niet zoals verwacht, kunt u de wissel direct omkeren om uw 'laatst bekende goede exemplaar' 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-site wijzigen en de instellingen wisselen in productie met een voorafwarmd exemplaar. Sites zijn de aanbevolen manier om te migreren tussen runtimeversies van Functions, met behoud van de hoogste beschikbaarheid. Zie Minimale downtime-update voor meer informatie.
Wisselbewerkingen
Tijdens een wisseling wordt één site beschouwd als de bron en de andere is het doel. De bronsite heeft het exemplaar van de toepassing die wordt toegepast op de doelsite. De volgende stappen zorgen ervoor dat de doelsite geen downtime ondervindt tijdens een wissel:
Instellingen toepassen: instellingen van de doelsite worden toegepast op alle exemplaren van de bronsite. De productie-instellingen worden bijvoorbeeld toegepast op het faseringsexemplaren. De toegepaste instellingen omvatten de volgende categorieën:
- Sitespecifieke app-instellingen en verbindingsreeks s (indien van toepassing)
- Instellingen voor continue implementatie (indien ingeschakeld)
- App Service-verificatie-instellingen (indien ingeschakeld)
Wacht op opnieuw opstarten en beschikbaarheid: de wissel wacht tot elk exemplaar in de bronsite de herstart heeft voltooid en beschikbaar is voor aanvragen. Als een exemplaar niet opnieuw kan worden opgestart, worden alle wijzigingen in de bronsite hersteld en wordt de bewerking gestopt.
Updateroutering: Als alle exemplaren op de bronsite met succes worden opgewarmd, worden de twee sites omgewisseld door om te schakelen tussen routeringsregels. 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.
Als u een staging-site wilt wisselen met de productiesite, moet u ervoor zorgen dat de productiesite altijd de doelsite is. Op deze manier heeft de wisselbewerking geen invloed op uw productie-app.
Instellingen met betrekking tot gebeurtenisbronnen en bindingen moeten worden geconfigureerd als instellingen voor de implementatiesite voordat u een wissel start. Als u ze vooraf als 'plakkerig' markeert, worden gebeurtenissen en uitvoer doorgestuurd naar het juiste exemplaar.
Wanneer u een nieuwe staging-site maakt, worden alle bestaande instellingen van de productiesite gemaakt in de nieuwe site, ongeacht de plakkerigheid van de instelling.
Instellingen beheren
Sommige configuratie-instellingen zijn sitespecifiek. In de volgende lijst vindt u details over welke instellingen worden gewijzigd wanneer u sites verwisselt en die hetzelfde blijven.
Sitespecifieke instellingen:
- Eindpunten publiceren
- Aangepaste domeinnamen
- Niet-openbare certificaten en TLS/SSL-instellingen
- Schaalinstellingen
- IP-beperkingen
- Altijd ingeschakeld
- Diagnostische instellingen
- CORS (Cross-Origin Resource Sharing, cross-origin-resource delen)
- Privé-eindpunten
Niet-sitespecifieke instellingen:
- Algemene instellingen, zoals frameworkversie, 32/64-bits, websockets
- App-instellingen (kan worden geconfigureerd om aan een site 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 Content Delivery Network *
Functies die zijn gemarkeerd met een sterretje (*) worden standaard niet gewisseld.
Notitie
Bepaalde app-instellingen die van toepassing zijn op niet-opgewapte instellingen, worden ook niet gewisseld. Omdat diagnostische instellingen bijvoorbeeld niet worden gewisseld, worden gerelateerde app-instellingen zoals WEBSITE_HTTPLOGGING_RETENTION_DAYS
en DIAGNOSTICS_AZUREBLOBRETENTIONDAYS
worden ze ook niet gewisseld, zelfs niet als ze niet worden weergegeven als site-instellingen.
Een implementatie-instelling maken
U kunt instellingen markeren als een implementatie-instelling, waardoor deze plakkerig wordt. Een plakinstelling wordt niet gewisseld met het app-exemplaar.
Als u een implementatie-instelling in één site maakt, moet u dezelfde instelling maken met een unieke waarde in een andere site die betrokken is bij een wisseling. Op deze manier blijven de instellingsnamen consistent tussen sites, 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 site is gedefinieerd, maar niet tot een andere.
Gebruik de volgende stappen om een implementatie-instelling te maken:
Navigeer naar Implementatiesites in de functie-app en selecteer vervolgens de naam van de site.
Selecteer Configuratie en selecteer vervolgens de naam van de instelling die u aan de huidige site wilt houden.
Selecteer de instelling implementatiesite en selecteer vervolgens OK.
Zodra de instellingssectie verdwijnt, selecteert u Opslaan om de wijzigingen te behouden
Implementatie
Sites zijn leeg wanneer u een site maakt. U kunt een van de ondersteunde implementatietechnologieën gebruiken om uw toepassing te implementeren in een site.
Schalen
Alle sites worden geschaald naar hetzelfde aantal werkrollen als de productiesite.
- Voor verbruiksabonnementen wordt de site geschaald naarmate de functie-app wordt geschaald.
- Voor App Service-abonnementen wordt de app geschaald naar een vast aantal werkrollen. Sites worden uitgevoerd op hetzelfde aantal werkrollen als het app-plan.
Sites weergeven
U kunt informatie over bestaande sites weergeven met behulp van de Azure CLI of via Azure Portal.
Gebruik deze stappen om een nieuwe site te maken in de portal:
Navigeer naar uw functie-app.
Selecteer Implementatiesites en de bestaande sites worden weergegeven.
Een sleuf toevoegen
U kunt een site toevoegen met behulp van de Azure CLI of via Azure Portal.
Gebruik deze stappen om een site te maken in de portal:
Navigeer naar uw functie-app.
Selecteer Implementatiesites en selecteer vervolgens + Site toevoegen.
Typ de naam van de site en selecteer Toevoegen.
Toegang tot sitebronnen
U opent resources (HTTP-triggers en beheerderseindpunten) in een staging-site op dezelfde manier als de productiesite. 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.
Sites wisselen
U kunt sites in een out-of-productieomgeving wisselen met behulp van de Azure CLI of via Azure Portal.
Gebruik deze stappen om een staging-site in productie te wisselen:
Navigeer naar de functie-app.
Selecteer Implementatiesites en selecteer Vervolgens Wisselen.
Controleer de configuratie-instellingen voor uw wissel en selecteer Wisselen
De wisselbewerking kan enkele seconden duren.
Een wissel terugdraaien
Als een wissel resulteert in een fout of als u gewoon een wissel ongedaan wilt maken, kunt u terugdraaien naar de oorspronkelijke status. Als u wilt terugkeren naar de vooraf gemaakte status, voert u een andere wisseling uit om de wissel om te draaien.
Een site verwijderen
U kunt een site verwijderen met behulp van de Azure CLI of via Azure Portal.
Gebruik deze stappen om een site uit uw app in de portal te verwijderen:
Navigeer naar Implementatiesites in de functie-app en selecteer vervolgens de naam van de site.
Selecteer Verwijderen.
Typ de naam van de implementatiesite die u wilt verwijderen en selecteer Vervolgens Verwijderen.
Sluit het bevestigingsvenster.
App Service-plan wijzigen
Met een functie-app die wordt uitgevoerd onder een App Service-plan, kunt u het onderliggende App Service-plan voor een site wijzigen.
Notitie
U kunt het App Service-abonnement van een site niet wijzigen onder het verbruiksabonnement.
Gebruik de volgende stappen om het App Service-plan van een site te wijzigen:
Navigeer naar Implementatiesites in de functie-app en selecteer vervolgens de naam van de site.
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 sites dat beschikbaar is voor een app, is afhankelijk van het abonnement. Het verbruiksabonnement is slechts één implementatiesite toegestaan. Er zijn meer sites beschikbaar voor apps die worden uitgevoerd onder andere abonnementen. Zie Servicelimieten voor meer informatie.
- Als u een site verwisselt, worden sleutels opnieuw ingesteld voor apps met een
AzureWebJobsSecretStorageType
app-instelling die gelijk is aanfiles
. - Wanneer sites zijn ingeschakeld, wordt uw functie-app ingesteld op de modus Alleen-lezen in de portal.
- Sitewisselingen kunnen mislukken wanneer uw functie-app een beveiligd opslagaccount gebruikt als het standaardopslagaccount (ingesteld in
AzureWebJobsStorage
). Raadpleeg de referentieWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
voor meer informatie. - Gebruik namen van functie-apps die korter zijn dan 32 tekens. Namen die langer zijn dan 32 tekens, lopen het risico dat er host-id-conflicten ontstaan.