Možnosti sítí Azure Functions
Tento článek popisuje síťové funkce dostupné napříč možnostmi hostování pro Azure Functions. Následující možnosti sítí je možné zařadit do kategorií jako příchozí a odchozí síťové funkce. Příchozí funkce umožňují omezit přístup k aplikaci, zatímco odchozí funkce umožňují připojit aplikaci k prostředkům zabezpečeným virtuální sítí a řídit směrování odchozího provozu.
Modely hostování mají k dispozici různé úrovně izolace sítě. Volba správné možnosti vám pomůže splnit požadavky na izolaci sítě.
Funkce | Plán Flex Consumption | Plán Consumption | Plán Premium | Vyhrazený plán/ASE | Container Apps1 |
---|---|---|---|---|---|
Omezení příchozích IP adres | ✔ | ✔ | ✔ | ✔ | ✔ |
Příchozí privátní koncové body | ✔ | ✔ | ✔ | ||
Integrace virtuální sítě | ✔ | ✔2 | ✔3 | ✔ | |
Omezení odchozích IP adres | ✔ | ✔ | ✔ | ✔ |
- Další informace najdete v tématu Sítě v prostředí Azure Container Apps.
- Při práci s triggery virtuální sítě existují zvláštní aspekty.
- Pouze plán Dedicated/ASE podporuje integraci virtuální sítě vyžadované bránou.
Zdroje informací pro rychlý start
Následující zdroje informací vám pomůžou rychle začít se síťovými scénáři Azure Functions. Na tyto zdroje informací se odkazuje v celém článku.
- Šablony ARM, soubory Bicep a šablony Terraformu:
- Pouze šablony ARM:
- Aplikace funkcí s privátními koncovými body Azure Storage
- Aplikace funkcí Azure s integrací virtuální sítě
- Cvičení:
Příchozí síťové funkce
Následující funkce umožňují filtrovat příchozí požadavky na vaši aplikaci funkcí.
Omezení příchozího přístupu
Omezení přístupu můžete použít k definování seznamu IP adres seřazených podle priority, které mají povolený nebo zakázaný přístup k vaší aplikaci. Seznam může obsahovat adresy IPv4 a IPv6 nebo konkrétní podsítě virtuální sítě pomocí koncových bodů služby. Pokud je k dispozici jedna nebo více položek, je na konci seznamu implicitně uvedená položka Zamítnout vše. Omezení IP adres fungují se všemi možnostmi hostování funkcí.
Omezení přístupu jsou dostupná v plánu Flex Consumption, Elastic Premium, Consumption a App Service.
Poznámka:
Při použití omezení sítě můžete nasadit jenom z vaší virtuální sítě nebo když jste zadali IP adresu počítače, který používáte pro přístup k webu Azure Portal v seznamu bezpečných příjemců. Funkci ale můžete spravovat pomocí portálu.
Další informace najdete v tématu Aplikace Azure Omezení statického přístupu služby.
Privátní koncové body
Služba Azure Private Endpoint je síťové rozhraní, které umožňuje soukromé a bezpečné připojení ke službě, která používá technologii Azure Private Link. Privátní koncový bod používá privátní IP adresu vaší virtuální sítě a tím vlastně přináší službu do vaší virtuální sítě.
Privátní koncový bod můžete použít pro své funkce hostované v plánech Flex Consumption, Elastic Premium a Dedicated (App Service ).
Pokud chcete volat privátní koncové body, musíte se ujistit, že se vyhledávání DNS přeloží na privátní koncový bod. Toto chování můžete vynutit jedním z následujících způsobů:
- Integrace s privátními zónami Azure DNS Pokud vaše virtuální síť nemá vlastní server DNS, provede se to automaticky.
- Spravujte privátní koncový bod na serveru DNS používaném vaší aplikací. Pokud chcete spravovat privátní koncový bod, musíte znát adresu koncového bodu a pomocí záznamu A odkazovat na koncový bod, ke kterém se pokoušíte připojit.
- Nakonfigurujte vlastní server DNS tak, aby předával privátní zóny Azure DNS.
Další informace najdete v tématu Použití privátních koncových bodů pro Web Apps.
Pokud chcete volat jiné služby, které mají připojení privátního koncového bodu, jako je úložiště nebo sběrnice, nezapomeňte nakonfigurovat aplikaci tak, aby odchozí volání do privátních koncových bodů. Další podrobnosti o používání privátních koncových bodů s účtem úložiště pro vaši aplikaci funkcí najdete v tématu Omezení účtu úložiště na virtuální síť.
Koncové body služby
Pomocí koncových bodů služby můžete omezit mnoho služeb Azure na vybrané podsítě virtuální sítě, abyste zajistili vyšší úroveň zabezpečení. Integrace místní virtuální sítě umožňuje vaší aplikaci funkcí oslovit služby Azure, které jsou zabezpečené pomocí koncových bodů služby. Tato konfigurace se podporuje ve všech plánech , které podporují integraci virtuální sítě. Pokud chcete získat přístup ke zabezpečenému koncovému bodu služby, postupujte takto:
- Nakonfigurujte integraci místní virtuální sítě s vaší aplikací funkcí, aby se připojila ke konkrétní podsíti.
- Přejděte do cílové služby a nakonfigurujte koncové body služby pro podsíť integrace.
Další informace najdete v tématu Koncové body služeb virtuální sítě.
Použití koncových bodů služby
Pokud chcete omezit přístup ke konkrétní podsíti, vytvořte pravidlo omezení s typem virtuální sítě . Pak můžete vybrat předplatné, virtuální síť a podsíť, ke kterým chcete povolit nebo odepřít přístup.
Pokud pro vybranou podsíť ještě nejsou povolené Microsoft.Web
koncové body služby, jsou automaticky povolené, pokud nezaškrtnete políčko Ignorovat chybějící koncové body služby Microsoft.Web. Scénář, ve kterém můžete chtít povolit koncové body služby v aplikaci, ale ne podsíť, závisí hlavně na tom, jestli máte oprávnění k jejich povolení v podsíti.
Pokud potřebujete, aby koncový bod služby v podsíti povolil někdo jiný, zaškrtněte políčko Ignorovat chybějící koncové body služby Microsoft.Web. Vaše aplikace je nakonfigurovaná pro koncové body služby, které později povolíte v podsíti.
Koncové body služby nemůžete použít k omezení přístupu k aplikacím, které běží ve službě App Service Environment. Když je vaše aplikace ve službě App Service Environment, můžete k ní přistupovat pomocí pravidel přístupu IP adres.
Informace o nastavení koncových bodů služby najdete v tématu Vytvoření přístupu k privátní lokalitě Azure Functions.
Odchozí síťové funkce
Pomocí funkcí v této části můžete spravovat odchozí připojení vytvořená vaší aplikací.
Integrace virtuální sítě
Tato část podrobně popisuje funkce, které Functions podporuje k řízení odchozích dat z vaší aplikace.
Integrace virtuální sítě poskytuje vaší aplikaci funkcí přístup k prostředkům ve vaší virtuální síti. Po integraci aplikace směruje odchozí provoz přes virtuální síť. To vaší aplikaci umožňuje přístup k privátním koncovým bodům nebo prostředkům s pravidly, která povolují provoz jenom z vybraných podsítí. Pokud je cílem IP adresa mimo virtuální síť, zdrojová IP adresa se bude dál odesílat z jedné z adres uvedených ve vlastnostech vaší aplikace, pokud nenakonfigurujete službu NAT Gateway.
Azure Functions podporuje dva druhy integrace virtuální sítě:
- Místní integrace virtuální sítě pro aplikace běžící na plánech flex consumption, Elastic Premium, Dedicated (App Service) a Container Apps hosting (doporučeno)
- Integrace virtuální sítě vyžadovaná bránou pro aplikace spuštěné v plánu hostování Dedicated (App Service)
Informace o nastavení integrace virtuální sítě najdete v tématu Povolení integrace virtuální sítě.
Integrace místní virtuální sítě
Použití integrace místní virtuální sítě umožňuje vaší aplikaci přístup:
- Prostředky ve stejné virtuální síti jako vaše aplikace
- Prostředky ve virtuálních sítích propojené s virtuální sítí, se kterou je vaše aplikace integrovaná.
- Zabezpečené služby koncového bodu služby.
- Prostředky napříč připojeními Azure ExpressRoute
- Prostředky napříč partnerskými připojeními, mezi které patří připojení Azure ExpressRoute.
- Privátní koncové body
Při použití integrace místní virtuální sítě můžete použít následující síťové funkce Azure:
- Skupiny zabezpečení sítě (NSG): Odchozí provoz můžete blokovat pomocí skupiny zabezpečení sítě, která je umístěná v podsíti integrace. Příchozí pravidla se nevztahují, protože integraci virtuální sítě nemůžete použít k poskytování příchozího přístupu k vaší aplikaci.
- Směrovací tabulky (trasy definované uživatelem):: Směrovací tabulku můžete umístit do podsítě integrace a odesílat odchozí provoz tam, kde chcete.
Poznámka:
Když směrujete veškerý odchozí provoz do vaší virtuální sítě, řídí se skupiny zabezpečení sítě a trasy definované uživatelem, které se použijí pro vaši podsíť integrace. Když je virtuální síť integrovaná, odchozí provoz vaší aplikace funkcí na veřejné IP adresy se dál odesílá z adres uvedených ve vlastnostech vaší aplikace, pokud nezadáte trasy, které směrují provoz jinde.
Integrace místní virtuální sítě nemůže používat port 25.
Důležité informace o plánu Flex Consumption :
- Podle těchto pokynů se ujistěte, že
Microsoft.App
je pro vaše předplatné povolený poskytovatel prostředků Azure. To je potřeba pro delegování podsítě. - Delegování podsítě vyžadované při spuštění v plánu Flex Consumption je
Microsoft.App/environments
. To se liší od plánů Elastic Premium a Dedicated (App Service), které mají jiný požadavek na delegování. - Pro jednu aplikaci funkcí můžete naplánovat maximálně 40 IP adres, a to i v případě, že se aplikace škáluje nad 40. Pokud máte například 15 aplikací funkcí Flex Consumption, které jsou integrované ve stejné podsíti, musíte naplánovat maximálně 15x40 = 600 IP adres. Tento limit se může změnit a nevynucuje se.
- Podsíť se už nedá používat pro jiné účely (například privátní koncové body nebo koncové body služby nebo delegovat na jiný plán hostování nebo službu). I když můžete sdílet stejnou podsíť s několika aplikacemi Flex Consumption, síťové prostředky se sdílejí mezi těmito aplikacemi funkcí, což může vést k tomu, že jedna aplikace ovlivní výkon ostatních v jedné podsíti.
Důležité informace o plánech Elastic Premium, Dedicated (App Service) a Container Apps :
- Tato funkce je dostupná pro Elastic Premium a App Service Premium V2 a Premium V3. Je také k dispozici ve standardu, ale pouze z novějších nasazení služby App Service. Pokud používáte starší nasazení, můžete tuto funkci použít jenom z plánu služby App Service úrovně Premium V2. Pokud chcete mít jistotu, že tuto funkci můžete použít v plánu Služby App Service úrovně Standard, vytvořte aplikaci v plánu služby App Service Premium V3. Tyto plány se podporují jenom v našich nejnovějších nasazeních. Pokud po tom budete chtít, můžete vertikálně snížit kapacitu.
- Tuto funkci nelze používat v izolovaných plánových aplikacích, které jsou ve službě App Service Environment.
- Aplikace i virtuální síť musí být ve stejné oblasti.
- Tato funkce vyžaduje nepoužitou podsíť, která je ve virtuální síti Azure Resource Manageru /28 nebo větší.
- Podsíť integrace může používat jenom jeden plán služby App Service.
- Pro každý plán služby App Service můžete mít až dvě integrace místních virtuálních sítí. Stejnou podsíť integrace může používat více aplikací ve stejném plánu služby App Service.
- Nemůžete odstranit virtuální síť s integrovanou aplikací. Před odstraněním virtuální sítě odeberte integraci.
- Předplatné aplikace nebo plánu nemůžete změnit, pokud existuje aplikace, která používá integraci regionální virtuální sítě.
Povolení integrace virtuální sítě
V aplikaci funkcí na webu Azure Portal vyberte Sítě a pak v části Integrace virtuální sítě vyberte Kliknutím sem nakonfigurujte.
Vyberte Přidat virtuální síť.
Rozevírací seznam obsahuje všechny virtuální sítě Azure Resource Manageru ve vašem předplatném ve stejné oblasti. Vyberte virtuální síť, se kterou chcete provést integraci.
Plány pro hostování Flex Consumption a Elastic Premium podporují pouze regionální integraci virtuálních sítí. Pokud je virtuální síť ve stejné oblasti, vytvořte novou podsíť nebo vyberte prázdnou existující podsíť.
Pokud chcete vybrat virtuální síť v jiné oblasti, musíte mít zřízenou bránu virtuální sítě s povoleným bodem na lokalitu. Integrace virtuální sítě mezi oblastmi je podporována pouze pro vyhrazené plány, ale globální partnerské vztahy pracují s integrací regionálních virtuálních sítí.
Během integrace se vaše aplikace restartuje. Po dokončení integrace se zobrazí podrobnosti o virtuální síti, se kterou jste integrovaní. Ve výchozím nastavení je povolená možnost Route All a veškerý provoz se směruje do vaší virtuální sítě.
Pokud dáváte přednost směrování pouze privátního provozu (RFC1918 provozu), postupujte podle kroků v tomto článku služby App Service.
Podsítě
Integrace virtuální sítě závisí na vyhrazené podsíti. Při zřizování podsítě ztratí podsíť Azure od začátku pět IP adres. Pro plány Elastic Premium a App Service se pro každou instanci plánu používá jedna adresa z podsítě integrace. Když škálujete aplikaci na čtyři instance, použijí se čtyři adresy. U flex Consumption se to netýká a instance sdílejí IP adresy.
V plánech Elastic Premium a Dedicated (App Service) se požadovaný adresní prostor po krátkou dobu zdvojnásobí při vertikálním navýšení nebo snížení kapacity instance. To má vliv na skutečnou dostupnou podporovanou instanci pro danou velikost podsítě. Následující tabulka ukazuje jak maximální dostupné adresy na blok CIDR, tak vliv na horizontální škálování:
Velikost bloku CIDR | Maximální počet dostupných adres | Maximální horizontální škálování (instance)* |
---|---|---|
/28 | 11 | 5 |
/27 | 27 | 13 |
/26 | 59 | 29 |
*Předpokládá se, že v určitém okamžiku potřebujete vertikálně navýšit nebo snížit kapacitu velikosti nebo skladové položky.
Vzhledem k tomu, že po přiřazení nejde změnit velikost podsítě, použijte podsíť, která je dostatečně velká, aby vyhovovala libovolnému měřítku, ke kterému může vaše aplikace dosáhnout. Abyste se vyhnuli problémům s kapacitou podsítě pro plány Elastic Premium functions, měli byste použít /24 s 256 adresami pro Windows a /26 s 64 adresami pro Linux. Při vytváření podsítí na webu Azure Portal v rámci integrace s virtuální sítí se pro Windows a Linux vyžaduje minimální velikost /24 a /26.
Plán Flex Consumption umožňuje integraci více aplikací v plánu Flex Consumption se stejnou podsítí. Nejedná se o plány hostování Elastic Premium a Dedicated (App Service). Tyto plány umožňují propojení pouze dvou virtuálních sítí s každým plánem služby App Service. Ke stejné podsíti se může připojit více aplikací z jednoho plánu služby App Service, ale aplikace z jiného plánu nemůžou stejnou podsíť používat.
Tato funkce je plně podporovaná pro aplikace pro Windows i Linux, včetně vlastních kontejnerů. Všechna chování fungují stejně mezi aplikacemi pro Windows a aplikacemi pro Linux.
Skupiny zabezpečení sítě
Skupiny zabezpečení sítě můžete použít k řízení provozu mezi prostředky ve vaší virtuální síti. Můžete například vytvořit pravidlo zabezpečení, které blokuje odchozí provoz vaší aplikace z přístupu k prostředku ve virtuální síti nebo z opuštění sítě. Tato pravidla zabezpečení platí pro aplikace, které nakonfigurovaly integraci virtuální sítě. Pokud chcete blokovat provoz na veřejné adresy, musíte mít povolenou integraci virtuální sítě a trasu Vše. Příchozí pravidla ve skupině zabezpečení sítě se na vaši aplikaci nevztahují, protože integrace virtuální sítě ovlivňuje jenom odchozí provoz z vaší aplikace.
Pokud chcete řídit příchozí provoz do vaší aplikace, použijte funkci Omezení přístupu. Skupina zabezpečení sítě použitá pro vaši podsíť integrace je platná bez ohledu na všechny trasy použité pro vaši podsíť integrace. Pokud je vaše aplikace funkcí integrovaná s povolenou funkcí Route All a nemáte žádné trasy, které mají vliv na provoz veřejných adres v podsíti integrace, veškerý odchozí provoz se stále vztahuje na skupiny zabezpečení sítě přiřazené k vaší podsíti integrace. Pokud není povolená funkce Route All, skupiny zabezpečení sítě se použijí jenom na RFC1918 provoz.
Trasy
Směrovací tabulky můžete použít ke směrování odchozího provozu z vaší aplikace do požadovaného místa. Směrovací tabulky mají ve výchozím nastavení vliv jenom na váš RFC1918 cílový provoz. Pokud je povolená možnost Route All , budou ovlivněna všechna odchozí volání. Pokud je možnost Route All zakázaná, směrovací tabulky ovlivní jenom privátní provoz (RFC1918). Trasy nastavené v podsíti integrace neovlivní odpovědi na příchozí požadavky aplikací. Mezi běžné cíle patří zařízení brány firewall nebo brány.
Pokud chcete směrovat veškerý odchozí provoz místně, můžete použít směrovací tabulku k odesílání veškerého odchozího provozu do brány ExpressRoute. Pokud směrujete provoz do brány, nezapomeňte nastavit trasy v externí síti, aby se všechny odpovědi odeslaly zpět.
Trasy protokolu BGP (Border Gateway Protocol) také ovlivňují provoz vaší aplikace. Pokud máte trasy protokolu BGP z brány ExpressRoute, ovlivní to odchozí provoz vaší aplikace. Ve výchozím nastavení mají trasy protokolu BGP vliv jenom na váš RFC1918 cílový provoz. Pokud je vaše aplikace funkcí integrovaná s povolenou funkcí Route All, můžou být všechny odchozí přenosy ovlivněné trasami protokolu BGP.
Omezení odchozích IP adres
Omezení odchozích IP adres jsou dostupná v plánu Flex Consumption, plánu Elastic Premium, plánu služby App Service nebo ve službě App Service Environment. Pro virtuální síť, ve které je nasazená služba App Service Environment, můžete nakonfigurovat omezení odchozích přenosů.
Když integrujete aplikaci funkcí do plánu Elastic Premium nebo plánu služby App Service s virtuální sítí, může aplikace ve výchozím nastavení provádět odchozí volání na internet. Integrací aplikace funkcí s virtuální sítí s povolenou funkcí Route All vynutíte, aby se veškerý odchozí provoz odesílal do vaší virtuální sítě, kde se dají pravidla skupin zabezpečení sítě použít k omezení provozu. Pro Flex Consumption je veškerý provoz již směrován přes virtuální síť a route All není potřeba.
Informace o tom, jak řídit odchozí IP adresu pomocí virtuální sítě, najdete v kurzu : Řízení odchozíCH IP adres služby Azure Functions pomocí služby Azure Virtual Network NAT Gateway.
Privátní zóny Azure DNS
Jakmile se vaše aplikace integruje s vaší virtuální sítí, použije stejný server DNS, se kterým je vaše virtuální síť nakonfigurovaná, a bude pracovat s privátními zónami Azure DNS propojenými s virtuální sítí.
Automation
Následující rozhraní API umožňují programově spravovat integrace regionálních virtuálních sítí:
- Azure CLI: Pomocí
az functionapp vnet-integration
příkazů můžete přidat, vypsat nebo odebrat integraci místní virtuální sítě. - Šablony ARM: Integraci regionální virtuální sítě je možné povolit pomocí šablony Azure Resource Manageru. Úplný příklad najdete v této šabloně rychlého startu pro Functions.
Hybridní připojení
Hybridní připojení je funkce Služby Azure Relay, kterou můžete použít pro přístup k prostředkům aplikace v jiných sítích. Poskytuje přístup z vaší aplikace ke koncovému bodu aplikace. Nemůžete ho použít pro přístup k aplikaci. Hybridní připojení jsou k dispozici pro funkce, které běží ve Windows ve všech plánech Consumption.
Jak se používá ve službě Azure Functions, každé hybridní připojení koreluje s jedním hostitelem TCP a kombinací portů. To znamená, že koncový bod hybridního připojení může být v libovolném operačním systému a jakékoli aplikaci, pokud přistupujete k portu naslouchání protokolu TCP. Funkce Hybridní připojení neví ani nezajímá, co je aplikační protokol nebo k čemu přistupujete. Jenom poskytuje přístup k síti.
Další informace najdete v dokumentaci ke službě App Service pro hybridní připojení. Stejné kroky konfigurace podporují Azure Functions.
Důležité
Hybridní připojení se podporuje jenom v případě, že vaše aplikace funkcí běží ve Windows. Linuxové aplikace se nepodporují.
Připojení ke službám Azure prostřednictvím virtuální sítě
Integrace virtuální sítě umožňuje vaší aplikaci funkcí přistupovat k prostředkům ve virtuální síti. Tato část obsahuje přehled věcí, které byste měli zvážit při pokusu o připojení aplikace k určitým službám.
Omezení účtu úložiště na virtuální síť
Poznámka:
Pokud chcete rychle nasadit aplikaci funkcí s povolenými privátními koncovými body v účtu úložiště, projděte si následující šablonu: Aplikace funkcí s privátními koncovými body Azure Storage.
Když vytváříte aplikaci funkcí, musíte vytvořit nebo propojit účet Azure Storage pro obecné účely, který podporuje službu Blob, Queue a Table Storage. Tento účet úložiště můžete nahradit účtem, který je zabezpečený pomocí koncových bodů služby nebo privátních koncových bodů.
Účet úložiště s omezeným přístupem k síti můžete použít s aplikacemi funkcí v plánech Flex Consumption, Elastic Premium a Dedicated (App Service). Plán Consumption se nepodporuje. V případě plánů Elastic Premium a Dedicated musíte zajistit, aby bylo nakonfigurované směrování sdílených složek privátního obsahu. Informace o tom, jak nakonfigurovat aplikaci funkcí s účtem úložiště zabezpečeným virtuální sítí, najdete v tématu Omezení účtu úložiště na virtuální síť.
Použití odkazů na službu Key Vault
Odkazy na Azure Key Vault můžete použít k používání tajných kódů ze služby Azure Key Vault ve vaší aplikaci Azure Functions, aniž byste museli měnit kód. Azure Key Vault je služba, která poskytuje centralizovanou správu tajných kódů s plnou kontrolou zásad přístupu a historií auditu.
Pokud je pro aplikaci nakonfigurovaná integrace virtuální sítě, mohou být odkazy služby Key Vault použity k načtení tajných kódů z trezoru s omezeným přístupem k síti.
Triggery virtuální sítě (jiné než HTTP)
Vaše úloha může vyžadovat aktivaci aplikace ze zdroje událostí chráněného virtuální sítí. Pokud chcete, aby se vaše aplikace dynamicky škálovala na základě počtu událostí přijatých ze zdrojů triggerů mimo HTTP, existují dvě možnosti:
- Spusťte aplikaci funkcí ve funkci Flex Consumption.
- Spusťte aplikaci funkcí v plánu Elastic Premium a povolte podporu triggerů virtuální sítě.
Aplikace funkcí spuštěné v plánech Dedicated (App Service) se dynamicky škálovat na základě událostí. Horizontální navýšení kapacity je diktováno pravidly automatického škálování, která definujete.
Plán Elastic Premium s triggery virtuální sítě
Plán Elastic Premium umožňuje vytvářet funkce aktivované službami zabezpečenými virtuální sítí. Tyto triggery jiného typu než HTTP se označují jako triggery virtuální sítě.
Ve výchozím nastavení triggery virtuální sítě nezpůsobí škálování vaší aplikace funkcí nad rámec počtu předzbrojených instancí. Určitá rozšíření ale podporují triggery virtuální sítě, které způsobují dynamické škálování vaší aplikace funkcí. Toto dynamické monitorování škálování můžete ve své aplikaci funkcí povolit pro podporovaná rozšíření jedním z těchto způsobů:
Na webu Azure Portal přejděte do aplikace funkcí.
V části Nastavení vyberte Konfigurace a potom na kartě Nastavení modulu runtime funkce nastavte Monitorování škálování modulu runtime na Zapnuto.
Výběrem možnosti Uložit aktualizujte konfiguraci aplikace funkcí a restartujte aplikaci.
Tip
Povolení monitorování triggerů virtuální sítě může mít vliv na výkon vaší aplikace, i když tento dopad bude pravděpodobně velmi malý.
Podpora dynamického monitorování triggerů virtuální sítě není dostupná ve verzi 1.x modulu runtime služby Functions.
Rozšíření v této tabulce podporují dynamické monitorování škálování triggerů virtuální sítě. Pokud chcete dosáhnout nejlepšího výkonu škálování, měli byste upgradovat na verze, které podporují také cílové škálování.
Rozšíření (minimální verze) | Monitorování škálování modulu runtime | S cílovým škálováním |
---|---|---|
Microsoft.Azure.WebJobs.Extensions.CosmosDB | > 3.0.5 | > 4.1.0 |
Microsoft.Azure.WebJobs.Extensions.DurableTask | > 2.0.0 | Není k dispozici |
Microsoft.Azure.WebJobs.Extensions.EventHubs | > 4.1.0 | > 5.2.0 |
Microsoft.Azure.WebJobs.Extensions.ServiceBus | > 3.2.0 | > 5.9.0 |
Microsoft.Azure.WebJobs.Extensions.Storage | > 3.0.10 | > 5.1.0* |
* Pouze queue Storage.
Důležité
Když povolíte monitorování triggerů virtuální sítě, můžou dynamicky škálovat aplikace jenom triggery pro tato rozšíření. Triggery můžete dál používat z rozšíření, která nejsou v této tabulce, ale nezpůsobí škálování nad rámec předem zahřátého počtu instancí. Úplný seznam všech rozšíření triggerů a vazeb najdete v tématu Aktivační události a vazby.
Plán služby App Service a služba App Service Environment s triggery virtuální sítě
Když vaše aplikace funkcí běží v plánu služby App Service nebo ve službě App Service Environment, můžete napsat funkce aktivované prostředky zabezpečenými virtuální sítí. Aby se vaše funkce aktivovaly správně, musí být vaše aplikace připojená k virtuální síti s přístupem k prostředku definovanému v připojení triggeru.
Předpokládejme například, že chcete službu Azure Cosmos DB nakonfigurovat tak, aby přijímala provoz pouze z virtuální sítě. V takovém případě musíte aplikaci funkcí nasadit v plánu služby App Service, který poskytuje integraci virtuální sítě s touto virtuální sítí. Integrace umožňuje, aby se funkce aktivovala tímto prostředkem služby Azure Cosmos DB.
Aspekty testování
Při testování funkcí v aplikaci funkcí s privátními koncovými body musíte provést testování ze stejné virtuální sítě, například na virtuálním počítači v této síti. Pokud chcete na portálu z tohoto virtuálního počítače použít možnost Code + Test , musíte do aplikace funkcí přidat následující zdroje CORS:
https://functions-next.azure.com
https://functions-staging.azure.com
https://functions.azure.com
https://portal.azure.com
Pokud jste omezili přístup k aplikaci funkcí s privátními koncovými body nebo jakýmkoli jiným omezením přístupu, musíte také přidat značku AzureCloud
služby do seznamu povolených. Aktualizace seznamu povolených položek:
Přejděte do aplikace funkcí a vyberte Nastavení>sítě a pak vyberte Přístup k veřejné síti v konfiguraci>příchozího přístupu.
Ujistěte se, že je přístup k veřejné síti nastavený na Povoleno z vybraných virtuálních sítí a IP adres.
Přidejte pravidlo v části Přístup k webu a pravidla:
Vyberte
Service Tag
jako typ nastavení zdroje aAzureCloud
jako značku služby.Ujistěte se, že je akce Povolená, a nastavte požadovaný název a prioritu.
Řešení problému
Tato funkce je snadno nastavená, ale to neznamená, že vaše zkušenost bude bez problémů. Pokud narazíte na problémy s přístupem k požadovanému koncovému bodu, existuje několik nástrojů, které můžete použít k otestování připojení z konzoly aplikace. Můžete použít dvě konzoly. Jednou je konzola Kudu a druhá je konzola na webu Azure Portal. Ke konzole Kudu se dostanete z aplikace tak, že přejdete na Nástroje>Kudu. Ke konzole Kudo se dostanete také na adrese [název_webu].scm.azurewebsites.net. Po načtení webu přejděte na kartu Konzola ladění. Pokud se chcete z aplikace dostat do konzoly hostované na webu Azure Portal, přejděte do konzoly Nástroje>.
Nástroje
V nativních aplikacích pro Windows nástroje ping, nslookup a tracert nebudou fungovat prostřednictvím konzoly kvůli omezením zabezpečení (fungují ve vlastních kontejnerech Windows). K vyplnění void se přidají dva samostatné nástroje. K otestování funkčnosti DNS jsme přidali nástroj s názvem nameresolver.exe. Syntaxe je:
nameresolver.exe hostname [optional: DNS Server]
Pomocí nameresolveru můžete zkontrolovat názvy hostitelů, na které vaše aplikace závisí. Tímto způsobem můžete otestovat, jestli máte něco špatně nakonfigurované s DNS nebo nemáte přístup k vašemu serveru DNS. Server DNS, který vaše aplikace používá v konzole, se můžete podívat na proměnné prostředí WEBSITE_DNS_SERVER a WEBSITE_DNS_ALT_SERVER.
Poznámka:
Nástroj nameresolver.exe aktuálně nefunguje ve vlastních kontejnerech Windows.
Pomocí dalšího nástroje můžete otestovat připojení TCP k hostiteli a kombinaci portů. Tento nástroj se nazývá tcpping a syntaxe je:
tcpping.exe hostname [optional: port]
Nástroj tcpping vám řekne, jestli se můžete spojit s konkrétním hostitelem a portem. Může ukázat úspěch jenom v případě, že aplikace naslouchá v kombinaci hostitele a portu a existuje síťový přístup z vaší aplikace k zadanému hostiteli a portu.
Ladění přístupu k prostředkům hostovaným virtuální sítím
Řada věcí může vaší aplikaci zabránit v dosažení konkrétního hostitele a portu. Většinou je to jedna z těchto věcí:
- Brána firewall je v cestě. Pokud máte bránu firewall tak, že dojde k vypršení časového limitu protokolu TCP. Časový limit protokolu TCP je v tomto případě 21 sekund. K otestování připojení použijte nástroj tcpping. Vypršení časového limitu protokolu TCP může být způsobeno mnoha věcmi mimo brány firewall, ale začněte tam.
- DNS není přístupný. Časový limit DNS je 3 sekundy na server DNS. Pokud máte dva servery DNS, časový limit je 6 sekund. Pomocí nameresolver zjistěte, jestli DNS funguje. Nemůžete použít nslookup, protože to nepoužívá DNS, se kterou je vaše virtuální síť nakonfigurovaná. Pokud je nepřístupný, můžete mít bránu firewall nebo skupinu zabezpečení sítě blokující přístup k DNS nebo může být mimo provoz.
Pokud tyto položky neodpovídají na vaše problémy, hledejte napřed tyto věci:
Integrace místní virtuální sítě
- Je vaším cílem adresa, která není RFC1918 a nemáte povolenou trasu Vše ?
- Blokuje skupina zabezpečení sítě výchozí přenos dat z vaší podsítě integrace?
- Pokud používáte Azure ExpressRoute nebo VPN, je vaše místní brána nakonfigurovaná tak, aby směrovala provoz zpět do Azure? Pokud se můžete připojit ke koncovým bodům ve virtuální síti, ale ne místně, zkontrolujte trasy.
- Máte dostatečná oprávnění k nastavení delegování v podsíti integrace? Během konfigurace integrace místní virtuální sítě se vaše podsíť integrace deleguje na Microsoft.Web/serverFarms. Uživatelské rozhraní integrace virtuální sítě deleguje podsíť na Microsoft.Web/serverFarms automaticky. Pokud váš účet nemá dostatečná síťová oprávnění k nastavení delegování, budete potřebovat někoho, kdo může ve vaší podsíti integrace nastavit atributy, aby delegovali podsíť. Pokud chcete podsíť integrace delegovat ručně, přejděte do uživatelského rozhraní podsítě virtuální sítě Azure a nastavte delegování pro Microsoft.Web/serverFarms.
Integrace virtuální sítě vyžadovaná bránou
- Je rozsah adres typu point-to-site v rozsahech RFC 1918 (10.0.0.0-10.255.255.255 / 172.16.16.10.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
- Zobrazuje se brána jako na portálu? Pokud je vaše brána dole, vraťte ji zpět.
- Zobrazují se certifikáty jako synchronizované nebo máte podezření, že došlo ke změně konfigurace sítě? Pokud vaše certifikáty nejsou synchronizované nebo máte podezření, že došlo ke změně konfigurace vaší virtuální sítě, která nebyla synchronizována s vašimi poskytovateli asPs, vyberte Možnost Synchronizovat síť.
- Pokud procházíte přes síť VPN, je místní brána nakonfigurovaná tak, aby směrovala provoz do Azure? Pokud se můžete připojit ke koncovým bodům ve virtuální síti, ale ne místně, zkontrolujte trasy.
- Pokoušíte se použít koexistující bránu, která podporuje point-to-site i ExpressRoute? Integrace bran koexistence se nepodporuje s integrací virtuální sítě.
Ladění problémů se sítěmi je náročné, protože nevidíte, co blokuje přístup ke konkrétní kombinaci hostitel:port. Mezi příčiny patří:
- Na hostiteli máte bránu firewall, která brání přístupu k portu aplikace z rozsahu IP adres typu point-to-site. Přecházení podsítí často vyžaduje veřejný přístup.
- Váš cílový hostitel je dole.
- Vaše aplikace je dole.
- Měli jste nesprávnou IP adresu nebo název hostitele.
- Vaše aplikace naslouchá na jiném portu, než jste očekávali. ID procesu můžete spárovat s portem naslouchání pomocí příkazu netstat -aon na hostiteli koncového bodu.
- Skupiny zabezpečení sítě se konfigurují tak, aby zabránily přístupu k hostiteli vaší aplikace a portu z rozsahu IP adres typu point-to-site.
Nevíte, jakou adresu vaše aplikace skutečně používá. Může to být jakákoli adresa v podsíti integrace nebo rozsahu adres typu point-to-site, takže potřebujete povolit přístup z celého rozsahu adres.
Mezi další kroky ladění patří:
- Připojte se k virtuálnímu počítači ve virtuální síti a zkuste se připojit k hostiteli prostředků:port odtud. K otestování přístupu přes protokol TCP použijte příkaz Prostředí PowerShell Test-NetConnection. Syntaxe je:
Test-NetConnection hostname [optional: -Port]
- Vyvolání aplikace na virtuálním počítači a otestování přístupu k danému hostiteli a portu z konzoly z vaší aplikace pomocí příkazu tcpping.
Místní prostředky
Pokud se vaše aplikace nemůže spojit s místním prostředkem, zkontrolujte, jestli se k prostředku dostanete z vaší virtuální sítě. Ke kontrole přístupu tcp použijte příkaz PowerShellu Test-NetConnection. Pokud se váš virtuální počítač nemůže spojit s vaším místním prostředkem, možná není správně nakonfigurované připojení VPN nebo ExpressRoute.
Pokud se váš virtuální počítač hostovaný virtuální sítí může spojit s místním systémem, ale vaše aplikace nemůže, příčinou je pravděpodobně jeden z následujících důvodů:
- Vaše trasy nejsou nakonfigurované s vaší podsítí nebo rozsahy adres typu point-to-site ve vaší místní bráně.
- Vaše skupiny zabezpečení sítě blokují přístup k rozsahu IP adres typu point-to-site.
- Vaše místní brány firewall blokují provoz z rozsahu IP adres typu point-to-site.
- Pokoušíte se spojit s adresou, která není adresou RFC 1918, pomocí funkce integrace regionální virtuální sítě.
Odstranění plánu služby App Service nebo webové aplikace před odpojením integrace virtuální sítě
Pokud jste nejprve odstranili webovou aplikaci nebo plán služby App Service bez odpojení integrace virtuální sítě, nebudete moct provádět žádné operace aktualizace nebo odstranění virtuální sítě nebo podsítě, které byly použity pro integraci s odstraněným prostředkem. Delegování podsítě Microsoft.Web/serverFarms zůstane přiřazené k vaší podsíti a zabrání operacím aktualizace a odstranění.
Pokud chcete provést aktualizaci nebo odstranění podsítě nebo virtuální sítě znovu, musíte znovu vytvořit integraci virtuální sítě a pak ji odpojit:
- Znovu vytvořte plán služby App Service a webovou aplikaci (je povinné použít stejný název webové aplikace jako předtím).
- Ve webové aplikaci přejděte do okna Sítě a nakonfigurujte integraci virtuální sítě.
- Po nakonfigurování integrace virtuální sítě vyberte tlačítko Odpojit.
- Odstraňte plán služby App Service nebo webovou aplikaci.
- Aktualizace nebo odstranění podsítě nebo virtuální sítě
Pokud po provedení výše uvedených kroků stále dochází k problémům s integrací virtuální sítě, obraťte se na podpora Microsoftu.
Řešení potíží se sítí
K řešení problémů s připojením můžete použít také poradce při potížích se sítí. Pokud chcete otevřít poradce při potížích se sítí, přejděte do aplikace na webu Azure Portal. Vyberte Diagnostiku a vyřešíte problém a vyhledejte poradce při potížích se sítí.
Problémy s připojením – Kontroluje stav integrace virtuální sítě, včetně kontroly, jestli byla privátní IP adresa přiřazena ke všem instancím plánu a nastavení DNS. Pokud není nakonfigurovaný vlastní DNS, použije se výchozí Azure DNS. Poradce při potížích také kontroluje běžné závislosti aplikace funkcí, včetně připojení pro Azure Storage a dalších závislostí vazeb.
Problémy s konfigurací – Tento poradce při potížích zkontroluje, jestli je vaše podsíť platná pro integraci virtuální sítě.
Problém s odstraněním podsítě nebo virtuální sítě – Tento poradce při potížích zkontroluje, jestli má vaše podsíť nějaké zámky a jestli obsahuje nepoužívané odkazy přidružení služeb, které by mohly blokovat odstranění virtuální sítě nebo podsítě.
Další kroky
Další informace o sítích a Azure Functions:
- Postupujte podle kurzu začínáme s integrací virtuální sítě.
- Přečtěte si nejčastější dotazy k sítím Functions.
- Další informace o integraci virtuální sítě se službou App Service nebo Functions
- Další informace o virtuálních sítích v Azure
- Povolení dalších síťových funkcí a řízení pomocí služby App Service Environment
- Připojení k jednotlivým místním prostředkům bez změn brány firewall pomocí hybridních připojení