Sloty nasazení Azure Functions

Sloty nasazení Azure Functions umožňují vaší aplikaci funkcí spouštět různé instance označované jako sloty. Sloty jsou různá prostředí vystavená prostřednictvím veřejně dostupného koncového bodu. Jedna instance aplikace je vždy namapovaná na produkční slot a můžete prohodit instance přiřazené slotu na vyžádání. Aplikace funkcí spuštěné v plánu Consumption mají jeden dodatečný slot pro přípravu. Více přípravných slotů můžete získat spuštěním aplikace v plánu Premium nebo v plánu Dedicated (App Service). Další informace najdete v tématu Omezení služby.

Následující příklad ukazuje, jak jsou funkce ovlivněny prohozením slotů:

  • Přesměrování provozu je bezproblémové; kvůli prohození se neprohodí žádné žádosti. K tomuto bezproblémovému chování dochází, protože další aktivační událost funkce je směrována do prohozeného slotu.
  • V současné době se provádění funkce ukončí během prohození. Informace o psaní bezstavových a defenzivních funkcí najdete v tématu Zlepšení výkonu a spolehlivosti azure Functions.

Proč používat sloty?

Používání slotů nasazení má řadu výhod, mezi které patří:

  • Různá prostředí pro různé účely: Použití různých slotů umožňuje rozlišovat instance aplikací před prohozením do produkčního nebo přípravného slotu.
  • Předzálohování: Nasazení do slotu místo přímo do produkčního prostředí umožňuje aplikaci před zahájením provozu zahřát. Používání slotů navíc snižuje latenci pro úlohy aktivované protokolem HTTP. Instance se před nasazením zahřejí, což snižuje studený start pro nově nasazené funkce.
  • Jednoduché náhradní řešení: Po prohození s produkčním prostředím teď slot s dříve fázovanou aplikací má předchozí produkční aplikaci. Pokud změny prohozené do produkčního slotu nejsou tak, jak očekáváte, můžete okamžitě obrátit prohození a získat zpět "poslední známou dobrou instanci".
  • Minimalizovat restartování: Změna nastavení aplikace v produkčním slotu vyžaduje restartování spuštěné aplikace. Místo toho můžete změnit nastavení v přípravném slotu a změnit nastavení do produkčního prostředí s předzbrojenou instancí. Sloty představují doporučený způsob, jak migrovat mezi verzemi modulu runtime Služby Functions při zachování nejvyšší dostupnosti. Další informace najdete v tématu Minimální aktualizace výpadků.

Operace prohození

Během prohození se jeden slot považuje za zdroj a druhý je cílem. Zdrojový slot má instanci aplikace, která se použije na cílový slot. Následující kroky zajistí, že cílový slot během prohození neprovádí výpadek:

  1. Použít nastavení: Nastavení z cílového slotu se použijí na všechny instance zdrojového slotu. Například nastavení v produkčním prostředí se použije pro přípravnou instanci. Použitá nastavení zahrnují následující kategorie:

  2. Počkejte na restartování a dostupnost: Prohození čeká na dokončení restartování každé instance ve zdrojovém slotu a dostupnost pro požadavky. Pokud se některé instanci nepodaří restartovat, operace prohození vrátí všechny změny zdrojového slotu a zastaví operaci.

  3. Směrování aktualizací: Pokud jsou všechny instance ve zdrojovém slotu úspěšně zahřeje, oba sloty prohození dokončí přepnutím pravidel směrování. Po tomto kroku má cílový slot (například produkční slot) aplikaci, která byla dříve vyhřátá ve zdrojovém slotu.

  4. Opakovat operaci: Teď, když má zdrojový slot dříve v cílovém slotu aplikaci preswap, dokončete stejnou operaci tím, že použijete všechna nastavení a restartuje instance zdrojového slotu.

