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. Funktionsappar som körs i en förbrukningsplan har ett enda extra fack för mellanlagring. Du kan få fler mellanlagringsplatser genom att köra din app i en Premium-plan eller dedikerad (App Service)-plan. Mer information finns i Tjänstbegränsningar.

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:

  1. 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:

  2. 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.

  3. 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.

  4. 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 relaterade till händelsekällor och bindningar måste konfigureras som distributionsfackinställningarinnan 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.

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)
  • Anslut ionssträ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:

  1. Gå till Distributionsplatser i funktionsappen och välj sedan facknamnet.

    Find slots in the Azure portal.

  2. Välj Konfiguration och välj sedan det inställningsnamn som du vill hålla fast vid det aktuella facket.

    Configure the application setting for a slot in the Azure portal.

  3. Välj Inställningen Distributionsfack och välj sedan OK.

    Configure the deployment slot setting.

  4. När inställningsavsnittet försvinner väljer du Spara för att behålla ändringarna

    Save the deployment slot setting.

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 hjälp av antingen Azure CLI eller via Azure-portalen.

Använd de här stegen för att skapa ett nytt fack i portalen:

  1. Gå till funktionsappen.

  2. 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-portalen.

Använd de här stegen för att skapa ett fack i portalen:

  1. Gå till funktionsappen.

  2. Välj Distributionsplatser och välj sedan + Lägg till fack.

    Add Azure Functions deployment slot.

  3. Skriv namnet på facket och välj Lägg till.

    Name the Azure Functions deployment slot.

Å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 antingen Azure CLI eller via Azure-portalen.

Använd de här stegen för att växla en mellanlagringsplats till produktion:

  1. Gå till funktionsappen.

  2. Välj Distributionsplatser och välj sedan Växla.

    Screenshot that shows the 'Deployment slot' page with the 'Add Slot' action selected.

  3. Kontrollera konfigurationsinställningarna för växlingen och välj Växla

    Swap the deployment slot.

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-portalen.

Använd de här stegen för att ta bort ett fack från din app i portalen:

  1. Gå till Distributionsplatser i funktionsappen och välj sedan facknamnet.

    Find slots in the Azure portal.

  2. Välj Ta bort.

    Screenshot that shows the 'Overview' page with the 'Delete' action selected.

  3. Ange namnet på distributionsplatsen som du vill ta bort och välj sedan Ta bort.

    Delete the deployment slot in the Azure portal.

  4. Stäng bekräftelsefönstret.

    Deployment slot delete confirmation.

Ä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:

  1. Gå till Distributionsplatser i funktionsappen och välj sedan facknamnet.

    Find slots in the Azure portal.

  2. Under App Service-plan väljer du Ändra App Service-plan.

  3. Välj den plan som du vill uppgradera till eller skapa en ny plan.

    Change the App Service plan in the Azure portal.

  4. 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 är fileslika 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 referensen WEBSITE_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.

Nästa steg