Sítě ve službě App Service Environment

App Service Environment je nasazení služby Aplikace Azure s jedním tenantem, které hostuje kontejnery Windows a Linux, webové aplikace, aplikace API, aplikace logiky a aplikace funkcí. Při instalaci služby App Service Environment vyberete virtuální síť Azure, do které chcete nasadit. Veškerý příchozí a odchozí provoz aplikace je uvnitř vámi zadané virtuální sítě. Nasadíte do jedné podsítě ve virtuální síti a do této podsítě se nedá nasadit nic jiného.

Požadavky na podsíť

Níže najdete minimální sadu požadavků pro podsíť, ve které je vaše služba App Service Environment.

  • Podsíť musí být delegována na Microsoft.Web/hostingEnvironments.
  • Podsíť musí být prázdná.
  • Vlastnost podsítě addressPrefix musí být naformátovaná jako řetězec, nikoli jako pole.

Velikost podsítě může ovlivnit omezení škálování instancí plánů služby App Service v rámci služby App Service Environment. Pro produkční škálování doporučujeme adresní /24 prostor (256 adres) pro vaši podsíť. Pokud plánujete škálovat téměř na maximální kapacitu 200 instancí v naší službě App Service Environment a plánujete časté operace horizontálního/vertikálního škálování, doporučujeme adresní /23 prostor (512 adres) pro vaši podsíť.

Poznámka:

Teď je možné přesunout službu App Service Environment do nové podsítě. Chcete-li přesunout službu App Service Environment do nové podsítě, vytvořte podpůrný požadavek. Vyžaduje se lístek podpory, protože existují požadavky a konfigurace, které je potřeba před změnou podsítě ověřit a správně nakonfigurovat, aby se zajistila úspěšná migrace. Selhání správné migrace může vést k výpadkům a problémům s připojením.

Pokud používáte menší podsíť, mějte na paměti následující omezení:

  • Každá konkrétní podsíť má pět adres vyhrazených pro účely správy. Kromě adres pro správu služba App Service Environment dynamicky škáluje podpůrnou infrastrukturu a v závislosti na konfiguraci a zatížení využívá 7 až 27 adres. Zbývající adresy můžete použít pro instance v plánu služby App Service. Minimální velikost podsítě je adresní /27 prostor (32 adres).
  • Pro libovolnou kombinaci operačního systému/SKU plánu služby App Service použité ve službě App Service Environment, jako je I1v2 Windows, se pro každých 20 aktivních instancí vytvoří jedna pohotovostní instance. Pohotovostní instance také vyžadují IP adresy.
  • Při škálování plánů služby App Service ve službě App Service Environment nahoru/dolů se během dokončení operace škálování dočasně zdvojnásobí množství IP adres používaných plánem služby App Service. Nové instance musí být plně funkční před odstraněním existujících instancí.
  • Upgrady platforem potřebují bezplatné IP adresy, aby se zajistilo, že upgrady můžou probíhat bez přerušení odchozího provozu.
  • Po dokončení škálování nahoru, dolů nebo dovnitř může uplynout krátká doba, než jsou IP adresy uvolněny. Ve výjimečných případech může být tato operace až 12 hodin.
  • Pokud vám v podsíti dojdou adresy, může být omezena možnost škálování vašich plánů služby App Service ve službě App Service Environment. Další možností je, že během náročného zatížení provozu můžete zaznamenat zvýšenou latenci, pokud Microsoft nedokáže škálovat podpůrnou infrastrukturu.

Poznámka:

Kontejnery Windows používají pro každou aplikaci v každé instanci plánu služby App Service další IP adresu, a je třeba přizpůsobit velikost podsítě podle toho. Pokud má vaše služba App Service Environment například 2 plány služby Windows Container App Service s 25 instancemi a každou s 5 spuštěnými aplikacemi, budete potřebovat 300 IP adres a dalších adres pro podporu horizontálního (in/out) škálování.

Ukázkový výpočet:

Pro každou instanci plánu služby App Service potřebujete: 5 aplikací pro kontejner Windows = 5 IP adres 1 IP adresa na instanci plánu služby App Service 5 + 1 = 6 IP adres.

Pro 25 instancí: 6 x 25 = 150 IP adres na plán služby App Service

Vzhledem k tomu, že máte 2 plány služby App Service, 2 x 150 = 300 IP adres.

