Kurz: Řízení odchozí IP adresy služby Azure Functions pomocí NAT Gateway ve službě Azure Virtual Network
Překlad adres virtuální sítě (NAT) zjednodušuje odchozí připojení k internetu pouze pro virtuální sítě. Při konfiguraci v podsíti používá všechna odchozí připojení vaše zadané statické veřejné IP adresy. Překlad adres (NAT) může být užitečný pro aplikace, které potřebují využívat službu třetí strany, která jako bezpečnostní opatření používá seznam povolených IP adres. Další informace najdete v tématu Co je Azure NAT Gateway?
V tomto kurzu se dozvíte, jak pomocí bran NAT směrovat odchozí provoz z funkce aktivované protokolem HTTP. Tato funkce umožňuje zkontrolovat vlastní odchozí IP adresu. Během tohoto kurzu:
- Vytvoření virtuální sítě
- Vytvoření aplikace funkcí plánu Premium
- Vytvoření veřejné IP adresy
- Vytvoření služby NAT Gateway
- Konfigurace aplikace funkcí pro směrování odchozího provozu přes bránu NAT Gateway
Topologie
Následující diagram znázorňuje architekturu vytvořeného řešení:
Funkce spuštěné v plánu Premium mají stejné možnosti hostování jako webové aplikace ve službě Aplikace Azure Service, která zahrnuje funkci integrace virtuální sítě. Další informace o integraci virtuální sítě, včetně řešení potíží a pokročilé konfigurace, najdete v tématu Integrace aplikace s virtuální sítí Azure.
Požadavky
Pro účely tohoto kurzu je důležité pochopit přidělování IP adres a podsíť. Můžete začít s tímto článkem , který se zabývá základy adresování a podsítí. Mnoho dalších článků a videí je dostupných online.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Pokud jste už dokončili integraci funkcí s kurzem virtuální sítě Azure, můžete přeskočit k vytvoření funkce triggeru HTTP.
Vytvoření virtuální sítě
Z nabídky portálu Azure vyberte možnost Vytvořit prostředek. Na webu Azure Marketplace vyberte Sítě>Virtuální síť.
V části Vytvořit virtuální síť zadejte nebo vyberte nastavení uvedená v následující tabulce:
Nastavení Hodnota Předplatné Vyberte své předplatné. Skupina prostředků Vyberte Vytvořit nový, zadejte myResourceGroup a pak vyberte OK. Název Zadejte myResourceGroup-vnet. Umístění Vyberte USA – východ. Vyberte Další: IP adresy a pro adresní prostor IPv4 zadejte 10.10.0.0/16.
Vyberte Přidat podsíť a pak jako rozsah adres podsítě zadejte Název podsítě Tutorial-Net a 10.10.1.0/24.
Vyberte Přidat a pak vyberte Zkontrolovat a vytvořit. Ponechte zbytek jako výchozí a vyberte Vytvořit.
V části Vytvořit virtuální síť vyberte Vytvořit.
Dále vytvoříte aplikaci funkcí v plánu Premium. Tento plán poskytuje bezserverové škálování a současně podporuje integraci virtuální sítě.
Vytvoření aplikace funkcí v plánu Premium
V tomto kurzu se dozvíte, jak vytvořit aplikaci funkcí v plánu Premium. Stejné funkce jsou k dispozici také při použití plánu Dedicated (App Service).
Poznámka:
Pro co nejlepší prostředí v tomto kurzu zvolte .NET pro zásobník modulu runtime a zvolte Windows pro operační systém. Vytvořte také aplikaci funkcí ve stejné oblasti jako virtuální síť.
V nabídce webu Azure Portal nebo na domovské stránce vyberte Vytvořit prostředek.
Na stránce Nový vyberte Aplikaci výpočetních>funkcí.
Na stránce Základy použijte nastavení aplikace funkcí, jak je uvedeno v následující tabulce:
Nastavení Navrhovaná hodnota Popis Předplatné Vaše předplatné Předplatné, pod kterým je tato nová aplikace funkcí vytvořena. Skupina prostředků myResourceGroup Název nové skupiny prostředků, ve které chcete vytvořit aplikaci Function App. Název aplikace funkcí Globálně jedinečný název Název identifikující novou aplikaci funkcí. Platné znaky jsou a-z
(bez rozlišování malých a velkých písmen),0-9
a-
.Publikovat Kód Možnost publikování souborů kódu nebo kontejneru Docker Zásobník modulu runtime Upřednostňovaný jazyk Vyberte modul runtime, který podporuje váš oblíbený programovací jazyk funkcí. Úpravy na portálu se v současné době nepodporují pro vývoj v Pythonu. Oblast Upřednostňovaná oblast Vyberte oblast ve své blízkosti nebo v blízkosti jiných služeb, které vaše funkce využívají. Vyberte Další: Hostování. Na stránce Hostování zadejte následující nastavení:
Nastavení Navrhovaná hodnota Popis Účet úložiště Globálně jedinečný název Vytvořte účet úložiště používaný vaší aplikací funkcí. Názvy účtů úložiště musí mít délku 3 až 24 znaků a můžou obsahovat jenom číslice a malá písmena. Můžete také použít existující účet, který musí splňovat požadavky na účet úložiště. Operační systém Upřednostňovaný operační systém Operační systém je předem vybraný na základě výběru zásobníku modulu runtime, ale v případě potřeby můžete nastavení změnit. Python se podporuje jenom v Linuxu. Úpravy na portálu se podporují jenom ve Windows. Plán Premium Plán Hosting, který určuje způsob přidělování prostředků aplikaci Function App. Vyberte Premium. Ve výchozím nastavení se vytvoří nový plán služby App Service. Výchozí skladová položka a velikost je EP1, kde EP představuje elastické premium. Další informace najdete v seznamu skladových položek Premium.
Při spouštění funkcí JavaScriptu v plánu Premium byste měli zvolit instanci, která má méně vCPU. Další informace najdete v tématu Volba plánů Premium s jedním jádrem.Vyberte Další: Monitorování. Na stránce Monitorování zadejte následující nastavení:
Nastavení Navrhovaná hodnota Popis Application Insights Výchozí Vytvoří prostředek Application Insights se stejným názvem aplikace v nejbližší podporované oblasti. Když toto nastavení rozbalíte, můžete změnit název nového prostředku nebo zvolit jiné umístění v zeměpisné oblasti Azure pro ukládání dat. Výběrem možnosti Zkontrolovat a vytvořit zkontrolujte výběry konfigurace aplikace.
Na stránce Zkontrolovat a vytvořit zkontrolujte nastavení a pak vyberte Vytvořit, abyste zřídili a nasadíte aplikaci funkcí.
Vyberte ikonu Oznámení v pravém horním rohu portálu a podívejte se na zprávu o úspěšném nasazení.
Volbou Přejít k prostředku novou aplikaci funkcí zobrazíte. Můžete také vybrat Připnout na řídicí panel. Připnutí usnadňuje návrat k tomuto prostředku aplikace funkcí z řídicího panelu.
Připojení aplikace funkcí k virtuální síti
Aplikaci funkcí teď můžete připojit k virtuální síti.
V aplikaci funkcí v nabídce vlevo vyberte Sítě a pak v části Integrace virtuální sítě vyberte Kliknutím sem nakonfigurujte.
Na stránce Integrace virtuální sítě vyberte Přidat virtuální síť.
Ve stavu síťové funkce použijte nastavení v tabulce pod obrázkem:
Nastavení Navrhovaná hodnota Popis Virtual Network MyResourceGroup-vnet Tato virtuální síť je ta, kterou jste vytvořili dříve. Podsíť Vytvořit novou podsíť Vytvořte ve virtuální síti podsíť, kterou bude vaše aplikace funkcí používat. Integrace virtuální sítě musí být nakonfigurovaná tak, aby používala prázdnou podsíť. Název podsítě Function-Net Název nové podsítě. Blok adres virtuální sítě 10.10.0.0/16 Měli byste mít definovaný jenom jeden blok adresy. Blok adresy podsítě 10.10.2.0/24 Velikost podsítě omezuje celkový počet instancí, na které může aplikace funkcí plánu Premium škálovat. Tento příklad používá /24
podsíť s 254 dostupnými adresami hostitele. Tato podsíť je nadměrně zřízená, ale snadno se počítá.Vyberte OK a přidejte podsíť. Zavřete stránky stavu integrace virtuální sítě a síťové funkce a vraťte se na stránku vaší aplikace funkcí.
Aplikace funkcí teď má přístup k virtuální síti. Pokud je povolené připojení, vnetrouteallenabled
nastaví se nastavení lokality na 1
hodnotu . Musíte mít buď toto nastavení webu, nebo starší WEBSITE_VNET_ROUTE_ALL
nastavení aplikace nastavené na 1
hodnotu .
Dále do aplikace funkcí přidáte funkci aktivovanou protokolem HTTP.
Vytvoření funkce triggeru HTTP
V levé nabídce okna Funkce vyberte Funkce a pak v horní nabídce vyberte Přidat .
V okně Nová funkce vyberte trigger HTTP a přijměte výchozí název nové funkce nebo zadejte nový název.
V kódu + test nahraďte kód vygenerovaný šablonou jazyka C# (.csx) následujícím kódem:
#r "Newtonsoft.Json" using System.Net; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; public static async Task<IActionResult> Run(HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var client = new HttpClient(); var response = await client.GetAsync(@"https://ifconfig.me"); var responseMessage = await response.Content.ReadAsStringAsync(); return new OkObjectResult(responseMessage); }
Tento kód volá externí web, který vrací IP adresu volajícího, což je v tomto případě tato funkce. Tato metoda umožňuje snadno určit odchozí IP adresu používanou vaší aplikací funkcí.
Teď jste připraveni spustit funkci a zkontrolovat aktuální odchozí IP adresy.
Ověření aktuálních odchozích IP adres
Teď můžete funkci spustit. Nejprve se ale podívejte na portál a zjistěte, jaké odchozí IP adresy používá aplikace funkcí.
V aplikaci funkcí vyberte Vlastnosti a zkontrolujte pole Odchozí IP adresy .
Teď se vraťte do funkce triggeru HTTP, vyberte Kód + Test a pak Test/Spustit.
Vyberte Spustit , aby se funkce spustila, a pak přepněte na výstup a ověřte, že IP adresa v textu odpovědi HTTP je jednou z hodnot z odchozích IP adres, které jste si zobrazili dříve.
Teď můžete vytvořit veřejnou IP adresu a pomocí služby NAT Gateway upravit tuto odchozí IP adresu.
Vytvoření veřejné IP adresy
Ve skupině prostředků vyberte Přidat, vyhledejte veřejnou IP adresu na Azure Marketplace a vyberte Vytvořit. Použijte nastavení v tabulce pod obrázkem:
Nastavení Navrhovaná hodnota Verze IP adresy IPv4 Skladová jednotka (SKU) Standardní Úroveň Regionální Název Odchozí IP adresa Předplatné ujistěte se, že se zobrazí vaše předplatné. Skupina prostředků myResourceGroup (nebo název, který jste přiřadili ke skupině prostředků) Místo USA – východ (nebo umístění, které jste přiřadili k dalším prostředkům) Zóna dostupnosti Bez zóny Výběrem možnosti Vytvořit odešlete nasazení.
Po dokončení nasazení přejděte k nově vytvořenému prostředku veřejné IP adresy a v přehledu zobrazte IP adresu.
Vytvoření brány NAT
Teď vytvoříme bránu NAT Gateway. Když začnete s předchozím kurzem virtuální sítě, Function-Net
byl navrhovaný název podsítě a MyResourceGroup-vnet
v tomto kurzu se jednalo o navrhovaný název virtuální sítě.
Ve skupině prostředků vyberte Přidat, vyhledejte azure Marketplace pro službu NAT Gateway a vyberte Vytvořit. Pomocí nastavení v tabulce pod obrázkem naplňte kartu Základy :
Nastavení Navrhovaná hodnota Předplatné Vaše předplatné Skupina prostředků myResourceGroup (nebo název, který jste přiřadili ke skupině prostředků) Název brány NAT myNatGateway Oblast USA – východ (nebo umístění, které jste přiřadili k dalším prostředkům) Zóna dostupnosti Nic Vyberte Další: Odchozí IP adresa. V poli Veřejné IP adresy vyberte dříve vytvořenou veřejnou IP adresu. Ponechte nevybrané předpony veřejných IP adres.
Vyberte Další: Podsíť. V poli Virtuální síť a podsíti Function-Net vyberte prostředek myResourceGroup-vnet.
Vyberte Zkontrolovat a vytvořit a pak vytvořit a odešlete nasazení.
Po dokončení nasazení je služba NAT Gateway připravená ke směrování provozu z podsítě vaší aplikace funkcí do internetu.
Ověření nových odchozích IP adres
Opakujte předchozí kroky a spusťte funkci znovu. Teď byste měli vidět odchozí IP adresu, kterou jste nakonfigurovali v překladu adres (NAT) zobrazenou ve výstupu funkce.
Vyčištění prostředků
K dokončení tohoto kurzu jste vytvořili prostředky. Tyto prostředky se vám budou účtovat v závislosti na stavu vašeho účtu a cenách služeb. Pokud se chcete vyhnout dodatečným nákladům, odstraňte prostředky, když už je potřebujete.
Na webu Azure Portal přejděte na stránku Skupina prostředků.
Pokud se chcete na tuto stránku dostat ze stránky aplikace funkcí, vyberte kartu Přehled a pak vyberte odkaz v části Skupina prostředků.
Pokud se chcete na tuto stránku dostat z řídicího panelu, vyberte Skupiny prostředků a pak vyberte skupinu prostředků, kterou jste použili pro tento článek.
Na stránce Skupina prostředků zkontrolujte seznam zahrnutých prostředků a ověřte, že se jedná o ty, které chcete odstranit.
Vyberte Odstranit skupinu prostředků a postupujte podle pokynů.
Odstranění může trvat několik minut. Po jeho dokončení se na několik sekund zobrazí oznámení. K zobrazení tohoto oznámení můžete také vybrat ikonu zvonku v horní části stránky.