Distributionsfack för Azure Functions
Med Azure Functions-distributionsfack kan funktionsappen köra olika instanser som kallas fack. Fack är olika miljöer som exponeras via en offentligt tillgänglig slutpunkt. En appinstans mappas alltid till produktionsplatsen och du kan växla instanser som tilldelats till ett fack på begäran.
Antalet tillgängliga platser beror på ditt specifika värdalternativ:
Värdalternativ | Fack (inklusive produktion) |
---|---|
Förbrukningsplan | 2 |
Flex-förbrukningsplan | Stöds för närvarande inte |
Premium-plan | 3 |
Dedikerad plan (App Service) | 1-20 |
Container Apps | Använder revisioner |
Följande återspeglar hur funktioner påverkas av byte av fack:
- Trafikomdirigering är sömlös. inga begäranden tas bort på grund av ett byte. Det här sömlösa beteendet beror på att nästa funktionsutlösare dirigeras till det växlade facket.
- Funktionen som körs för närvarande avslutas under växlingen. Information om hur du skriver tillståndslösa och defensiva funktioner finns i Förbättra prestanda och tillförlitlighet för Azure Functions.
Varför ska du använda fack?
Det finns många fördelar med att använda distributionsplatser, bland annat:
- Olika miljöer för olika syften: Om du använder olika platser kan du särskilja appinstanser innan du byter till produktion eller mellanlagringsplats.
- Förvarning: Om du distribuerar till ett fack i stället för direkt till produktion kan appen värmas upp innan den går live. Dessutom minskar användningen av platser svarstiden för HTTP-utlösta arbetsbelastningar. Instanser värms upp före distributionen, vilket minskar kallstarten för nyligen distribuerade funktioner.
- Enkla återställningar: Efter ett byte med produktion har facket med en tidigare mellanlagrad app nu den tidigare produktionsappen. Om ändringarna som växlas till produktionsplatsen inte är som förväntat kan du omedelbart återställa växlingen för att få tillbaka din "senast kända bra instans".
- Minimera omstarter: Om du ändrar appinställningarna i ett produktionsfack krävs en omstart av appen som körs. Du kan i stället ändra inställningarna i ett mellanlagringsfack och växla inställningarna till produktion med en förinstans. Platser är det rekommenderade sättet att migrera mellan Functions-körningsversioner samtidigt som den högsta tillgängligheten bibehålls. Mer information finns i Minsta stilleståndstidsuppdatering.
Växla åtgärder
Under en växling betraktas en plats som källa och den andra är målet. Källfacket har instansen av programmet som tillämpas på målplatsen. Följande steg säkerställer att målplatsen inte upplever driftstopp under ett byte:
Tillämpa inställningar: Inställningar från målfacket tillämpas på alla instanser av källfacket. Produktionsinställningarna tillämpas till exempel på mellanlagringsinstansen. De tillämpade inställningarna innehåller följande kategorier:
- Platsspecifika appinställningar och anslutningssträng (om tillämpligt)
- Inställningar för kontinuerlig distribution (om aktiverat)
- Autentiseringsinställningar för App Service (om det är aktiverat)
Vänta på omstarter och tillgänglighet: Växlingen väntar på att varje instans i källfacket ska slutföra omstarten och vara tillgänglig för begäranden. Om det inte går att starta om någon instans återställer växlingsåtgärden alla ändringar i källfacket och stoppar åtgärden.
Uppdateringsroutning: Om alla instanser på källplatsen har värmts upp slutför de två facken växlingen genom att växla routningsregler. Efter det här steget har målplatsen (till exempel produktionsplatsen) appen som tidigare värmdes upp i källfacket.
Upprepa åtgärden: Nu när källfacket har preswap-appen tidigare i målfacket slutför du samma åtgärd genom att tillämpa alla inställningar och starta om instanserna för källfacket.
Tänk på följande punkter:
När som helst under växlingsåtgärden sker initieringen av de växlade apparna på källfacket. Målfacket förblir online medan källfacket förbereds, oavsett om växlingen lyckas eller misslyckas.
Om du vill växla en mellanlagringsplats med produktionsplatsen kontrollerar du att produktionsplatsen alltid är målplatsen. På så sätt påverkar inte växlingsåtgärden din produktionsapp.
Inställningar som rör händelsekällor och bindningar måste konfigureras som distributionsfackinställningar innan du startar ett byte. Genom att markera dem som "klibbiga" i förväg ser du till att händelser och utdata dirigeras till rätt instans.
När du skapar ett nytt mellanlagringsfack skapas alla befintliga inställningar från produktionsplatsen i det nya facket, oavsett inställningens fasthet .
Hantera inställningar
Vissa konfigurationsinställningar är fackspecifika. I följande lista beskrivs vilka inställningar som ändras när du byter fack och vilka som förblir desamma.
Platsspecifika inställningar:
- Publicera slutpunkter
- Egna domännamn
- Icke-offentliga certifikat och TLS/SSL-inställningar
- Skalningsinställningar
- IP-begränsningar
- Alltid på
- Diagnostikinställningar
- Resursdelning för korsande ursprung (CORS)
- Privata slutpunkter
Icke-fackspecifika inställningar:
- Allmänna inställningar, till exempel ramverksversion, 32/64-bitars, webbuttag
- Appinställningar (kan konfigureras för att hålla sig till ett fack)
- Anslutningssträngar (kan konfigureras för att hålla sig till ett fack)
- Hanterarmappningar
- Offentliga certifikat
- Hybridanslutningar *
- Integrering av virtuellt nätverk *
- Tjänstslutpunkter *
- Azure Content Delivery Network *
Funktioner som har markerats med en asterisk (*) byts inte ut avsiktligt.
Kommentar
Vissa appinställningar som gäller för oanvända inställningar växlas inte heller. Eftersom diagnostikinställningarna till exempel inte byts ut växlas relaterade appinställningar som WEBSITE_HTTPLOGGING_RETENTION_DAYS
och DIAGNOSTICS_AZUREBLOBRETENTIONDAYS
växlas inte heller, även om de inte visas som platsinställningar.
Skapa en distributionsinställning
Du kan markera inställningar som en distributionsinställning, vilket gör den klibbig. En fast inställning växlar inte med appinstansen.
Om du skapar en distributionsinställning i ett fack måste du skapa samma inställning med ett unikt värde i alla andra platser som ingår i en växling. På så sätt är inställningsnamnen konsekventa mellan platser, även om värdet för en inställning inte ändras. Den här namnkonsekvensen säkerställer att koden inte försöker komma åt en inställning som har definierats i ett fack men inte en annan.
Använd följande steg för att skapa en distributionsinställning:
Gå till Distributionsplatser i funktionsappen och välj sedan facknamnet.
Välj Konfiguration och välj sedan det inställningsnamn som du vill hålla fast vid det aktuella facket.
Välj Inställningen Distributionsfack och välj sedan OK.
När inställningsavsnittet försvinner väljer du Spara för att behålla ändringarna
Distribution
Facken är tomma när du skapar ett fack. Du kan använda någon av de distributionstekniker som stöds för att distribuera ditt program till ett fack.
Skalning
Alla fack skalas till samma antal arbetare som produktionsplatsen.
- För Förbrukningsplaner skalar facket när funktionsappen skalar.
- För App Service-planer skalar appen till ett fast antal arbetare. Platser körs på samma antal arbetare som appplanen.
Visa fack
Du kan visa information om befintliga platser med antingen Azure CLI eller via Azure Portal.
Använd de här stegen för att skapa ett nytt fack i portalen:
Gå till funktionsappen.
Välj Distributionsfack och de befintliga platserna visas.
Lägga till en plats
Du kan lägga till ett fack med antingen Azure CLI eller via Azure Portal.
Använd de här stegen för att skapa ett fack i portalen:
Gå till funktionsappen.
Välj Distributionsplatser och välj sedan + Lägg till fack.
Skriv namnet på facket och välj Lägg till.
Åtkomst till fackresurser
Du får åtkomst till resurser (HTTP-utlösare och administratörsslutpunkter) på ett mellanlagringsfack på samma sätt som produktionsplatsen. Men i stället för funktionsappens värdnamn använder du det platsspecifika värdnamnet i begärande-URL:en, tillsammans med eventuella fackspecifika nycklar. Eftersom mellanlagringsplatser är liveappar måste du skydda dina funktioner i ett mellanlagringsfack som i produktionsfacket.
Växla fack
Du kan växla fack i en slutproduktion med hjälp av antingen Azure CLI eller via Azure Portal.
Använd de här stegen för att växla en mellanlagringsplats till produktion:
Gå till funktionsappen.
Välj Distributionsplatser och välj sedan Växla.
Kontrollera konfigurationsinställningarna för växlingen och välj Växla
Växlingsåtgärden kan ta några sekunder.
Återställa ett byte
Om ett byte resulterar i ett fel eller om du helt enkelt vill "ångra" ett byte kan du återställa till det ursprungliga tillståndet. Om du vill återgå till det förinstallerade tillståndet gör du ett nytt byte för att återställa växlingen.
Ta bort ett fack
Du kan ta bort ett fack med antingen Azure CLI eller via Azure Portal.
Använd de här stegen för att ta bort ett fack från din app i portalen:
Gå till Distributionsplatser i funktionsappen och välj sedan facknamnet.
Välj Ta bort.
Ange namnet på distributionsplatsen som du vill ta bort och välj sedan Ta bort.
Stäng bekräftelsefönstret.
Ändra App Service-plan
Med en funktionsapp som körs under en App Service-plan kan du ändra den underliggande App Service-planen för ett fack.
Kommentar
Du kan inte ändra en platss App Service-plan under förbrukningsplanen.
Använd följande steg för att ändra ett facks App Service-plan:
Gå till Distributionsplatser i funktionsappen och välj sedan facknamnet.
Under App Service-plan väljer du Ändra App Service-plan.
Välj den plan som du vill uppgradera till eller skapa en ny plan.
Välj OK.
Att tänka på
Azure Functions-distributionsplatser har följande överväganden:
- Hur många platser som är tillgängliga för en app beror på planen. Förbrukningsplanen tillåts bara ett distributionsfack. Fler platser är tillgängliga för appar som körs under andra planer. Mer information finns i Tjänstbegränsningar.
- Om du byter ett fack återställs nycklar för appar som har en
AzureWebJobsSecretStorageType
appinställning som ärfiles
lika med . - När platser är aktiverade är funktionsappen inställd på skrivskyddat läge i portalen.
- Fackväxlingar kan misslyckas när funktionsappen använder ett skyddat lagringskonto som standardlagringskonto (anges i
AzureWebJobsStorage
). Mer information finns i referensenWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
. - Använd funktionsappnamn som är kortare än 32 tecken. Namn som är längre än 32 tecken riskerar att orsaka kollisioner med värd-ID.