Adresy

Služba App Service Environment má při vytváření následující informace o síti:

Typ adresy Popis
Virtuální síť App Service Environment Nasazení virtuální sítě.
Podsíť služby App Service Environment Podsíť nasazená do.
Přípona domény Výchozí přípona domény, kterou aplikace používají.
Přípona vlastní domény (volitelné) Vlastní přípona domény, kterou aplikace používají.
Virtuální IP adresa (VIP) Použitý typ VIP. Dvě možné hodnoty jsou interní a externí.
Příchozí adresa Příchozí adresa je adresa, na které jsou vaše aplikace dosaženy. Pokud máte interní VIP, je to adresa v podsíti služby „App Service Environment“. Pokud je adresa externí, jedná se o veřejnou adresu.
Odchozí adresy pracovníků Tyto nebo tyto adresy používají aplikace při odchozích voláních na internet.
Odchozí adresy platformy Platforma používá tuto adresu při odchozích voláních na internet. Příkladem je vyžádání certifikátů pro příponu vlastní domény ze služby Key Vault, pokud není použit privátní koncový bod.

Podrobnosti najdete v části IP adresy portálu, jak je znázorněno na následujícím snímku obrazovky:

Snímek obrazovky znázorňující podrobnosti o IP adresách

Při škálování plánů služby App Service ve službě App Service Environment použijete více adres mimo vaši podsíť. Počet adres, které používáte, se liší v závislosti na počtu instancí plánu služby App Service, které máte, a množství provozu. Aplikace ve službě App Service Environment nemají v podsíti vyhrazené adresy. Konkrétní adresy používané aplikací v podsíti se v průběhu času změní.

Přinést si vlastní příchozí adresu

V App Service Environment můžete použít vlastní příchozí adresu. Pokud vytvoříte prostředí App Service Environment s interní VIP, můžete v podsíti zadat statickou IP adresu. Pokud vytvoříte službu App Service Environment s externí VIP, můžete použít vlastní veřejnou IP adresu Azure zadáním ID prostředku této veřejné IP adresy. Následující omezení platí pro přenesení vlastní příchozí adresy:

  • Pro externí VIP ve službě App Service Environment musí být prostředek veřejné IP adresy Azure ve stejném předplatném jako samotná služba App Service Environment.
  • Příchozí adresu nelze po vytvoření služby App Service Environment změnit.

Omezení příchozího provozu ve službě App Service Environment s Interním Load Balancerem (ILB)

V případě prostředí App Service Environment s interní VIP adresou může být příchozí provoz na front-endy zablokován, pokud zdrojová IP adresa spadá do rozsahu adres infrastruktury používaného pro front-endy prostředí App Service Environment. 172.31.192.0/25.

Omezení portů a sítě

Aby vaše aplikace přijímala provoz, ujistěte se, že příchozí pravidla skupiny zabezpečení sítě (NSG) umožňují podsíti služby App Service Environment přijímat provoz z požadovaných portů. Kromě portů, na které chcete přijímat provoz, byste měli zajistit, aby se Azure Load Balancer mohl připojit k podsíti na portu 80. Tento port se používá pro kontroly stavu interního virtuálního počítače. Provoz portu 80 z virtuální sítě do vaší podsítě můžete stále řídit.

Poznámka:

Změny pravidel NSG můžou trvat až 14 dní, než se projeví kvůli trvalosti připojení HTTP. Pokud provedete změnu, která blokuje provoz platformy nebo správy, může trvat až 14 dní, než se efekt projeví.

Je vhodné nakonfigurovat následující příchozí pravidlo NSG:

Zdrojové / cílové porty Směr Zdroj Cíl Účel
* / 80,443 Příchozí VirtualNetwork Rozsah podsítí služby App Service Environment Povolit provoz aplikací a interní provoz pro kontrolu stavu pomocí pingů

Minimální požadavek, aby služba App Service Environment fungovala, je:

Zdrojové / cílové porty Směr Zdroj Cíl Účel
* / 80 Příchozí AzureLoadBalancer Rozsah podsítí služby App Service Environment Povolit interní provoz služby ping.

