Sdílet prostřednictvím


Přemístění aplikace funkcí do jiné oblasti Azure

Tento článek popisuje, jak přesunout aplikaci funkcí hostované službou Azure Functions do jiné oblasti Azure.

Existují různé důvody, proč můžete chtít přesunout existující prostředky Azure z jedné oblasti do jiné. Možná budete chtít:

  • Využijte výhod nové oblasti Azure.
  • Nasaďte funkce nebo služby dostupné pouze v konkrétních oblastech.
  • Splnění interních zásad a požadavků zásad správného řízení
  • Sladění s fúzemi a akvizicemi společností
  • Splnění požadavků na plánování kapacity

Prostředky Azure, které hostují vaši aplikaci funkcí, jsou specifické pro jednotlivé oblasti a nedají se přesouvat mezi oblastmi. Místo toho musíte vytvořit kopii existujících prostředků aplikace funkcí v cílové oblasti a pak znovu nasadit kód funkcí do nové aplikace.

Tyto stejné prostředky můžete přesunout do jiné skupiny prostředků nebo předplatného, pokud zůstanou ve stejné oblasti. Další informace najdete v tématu Přesun prostředků služby App Service do nové skupiny prostředků nebo předplatného.

Požadavky

  • Ujistěte se, že cílová oblast podporuje Azure Functions a všechny související služby, jejichž prostředky chcete přesunout.
  • Ujistěte se, že máte oprávnění k vytvoření prostředků potřebných v nové oblasti.

Příprava

Identifikujte všechny prostředky aplikace funkcí používané ve zdrojové oblasti, které můžou zahrnovat:

Při přípravě na přesun aplikace do nové oblasti existuje několik částí architektury, které vyžadují zvláštní pozornost a plánování.

Název aplikace funkcí

Názvy aplikací funkcí musí být globálně jedinečné pro všechny aplikace Azure. To znamená, že nová aplikace funkcí nemůže mít stejný název a adresu URL jako původní. To platí i při použití vlastního DNS, protože podkladová <APP_NAME>.azurewebsites.net položka musí být stále jedinečná. Možná budete muset aktualizovat všechny klienty, kteří se ve vaší aplikaci funkcí připojují ke koncovým bodům HTTP. Tito klienti musí při vytváření požadavků používat novou adresu URL.

Zdrojový kód

V ideálním případě udržujete zdrojový kód v úložišti kódu nějakého druhu nebo v úložišti kontejneru, pokud běží v kontejneru Linuxu. Pokud používáte průběžné nasazování, naplánujte přepnutí připojení úložiště nebo kontejneru k nové adrese aplikace funkcí. Pokud už z nějakého důvodu zdrojový kód nemáte, můžete si stáhnout aktuálně spuštěný balíček z původní aplikace funkcí. Doporučujeme ukládat zdrojové soubory do úložiště kódu a používat průběžné nasazování aktualizací.

Výchozí účet úložiště

Hostitel Služby Functions vyžaduje účet Azure Storage. Další informace najdete v tématu Požadavky na účet úložiště. Pro zajištění nejlepšího výkonu by vaše aplikace funkcí měla používat účet úložiště ve stejné oblasti. Když vytvoříte novou aplikaci s novým účtem úložiště ve vaší nové oblasti, aplikace získá novou sadu přístupových klíčů funkcí a stav všech triggerů (například triggerů časovače) se resetuje.

Trvalé místní úložiště

Spouštění funkcí je určeno jako bezstavové. Nezabráníme vám ale v zápisu dat do místního systému souborů. Data vygenerovaná a používaná vaší aplikací je možné ukládat na virtuální jednotku %HOME%\site , ale tato data by neměla souviset se stavem. Pokud váš scénář vyžaduje zachování stavu mezi spuštěními funkcí, zvažte použití Durable Functions.

Pokud vaše aplikace udržuje data v cestě ke sdílenému úložišti aplikace, nezapomeňte naplánovat, jak budete tento stav spravovat během přesunu prostředků. Mějte na paměti, že pro aplikace vyhrazeného plánu (App Service) je sdílená složka součástí webu. Pro plány Consumption a Premium je sdílená složka ve výchozím nastavení sdílená složka Azure Files ve výchozím účtu úložiště. Aplikace spuštěné v Linuxu můžou pro trvalé úložiště používat explicitně připojenou sdílenou složku.

Připojené služby

Vaše funkce se můžou připojit ke službám Azure a dalším prostředkům pomocí sady SDK služby nebo triggerů a vazeb. Když se aplikace přesune do nové oblasti, může to mít negativní dopad na všechny připojené služby. Pokud dochází k problémům s latencí nebo v celém prostředí, zvažte také přesun jakékoli připojené služby do nové oblasti. Informace o přesunu těchto prostředků mezi oblastmi najdete v dokumentaci příslušných služeb. Při přesunu aplikace s připojenými službami můžete během přesunu zvážit strategii zotavení po havárii mezi oblastmi a provozní kontinuitou .