Mějte na paměti následující skutečnosti:

  • V jakémkoli okamžiku operace prohození probíhá inicializace prohozených aplikací ve zdrojovém slotu. Cílový slot zůstane online, i když je zdrojový slot připravený, ať už je prohození úspěšné nebo neúspěšné.

  • Pokud chcete prohodit přípravný slot s produkčním slotem, ujistěte se, že produkční slot je vždy cílovým slotem. Operace prohození tak nemá vliv na vaši produkční aplikaci.

  • Nastavení související se zdroji událostí a vazbami musí být před zahájením prohození nakonfigurované jako nastaveníslotu nasazení. Označení jako "rychlé" předem zajistí, že se události a výstupy směrují do správné instance.

Správa nastavení

Některá nastavení konfigurace jsou specifická pro sloty. Následující seznam obsahuje podrobnosti o tom, která nastavení se změní při prohození slotů a která zůstanou stejná.

Nastavení specifické pro slot:

  • Koncové body publikování
  • Vlastní názvy domén
  • Nepublikované certifikáty a nastavení PROTOKOLU TLS/SSL
  • Nastavení škálování
  • Omezení IP adres
  • Stálé připojení
  • Nastavení diagnostiky
  • Sdílení prostředků mezi zdroji (CORS)
  • Privátní koncové body

Neschová nastavení specifická pro slot:

  • Obecná nastavení, například verze architektury, 32bitová/64bitová, webová sokety
  • Nastavení aplikace (je možné nakonfigurovat tak, aby se držela slotu)
  • Připojení ionové řetězce (lze nakonfigurovat tak, aby se držely slotu)
  • Mapování obslužných rutin
  • Veřejné certifikáty
  • Hybridní připojení *
  • Integrace virtuální sítě *
  • Koncové body služby *
  • Azure Content Delivery Network *

Funkce označené hvězdičkou (*) se záměrně neprohodí.

Poznámka:

Některá nastavení aplikace, která se vztahují na nepovolené nastavení, se také neprohodí. Například vzhledem k tomu, že nastavení diagnostiky se neprohodí, související nastavení aplikace se jako WEBSITE_HTTPLOGGING_RETENTION_DAYS a DIAGNOSTICS_AZUREBLOBRETENTIONDAYS také neprohodí, i když se nezobrazují jako nastavení slotu.

Vytvoření nastavení nasazení

Nastavení můžete označit jako nastavení nasazení, což z něj dělá rychlé. Rychlé nastavení se neprohodí s instancí aplikace.

Pokud vytvoříte nastavení nasazení v jednom slotu, nezapomeňte vytvořit stejné nastavení s jedinečnou hodnotou v jakémkoli jiném slotu, který je součástí prohození. Když se hodnota nastavení nezmění, názvy nastavení zůstanou mezi sloty konzistentní. Tato konzistence názvů zajistí, že se váš kód nepokusí získat přístup k nastavení definovanému v jednom slotu, ale ne v jiném.

K vytvoření nastavení nasazení použijte následující postup:

  1. Přejděte do slotů nasazení v aplikaci funkcí a pak vyberte název slotu.

    Find slots in the Azure portal.

  2. Vyberte Možnost Konfigurace a pak vyberte název nastavení, který chcete zachovat u aktuálního slotu.

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

  3. Vyberte nastavení slotu nasazení a pak vyberte OK.

    Configure the deployment slot setting.

  4. Jakmile oddíl nastavení zmizí, vyberte Uložit , aby se změny zachovaly.

    Save the deployment slot setting.

Nasazení

Sloty jsou při vytváření slotu prázdné. K nasazení aplikace do slotu můžete použít kteroukoli z podporovaných technologií nasazení.

Škálování

Všechny sloty se škáluje na stejný počet pracovních procesů jako produkční slot.

  • V případě plánů Consumption se slot škáluje podle škálování aplikace funkcí.
  • V případě plánů služby App Service se aplikace škáluje na pevný počet pracovních procesů. Sloty běží na stejném počtu pracovních procesů jako plán aplikace.

Zobrazení slotů

Informace o existujících slotech můžete zobrazit pomocí Azure CLI nebo webu Azure Portal.

Pomocí těchto kroků vytvořte nový slot na portálu:

  1. Přejděte do aplikace funkcí.

  2. Zobrazí se výběr slotů nasazení a existujících slotů.