Pokud použijete minimální požadované pravidlo, možná budete potřebovat jedno nebo více pravidel pro provoz aplikace. Pokud používáte některou z možností nasazení nebo ladění, musíte také povolit tento provoz do podsítě služby App Service Environment. Zdrojem těchto pravidel může být virtuální síť nebo jedna nebo více konkrétních IP adres klienta nebo rozsahy IP adres. Cílem je vždy rozsah podsítě služby App Service Environment.

Provoz interní diagnostiky pomocí příkazů ping na portu 80 je izolovaný mezi vyrovnávačem zatížení a interními servery. K koncovému bodu zdravotního pingu se nemůže dostat žádný vnější provoz.

Příchozí porty pro normální přístup k aplikacím jsou následující:

Používání Porty
HTTP/HTTPS 80, 443
FTP/FTPS 21, 990, 10001-10020
Vzdálené ladění sady Visual Studio 4022, 4024, 4026
Služba Nasazení webu 8172

Poznámka:

Pro přístup k FTP, i když chcete zakázat standardní FTP na portu 21, stále potřebujete povolit provoz z LoadBalancer do rozsahu podsítě služby App Service Environment na portu 21, protože se používá pro interní přenosy ping stavu pro službu FTP konkrétně.

Směrování sítě

Směrovací tabulky můžete nastavit bez omezení. Veškerý odchozí provoz aplikace ze služby App Service Environment můžete tunelovat na výstupní zařízení brány firewall, jako je Azure Firewall. V tomto scénáři je jediná věc, o kterou se musíte starat, závislosti vaší aplikace.

Mezi závislosti aplikací patří koncové body, které vaše aplikace potřebuje během běhu. Kromě rozhraní API a služeb, které aplikace volá, mohou závislosti také zahrnovat odvozené koncové body, jako je kontrola seznamu odvolaných certifikátů (CRL) a koncový bod pro identitu/ověření, například Microsoft Entra ID. Pokud ve službě App Service používáte průběžné nasazování, může být také potřeba povolit koncové body v závislosti na typu a jazyce. Konkrétně pro průběžné nasazování Linuxu musíte povolit oryx-cdn.microsoft.io:443.

Poznámka:

Rozhraní API inboundNetworkDependenciesEndpoints a outboundNetworkDependenciesEndpoints nejsou v App Service Environment v3 podporována. Volání těchto rozhraní API u prostředku Microsoft.Web/hostingEnvironments typu ASEV3 vrátí chybu Bad Request "Operation not supported for resource type Microsoft.Web/hostingEnvironments with kind ASEV3". App Service Environment v3 ve srovnání s dřívějšími verzemi výrazně zjednodušila závislosti sítí, takže tato rozhraní API zjišťování koncových bodů už nejsou nutná. Místo toho použijte informace o příchozích a odchozích portech a adresách zdokumentovaných v tomto článku.

Zařízení firewallu webových aplikací, jako je Azure Application Gateway, můžete umístit před příchozí provoz. To vám umožní zveřejnit konkrétní aplikace v této službě App Service Environment.

Vaše aplikace používá jednu z výchozích odchozích adres pro odchozí provoz do veřejných koncových bodů. Pokud chcete přizpůsobit odchozí adresu aplikací ve službě App Service Environment, můžete do své podsítě přidat bránu NAT.

Poznámka:

Odchozí připojení SMTP (port 25) je podporované pro App Service Environment v3. Možnosti podpory se určují nastavením předplatného, ve kterém je virtuální síť nasazená. Pro virtuální sítě nebo podsítě vytvořené před 1. V srpnu 2022 je potřeba zahájit dočasnou změnu konfigurace virtuální sítě nebo podsítě, aby se nastavení synchronizovalo z předplatného. Příkladem by mohlo být přidání dočasné podsítě, dočasné přidružení nebo oddružení skupiny zabezpečení sítě (NSG) nebo dočasná konfigurace koncového bodu služby. Další informace a řešení potíží najdete v tématu Řešení potíží s odchozím připojením SMTP v Azure.

Segmentace odchozí sítě

Segmentace odchozí sítě umožňuje připojit aplikace k alternativním podsítím a řídit směrování odchozího provozu. Ve výchozím nastavení veškerý odchozí provoz ze služby App Service Environment pochází z podsítě hostující službu App Service Environment.

Povolení segmentace odchozí sítě