Změny připojených služeb můžou vyžadovat aktualizaci hodnot uložených v nastavení aplikace, které se používají pro připojení k těmto službám.

Konfigurace

  • Snímek stávajícího nastavení aplikace a připojovací řetězec můžete zachytit na webu Azure Portal. Rozbalte proměnné prostředí nastavení>, v části Nastavení aplikace nebo Připojovací řetězce vyberte Upřesnit úpravy a uložte výstup JSON, který obsahuje existující nastavení nebo připojení. Tato nastavení je potřeba znovu vytvořit v nové oblasti, ale samotné hodnoty se pravděpodobně změní v důsledku následných změn oblastí v připojených službách.

  • Existující odkazy služby Key Vault se nedají exportovat přes geografickou hranici Azure. Je nutné znovu vytvořit všechny požadované odkazy v nové oblasti.

  • Konfiguraci aplikace může spravovat Aplikace Azure Konfigurace nebo jiná centrální (podřízená) databáze. Zkontrolujte libovolné úložiště app Configuration store nebo podobná úložiště pro prostředí a nastavení specifická pro danou oblast, která můžou vyžadovat úpravy.

Vlastní domény

Pokud vaše aplikace funkcí používá vlastní doménu, vytvořte vazbu předem na cílovou aplikaci. Ověřte a povolte doménu v cílové aplikaci. Po přesunutí je nutné přemapovat název domény.

Virtuální sítě

Azure Functions umožňuje integrovat aplikace s prostředky virtuální sítě a dokonce je spouštět ve virtuální síti. Další informace najdete v tématu Možnosti sítě Azure Functions. Při přechodu do nové oblasti musíte před nasazením aplikace nejprve přesunout nebo znovu vytvořit všechny požadované prostředky virtuální sítě a podsítě. To zahrnuje přesun nebo opětovné vytvoření všech privátních koncových bodů a koncových bodů služby.

Identity

  • Potřebujete znovu vytvořit všechny spravované identity přiřazené systémem společně s vaší aplikací v nové cílové oblasti. Obvykle se automaticky vytvořená aplikace Microsoft Entra ID, kterou používá EasyAuth, standardně používá název prostředku aplikace.

  • Spravované identity přiřazené uživatelem se také nedají přesouvat mezi oblastmi. Pokud chcete zachovat spravované identity přiřazené uživatelem ve stejné skupině prostředků s vaší aplikací, musíte je znovu vytvořit v nové oblasti. Další informace najdete v tématu Přemístění spravovaných identit pro prostředky Azure do jiné oblasti.

  • Udělte spravovaným identitám stejná oprávnění ve vašich přemíscených službách jako původní identity, které nahrazují, včetně členství ve skupinách.

Certifikáty

Prostředky certifikátu služby App Service je možné přesunout do nové skupiny prostředků nebo předplatného, ale ne napříč oblastmi. Certifikáty, které je možné exportovat, je možné importovat také do aplikace nebo do služby Key Vault v nové oblasti. Tento proces exportu a importu je ekvivalentem přesunu mezi oblastmi.

Při plánování přemístění služeb je potřeba vzít v úvahu různé typy certifikátů:

Typ certifikátu Exportovatelný Komentáře
Spravovaná služba App Service No Znovu vytvořte tyto certifikáty v nové oblasti.
Spravovaná služba Azure Key Vault Ano Tyto certifikáty je možné exportovat ze služby Key Vault a pak je importovat do služby Key Vault v nové oblasti.
Privátní klíč (samospravovaný) Ano Certifikáty, které jste získali mimo Azure, je možné exportovat ze služby App Service a pak je importovat do nové aplikace nebo do služby Key Vault v nové oblasti.
Veřejný klíč No Aplikace může mít certifikáty jenom s veřejným klíčem a bez tajného klíče, které se používají pro přístup k jiným zabezpečeným koncovým bodům. Získejte požadované soubory certifikátu veřejného klíče a naimportujte je do aplikace v nové oblasti.

Access keys

Služba Functions používá přístupové klíče, aby bylo obtížnější přistupovat ke koncovým bodům HTTP ve vaší aplikaci funkcí. Tyto klíče jsou zašifrované ve výchozím účtu úložiště. Když vytvoříte novou aplikaci v nové oblasti, vytvoří se nová sada klíčů. Abyste mohli používat nové klíče v nové oblasti, musíte aktualizovat všechny existující klienty, kteří používají přístupové klíče. I když byste měli používat nové klíče, je možné znovu vytvořit staré klíče v nové aplikaci. Další informace najdete v tématu Práce s přístupovými klíči ve službě Azure Functions.

Odstávka