Přidat slot

Slot můžete přidat pomocí Azure CLI nebo webu Azure Portal.

K vytvoření slotu na portálu použijte tento postup:

  1. Přejděte do aplikace funkcí.

  2. Vyberte Sloty nasazení a pak vyberte + Přidat slot.

    Add Azure Functions deployment slot.

  3. Zadejte název slotu a vyberte Přidat.

    Name the Azure Functions deployment slot.

Přístup k prostředkům slotu

K prostředkům (triggerům HTTP a koncovým bodům správce) přistupujete v přípravném slotu stejným způsobem jako v produkčním slotu. Místo názvu hostitele aplikace funkcí však v adrese URL požadavku použijete název hostitele specifického pro slot spolu s libovolnými klíči specifickými pro slot. Protože přípravné sloty jsou živé aplikace, musíte své funkce zabezpečit v přípravném slotu stejně jako v produkčním slotu.

Prohození slotů

Sloty můžete prohodit v mimoprodukčním prostředí pomocí Azure CLI nebo prostřednictvím webu Azure Portal.

Pomocí těchto kroků prohodíte přípravný slot do produkčního prostředí:

  1. Přejděte do aplikace funkcí.

  2. Vyberte Sloty nasazení a pak vyberte Prohodit.

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

  3. Ověřte nastavení konfigurace pro prohození a vyberte Prohodit.

    Swap the deployment slot.

Operace prohození může trvat několik sekund.

Vrácení výměny zpět

Pokud prohození způsobí chybu nebo jednoduše chcete vrátit zpět prohození, můžete se vrátit zpět do počátečního stavu. Pokud se chcete vrátit do předem připraveného stavu, proveďte další prohození a zaměňte prohození.

Odebrání slotu

Slot můžete odebrat pomocí Azure CLI nebo webu Azure Portal.

K odebrání slotu z aplikace na portálu použijte tento postup:

  1. Přejděte do slotů nasazení v aplikaci funkcí a pak vyberte název slotu.

    Find slots in the Azure portal.

  2. Vyberte Odstranit.

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

  3. Zadejte název slotu nasazení, který chcete odstranit, a pak vyberte Odstranit.

    Delete the deployment slot in the Azure portal.

  4. Zavřete potvrzovací podokno.

    Deployment slot delete confirmation.

Změnit plán služby App Service

Pomocí aplikace funkcí spuštěné v rámci plánu služby App Service můžete změnit základní plán služby App Service pro slot.

Poznámka:

V rámci plánu Consumption nemůžete změnit plán služby App Service slotu.

Pomocí následujících kroků změňte plán služby App Service slotu:

  1. Přejděte do slotů nasazení v aplikaci funkcí a pak vyberte název slotu.

    Find slots in the Azure portal.

  2. V části Plán služby App Service vyberte Změnit plán služby App Service.

  3. Vyberte plán, na který chcete upgradovat, nebo vytvořte nový plán.

    Change the App Service plan in the Azure portal.

  4. Vyberte OK.

Důležité informace

Sloty nasazení Azure Functions mají následující aspekty:

  • Počet slotů dostupných pro aplikaci závisí na plánu. Plán Consumption je povolený pouze jeden slot nasazení. Pro aplikace běžící v jiných plánech je k dispozici více slotů. Podrobnosti najdete v tématu Omezení služeb.
  • Prohození slotu resetuje klíče pro aplikace, které mají AzureWebJobsSecretStorageType nastavení aplikace rovnou files.
  • Pokud jsou sloty povolené, je aplikace funkcí na portálu nastavená na režim jen pro čtení.
  • Prohození slotů může selhat, když vaše aplikace funkcí používá zabezpečený účet úložiště jako výchozí účet úložiště (nastavený ).AzureWebJobsStorage Další informace najdete v referenčních informacích WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS .
  • Používejte názvy aplikací funkcí kratší než 32 znaků. Názvy delší než 32 znaků jsou ohroženy příčinou kolizí ID hostitele.

Další kroky