Při vytváření služby App Service Environment musíte povolit segmentaci odchozí sítě. Tuto funkci nemůžete povolit ve stávajících prostředích App Service Environment. Podpora portálu pro povolení tohoto nastavení clusteru nebo připojení k alternativním podsítím není dostupná.

Pokud chcete tuto funkci povolit, nakonfigurujte MultipleSubnetJoinEnabled nastavení clusteru při vytváření služby App Service Environment pomocí šablony Azure Resource Manageru nebo Bicep:

"clusterSettings": [
    {
        "name": "MultipleSubnetJoinEnabled",
        "value": "true"
    }
]

Pokyny ke konfiguraci nastavení clusteru najdete v tématu Vlastní nastavení konfigurace pro službu App Service Environment.

Musíte také nastavit vlastnost allowNewDirectNetworkIntegrations na hodnotu true v konfiguraci sítě služby App Service Environment. Tato vlastnost je požadovaná část těla konfigurace sítě. Pokud aktualizujete konfiguraci sítě bez zahrnutí této vlastnosti, může být zakázaná, protože výchozí hodnota je false.

Tuto vlastnost můžete nastavit pomocí rozhraní příkazového řádku nebo přímo v šabloně ARM.

Pro tuto vlastnost neexistuje žádný vyhrazený parametr rozhraní příkazového řádku, takže ho povolte pomocí následujícího az rest příkazu:

az rest --method put \
  --uri "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/configurations/networking?api-version=2024-04-01" \
  --body '{
    "properties": {
      "allowNewDirectNetworkIntegrations": true
    }
  }'

Nahraďte {subscriptionId}, {resourceGroupName} a {aseName} svými hodnotami.

Důležité

Při aktualizaci konfigurace sítě zahrňte všechny vlastnosti, které chcete zachovat. Vlastnost allowNewDirectNetworkIntegrations je neprázdná booleovská hodnota, která má výchozí nastavení false, takže její vyloučení z aktualizace konfigurace sítě tuto funkci zakáže.

Připojení aplikace k alternativní podsíti

Alternativní podsíť musí být prázdná a delegovaná na Microsoft.Web/serverFarms. Ujistěte se, že je pro vaši aplikaci povoleno směrování provozu, aby veškerý provoz směřoval přes alternativní podsíť.

Pokud chcete připojit aplikaci k alternativní podsíti, použijte následující příkaz Azure CLI:

az webapp vnet-integration add --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME> --vnet <VNET-NAME> --subnet <ALTERNATE-SUBNET-NAME>

Pokud je vaše alternativní podsíť v jiné skupině prostředků než vaše aplikace, spusťte příkaz az webapp vnet-integration add -h , abyste se dozvěděli, jak zadat ID prostředku.

Pokud chcete změnit alternativní podsíť aplikace, nejprve odeberte existující integraci a pak přidejte novou.

Pokud chcete odebrat připojení k alternativní podsíti pro aplikaci, odeberte integraci virtuální sítě pomocí Azure CLI nebo ARM/Bicep:

az webapp vnet-integration remove --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME>

Důležité

Nepřidávejte podsíť služby App Service Environment jako alternativní podsíť. Tato konfigurace způsobí konflikt a zabrání správné fungování vaší aplikace.

Omezení

  • Aplikace, App Service Environment a virtuální síť musí být ve stejném předplatném.
  • Každá aplikace z daného plánu se může integrovat pouze s jednou alternativní podsítí.
  • Plán může mít až čtyři různá připojení podsítě a aplikace ve stejném plánu můžou používat libovolná připojení.
  • Tato funkce není kompatibilní s funkcí připojení k podsíti s více plány, která je k dispozici v multitenantní nabídce služby App Service.

Privátní koncový bod

Pokud chcete povolit privátní koncové body pro aplikace hostované ve službě App Service Environment, musíte tuto funkci nejprve povolit na úrovni služby App Service Environment.

Můžete ho aktivovat prostřednictvím webu Azure Portal. V podokně konfigurace služby App Service Environment zapněte nastavení Allow new private endpoints. Případně ho může povolit následující rozhraní příkazového řádku:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Další informace o privátním koncovém bodu a webové aplikaci najdete v tématu Privátní koncový bod webové aplikace Azure.

DNS