Pokud je požadavek minimálního výpadku, zvažte spuštění aplikace funkcí v obou oblastech, jak se doporučuje implementovat architekturu zotavení po havárii. Konkrétní architektura, kterou implementujete, závisí na typech triggerů ve vaší aplikaci funkcí. Další informace najdete v tématu Spolehlivost ve službě Azure Functions.

Odolná služba Functions

Rozšíření Durable Functions umožňuje definovat orchestrace, kde se stav udržuje ve spouštění funkcí pomocí stavových entit. V ideálním případě byste měli povolit dokončení orchestrací před migrací aplikace Durable Functions, zejména pokud plánujete přepnout na nový účet úložiště v nové oblasti. Při migraci aplikací Durable Functions zvažte použití jedné z těchto strategií zotavení po havárii a geografické distribuce.

Přemístit

Opětovné vytvoření aplikace funkcí v nové oblasti vyžaduje, abyste nejprve znovu vytvořili infrastrukturu Azure plánu služby App Service, instance aplikace funkcí a souvisejících prostředků, jako jsou virtuální sítě, identity a sloty. Musíte se také znovu připojit nebo v nové oblasti znovu vytvořit prostředky Azure vyžadované aplikací. Tyto prostředky můžou zahrnovat výchozí účet služby Azure Storage a instanci Application Insights.

Pak můžete zabalit a znovu nasadit skutečný zdrojový kód aplikace nebo kontejner do aplikace funkcí spuštěné v nové oblasti.

Opětovné vytvoření infrastruktury Azure

V cílové oblasti můžete vytvořit aplikaci funkcí a související prostředky v Azure několika způsoby:

  • Šablony nasazení: Pokud jste původně nasadili aplikaci funkcí pomocí souborů infrastruktury jako kódu (IaC) (Bicep, šablon ARM nebo Terraform), můžete tato předchozí nasazení aktualizovat tak, aby cílila na novou oblast, a použít je k opětovnému vytvoření prostředků v nové oblasti. Pokud už tyto soubory nasazení nemáte, můžete si kdykoli stáhnout šablonu ARM pro existující skupinu prostředků z webu Azure Portal.
  • Skripty Azure CLI/PowerShellu: Pokud jste původně nasadili aplikaci funkcí pomocí Azure CLI nebo skriptů Azure PowerShellu, můžete tyto skripty aktualizovat tak, aby místo toho cílily na novou oblast, a spustit je znovu. Pokud už tyto skripty nemáte, můžete si také stáhnout šablonu ARM pro existující skupinu prostředků z webu Azure Portal.
  • Azure Portal: Pokud jste aplikaci funkcí vytvořili na portálu původně nebo se necítíte pohodlně pomocí skriptů nebo souborů IaC, můžete všechno vytvořit znovu na portálu. Ujistěte se, že používáte stejný plán hostování, modul runtime jazyka a verzi jazyka jako původní aplikace.

Kontrola nakonfigurovaných prostředků

Zkontrolujte a nakonfigurujte prostředky identifikované v kroku Příprava výše v cílové oblasti, pokud nebyly během nasazení nakonfigurovány. Pokud používáte průběžné nasazování s ověřováním spravovaných identit, ujistěte se, že v nové aplikaci funkcí existují požadované identity a mapování rolí.

Opětovné nasazení zdrojového kódu

Teď, když máte zavedenou infrastrukturu, můžete zdrojový kód znovu zabalit a znovu nasadit do aplikace funkcí. Tento čas je vhodný čas přesunout zdrojový kód nebo image kontejneru do úložiště a povolit průběžné nasazování z tohoto úložiště.

Můžete také použít jakoukoli jinou metodu publikování podporovanou funkcí. Většina publikování na základě nástrojů vyžaduje povolení základního ověřování na koncovém scm bodu, což se nedoporučuje pro produkční aplikace.

Aspekty přemístění

  • Nezapomeňte ověřit konfiguraci a otestovat funkce v cílové oblasti.
  • Pokud jste nakonfigurovali vlastní doménu, znovu namapujte název domény.
  • U aplikace funkcí spuštěné v plánu Dedicated (App Service) zkontrolujte také plán migrace služby App Service při sdílení plánu s jednou nebo více webovými aplikacemi.

Vyčištění

Po dokončení přesunu odstraňte aplikaci funkcí a plán hostování ze zdrojové oblasti. Platíte za aplikace funkcí v plánech Premium nebo Dedicated, i když samotná aplikace není spuštěná. Pokud jste v nové oblasti znovu vytvořili další služby, měli byste starší služby odstranit i po tom, co jste si jisti, že už nejsou potřeba.

Projděte si Centrum architektury Azure, kde najdete příklady aplikací funkcí běžících v několika oblastech v rámci pokročilejších a geograficky redundantních architektur řešení.