Kurz: Řízení Azure Functions odchozí IP adresy pomocí služby NAT Gateway virtuální sítě Azure
Překlad adres virtuální sítě (NAT) zjednodušuje odchozí internetové připojení virtuálních sítí. Při konfiguraci v podsíti všechna odchozí připojení používají 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í služby NAT Gateway směrovat odchozí provoz z funkce aktivované protokolem HTTP. Tato funkce umožňuje zkontrolovat vlastní odchozí IP adresu. Během tohoto kurzu provedete následující:
- 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 službu NAT Gateway
Topologie
Následující diagram znázorňuje architekturu řešení, které vytvoříte:
Funkce spuštěné v plánu Premium mají stejné možnosti hostování jako webové aplikace v Azure App Service, což 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é, abyste rozuměli přidělování IP adres a podsítí. Můžete začít tímto článkem, který se zabývá základy adresování a podsítě. Mnoho dalších článků a videí je k dispozici online.
Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatného účtu .
Pokud jste už dokončili kurz integrace funkcí s virtuální sítí Azure , můžete přeskočit na vytvoření funkce triggeru HTTP.
Vytvoření virtuální sítě
V nabídce webu Azure Portal vyberte Vytvořit prostředek. V Azure Marketplace vyberte Síť>virtuální síť.
V části Vytvořit virtuální síť zadejte nebo vyberte nastavení zadaná podle následující tabulky:
Nastavení Hodnota Předplatné Vyberte své předplatné. Skupina prostředků Vyberte Vytvořit novou, zadejte myResourceGroup a pak vyberte OK. Name Zadejte myResourceGroup-vnet. Umístění Vyberte USA – východ. Vyberte Další: IP adresy a jako adresní prostor IPv4 zadejte 10.10.0.0/16.
Vyberte Přidat podsíť a pak jako Název podsítě zadejte Tutorial-Net a jako Rozsah adres podsítě zadejte 10.10.1.0/24.
Vyberte Přidat a pak vyberte Zkontrolovat a vytvořit. Zbytek ponechte 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 zároveň 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
Nejlepší možnosti v tomto kurzu můžou být, když zvolíte .NET pro zásobník modulu runtime a zvolíte Windows pro operační systém. Vytvořte také aplikaci funkcí ve stejné oblasti jako vaše virtuální síť.
V nabídce webu Azure Portal nebo na domovské stránce vyberte Vytvořit prostředek.
Na stránce Nový vyberte Aplikace 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 vaší blízkosti nebo v blízkosti jiných služeb, ke kterým vaše funkce mají přístup. 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 vybrán na základě výběru zásobníku modulu runtime, ale v případě potřeby můžete nastavení změnit. Python je podporovaný jenom v Linuxu. Úpravy na portálu se podporují jenom ve Windows. Plánování Premium Plán hostování, 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 App Service. Výchozí skladová položka a velikost je EP1, kde EP znamená 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ě virtuálních procesorů. Další informace najdete v tématu Volba jednojádrových plánů Premium.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. Rozbalením tohoto nastavení 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. Vyberte Zkontrolovat a vytvořit a zkontrolujte výběr konfigurace aplikace.
Na stránce Zkontrolovat a vytvořit zkontrolujte nastavení a pak vyberte Vytvořit a zřiďte a nasaďte aplikaci funkcí.
Vyberte ikonu Oznámení v pravém horním rohu portálu a watch pro zprávu Nasazení bylo úspěšné.
Volbou Přejít k prostředku novou aplikaci Function App 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íť.
V části Stav síťových funkcí 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 adres 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 hostitelů. Tato podsíť je nadměrně zřízená, ale dá se snadno vypočítat.Výběrem OK přidejte podsíť. Zavřete stránky Integrace virtuální sítě a Stav síťových funkcí a vraťte se na stránku aplikace funkcí.
Aplikace funkcí teď má přístup k virtuální síti. Pokud je povolené připojení, vnetrouteallenabled
nastavení lokality je nastaveno na 1
hodnotu . Musíte mít buď toto nastavení webu, nebo nastavení starší verze WEBSITE_VNET_ROUTE_ALL
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 části Kód + test nahraďte kód skriptu jazyka C# vygenerovaný šablonou (.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, kterou vaše aplikace funkcí používá.
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. Nejdřív se ale na portálu podívejte, jaké odchozí IP adresy aplikace funkcí používá.
V aplikaci funkcí vyberte Vlastnosti a zkontrolujte pole Odchozí IP adresy .
Teď se vraťte k funkci triggeru HTTP, vyberte Kód + test a pak Test/spustit.
Výběrem možnosti Spustit spusťte funkci a pak přepněte na Výstup.
Ověřte, že IP adresa v textu odpovědi HTTP je jednou z hodnot 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 tuto odchozí IP adresu upravit.
Vytvoření veřejné IP adresy
Ve skupině prostředků vyberte Přidat, v Azure Marketplace vyhledejte Veřejnou IP adresu a vyberte Vytvořit. Použijte nastavení v tabulce pod obrázkem:
Nastavení Navrhovaná hodnota Verze PROTOKOLU IP IPv4 SKU Standard Ú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ů) Umístění USA – východ (nebo umístění, které jste přiřadili k jiným prostředkům) Zóna dostupnosti Bez zóny Vyberte Vytvořit a odešlete nasazení.
Po dokončení nasazení přejděte k nově vytvořenému prostředku veřejné IP adresy a zobrazte IP adresu v přehledu.
Vytvoření brány NAT
Teď vytvoříme bránu NAT Gateway. Když začnete s předchozím kurzem k virtuálním sítím, Function-Net
byl navrhovaný název podsítě a MyResourceGroup-vnet
byl navrhovaným názvem virtuální sítě v tomto kurzu.
Ve skupině prostředků vyberte Přidat, na Azure Marketplace vyhledejte 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 služby NAT Gateway myNatGateway Oblast USA – východ (nebo umístění, které jste přiřadili jiným prostředkům) Zóna dostupnosti Žádné Vyberte Další: Odchozí IP adresa. V poli Veřejné IP adresy vyberte dříve vytvořenou veřejnou IP adresu. Předpony veřejných IP adres ponechte nevybrané.
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á směrovat provoz 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), která se zobrazuje 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. Abyste se vyhnuli dalším nákladům, odstraňte prostředky, pokud víte, že je už nepotřebujete.
Na webu Azure Portal přejděte na stránku Skupina prostředků.
Na tuto stránku se dostanete ze stránky aplikace funkcí tak, že vyberete kartu Přehled a pak vyberete odkaz v části Skupina prostředků.
Na tuto stránku se dostanete z řídicího panelu tak, že vyberete Skupiny prostředků a pak vyberete 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.