Následující části popisují aspekty a konfiguraci DNS, které se týkají příchozích a odchozích přenosů z vaší služby App Service Environment. Příklady používají příponu appserviceenvironment.net domény z veřejného cloudu Azure. Pokud používáte jiné cloudy, jako je Azure Government, musíte použít jejich odpovídající příponu domény. U domén služby App Service Environment se název webu zkrátí na 59 znaků kvůli limitům DNS. U domén služby App Service Environment s sloty se název webu zkrátí na 40 znaků a název slotu se zkrátí na 19 znaků kvůli omezením DNS.

Konfigurace DNS pro službu App Service Environment

Pokud je vaše služba App Service Environment konfigurována s externí virtuální IP adresou (VIP), vaše aplikace jsou automaticky zahrnuty do veřejného DNS. Pokud je vaše App Service Environment vytvořená s interní VIP, máte při jeho vytváření dvě možnosti. Pokud vyberete, že jsou privátní zóny Azure DNS nakonfigurované automaticky, nakonfiguruje se ve vaší virtuální síti DNS. Pokud se rozhodnete dns nakonfigurovat ručně, musíte buď použít vlastní server DNS, nebo nakonfigurovat privátní zóny Azure DNS. Pokud chcete najít příchozí adresu, přejděte na portál Služby App Service Environment a vyberte IP adresy.

Pokud chcete použít vlastní server DNS, přidejte následující záznamy:

  1. Vytvořte zónu pro <App Service Environment-name>.appserviceenvironment.net.
  2. V této zóně vytvořte záznam A, který odkazuje * na příchozí IP adresu používanou vaší službou App Service Environment.
  3. V této zóně vytvořte záznam A, který odkazuje na příchozí IP adresu používanou vaší službou App Service Environment.
  4. Vytvořte zónu s <App Service Environment-name>.appserviceenvironment.net názvem scm.
  5. V zóně vytvořte záznam scm A, který odkazuje * na IP adresu používanou privátním koncovým bodem vaší služby App Service Environment.

Konfigurace DNS v privátních zónách Azure DNS:

  1. Vytvořte privátní zónu Azure DNS s názvem <App Service Environment-name>.appserviceenvironment.net.
  2. V této zóně vytvořte záznam A, který odkazuje * na příchozí IP adresu.
  3. V této zóně vytvořte záznam A, který odkazuje na příchozí IP adresu @.
  4. V této zóně vytvořte záznam A, který odkazuje na příchozí IP adresu *.scm.

Kromě výchozí domény poskytnuté při vytváření aplikace můžete do aplikace přidat také vlastní doménu. Vlastní název domény můžete nastavit bez ověření vašich aplikací. Pokud používáte vlastní domény, musíte zajistit, aby měly nakonfigurované záznamy DNS. Podle předchozích pokynů můžete nakonfigurovat zóny a záznamy DNS pro vlastní název domény (nahradit výchozí název domény vlastním názvem domény). Vlastní název domény funguje pro požadavky aplikací, ale nefunguje pro scm web. Web scm je k dispozici pouze na <webu appname.scm>.<asename.appserviceenvironment.net>.

Konfigurace DNS pro přístup k FTP

Pro přístup k FTP na interní vyrovnávač zatížení (ILB) v App Service Environment v3 musíte zajistit, aby byl DNS nakonfigurovaný. Nakonfigurujte privátní zónu Azure DNS nebo ekvivalentní vlastní DNS s následujícím nastavením:

  1. Vytvořte privátní zónu Azure DNS s názvem ftp.appserviceenvironment.net.
  2. V této zóně vytvořte záznam A, který odkazuje <App Service Environment-name> na příchozí IP adresu.

Kromě nastavení DNS ho také musíte povolit ve službě App Service Environment – Nakonfigurujte nastavení sítě a na úrovni aplikace.

Konfigurace DNS ze služby App Service Environment

Aplikace ve službě App Service Environment používají DNS, se kterými je vaše virtuální síť nakonfigurovaná. Pokud chcete, aby některé aplikace používaly jiný server DNS, můžete ho ručně nastavit pro každou aplikaci s nastavením WEBSITE_DNS_SERVER aplikace a WEBSITE_DNS_ALT_SERVER. WEBSITE_DNS_ALT_SERVER nakonfiguruje sekundární server DNS. Sekundární server DNS se používá jenom v případě, že z primárního serveru DNS neexistuje žádná odpověď.

Další materiály