Samouczek: kontrolowanie wychodzącego adresu IP usługi Azure Functions za pomocą bramy translatora adresów sieciowych usługi Virtual Network
Translacja adresów sieci wirtualnej (NAT) upraszcza łączność internetową tylko dla ruchu wychodzącego dla sieci wirtualnych. Po skonfigurowaniu w podsieci wszystkie połączenia wychodzące używają określonych statycznych publicznych adresów IP. Translator adresów sieciowych może być przydatny w przypadku aplikacji, które muszą korzystać z usługi innej firmy, która używa listy dozwolonych adresów IP jako środka zabezpieczeń. Aby dowiedzieć się więcej, zobacz Co to jest usługa Azure NAT Gateway?.
W tym samouczku pokazano, jak używać bram translatora adresów sieciowych do kierowania ruchu wychodzącego z funkcji wyzwalanej przez protokół HTTP. Ta funkcja umożliwia sprawdzenie własnego wychodzącego adresu IP. W tym samouczku wykonasz następujące elementy:
- Tworzenie sieci wirtualnej
- Tworzenie aplikacji funkcji planu Premium
- Tworzenie publicznego adresu IP
- Tworzenie bramy translatora adresów sieciowych
- Konfigurowanie aplikacji funkcji w celu kierowania ruchu wychodzącego przez bramę translatora adresów sieciowych
Topologia
Na poniższym diagramie przedstawiono architekturę tworzonego rozwiązania:
Funkcje działające w planie Premium mają takie same możliwości hostingu jak aplikacje internetowe w usłudze aplikacja systemu Azure, która obejmuje funkcję integracji z siecią wirtualną. Aby dowiedzieć się więcej na temat integracji z siecią wirtualną, w tym rozwiązywania problemów i zaawansowanej konfiguracji, zobacz Integrowanie aplikacji z siecią wirtualną platformy Azure.
Wymagania wstępne
W tym samouczku ważne jest zrozumienie adresowania IP i podsieci. Możesz zacząć od tego artykułu, który obejmuje podstawy adresowania i podsieci. Wiele innych artykułów i filmów wideo jest dostępnych w trybie online.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Jeśli ukończono już samouczek dotyczący integracji usługi Functions z siecią wirtualną platformy Azure, możesz przejść do sekcji Tworzenie funkcji wyzwalacza HTTP.
Tworzenie sieci wirtualnej
W menu portalu Azure wybierz polecenie Utwórz zasób. W portalu Azure Marketplace wybierz kolejno pozycje Sieć>Sieć wirtualna.
W obszarze Tworzenie sieci wirtualnej wprowadź lub wybierz ustawienia określone w poniższej tabeli:
Ustawienie Wartość Subskrypcja Wybierz subskrypcję. Grupa zasobów Wybierz pozycję Utwórz nową, wprowadź nazwę myResourceGroup, a następnie wybierz przycisk OK. Nazwisko Wprowadź wartość myResourceGroup-vnet. Lokalizacja Wybierz pozycję Wschodnie stany USA. Wybierz pozycję Dalej: adresy IP i w polu Przestrzeń adresowa IPv4 wprowadź wartość 10.10.0.0/16.
Wybierz pozycję Dodaj podsieć, a następnie wprowadź ciąg Tutorial-Net w polu Nazwa podsieci i 10.10.1.0/24 w polu Zakres adresów podsieci.
Wybierz pozycję Dodaj, a następnie wybierz pozycję Przejrzyj i utwórz. Pozostaw resztę jako domyślną i wybierz pozycję Utwórz.
W obszarze Tworzenie sieci wirtualnej wybierz pozycję Utwórz.
Następnie utworzysz aplikację funkcji w planie Premium. Ten plan zapewnia bezserwerową skalę podczas obsługi integracji z siecią wirtualną.
Tworzenie aplikacji funkcji w planie Premium
W tym samouczku pokazano, jak utworzyć aplikację funkcji w planie Premium. Ta sama funkcja jest również dostępna w przypadku korzystania z planu dedykowanego (App Service).
Uwaga
Aby uzyskać najlepsze środowisko w tym samouczku, wybierz platformę .NET dla stosu środowiska uruchomieniowego i wybierz system Windows dla systemu operacyjnego. Ponadto utwórz aplikację funkcji w tym samym regionie co sieć wirtualna.
W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.
Na stronie Nowy wybierz pozycję Aplikacja funkcji obliczeniowej>.
Na stronie Podstawowe użyj ustawień aplikacji funkcji, jak określono w poniższej tabeli:
Ustawienie Sugerowana wartość opis Subskrypcja Twoja subskrypcja Subskrypcja, w ramach której jest tworzona ta nowa aplikacja funkcji. Grupa zasobów myResourceGroup Nazwa nowej grupy zasobów, w której ma zostać utworzona aplikacja funkcji. Nazwa aplikacji funkcji Nazwa unikatowa w skali globalnej Nazwa identyfikująca nową aplikację funkcji. Prawidłowe znaki to a-z
(bez uwzględniania wielkości liter),0-9
i-
.Publikowanie Kod Opcja publikowania plików kodu lub kontenera Docker. Stos środowiska uruchomieniowego Preferowany język Wybierz środowisko uruchomieniowe, które obsługuje ulubiony język programowania funkcji. Edytowanie w portalu nie jest obecnie obsługiwane w przypadku programowania w języku Python. Region Preferowany region Wybierz region w swojej okolicy lub w pobliżu innych usług, do których Twoje funkcje uzyskują dostęp. Wybierz pozycję Dalej: Hosting. Na stronie Hosting wprowadź następujące ustawienia:
Ustawienie Sugerowana wartość opis Konto magazynu Nazwa unikatowa w skali globalnej Utwórz konto magazynu używane przez aplikację funkcji. Nazwy kont usługi Storage muszą mieć długość od 3 do 24 znaków i mogą zawierać tylko cyfry i małe litery. Możesz również użyć istniejącego konta, które musi spełniać wymagania dotyczące konta magazynu. System operacyjny Preferowany system operacyjny System operacyjny jest wstępnie wybrany na podstawie wybranego stosu środowiska uruchomieniowego, ale w razie potrzeby możesz zmienić ustawienie. Język Python jest obsługiwany tylko w systemie Linux. Edytowanie w portalu jest obsługiwane tylko w systemie Windows. Planowanie Premium Plan hostingu określający sposób przydzielania zasobów do aplikacji funkcji. Wybierz pozycję Premium. Domyślnie jest tworzony nowy plan usługi App Service. Domyślna jednostka SKU i rozmiar to EP1, gdzie EP oznacza elastyczną warstwę Premium. Aby dowiedzieć się więcej, zobacz listę jednostek SKU Premium.
Podczas uruchamiania funkcji Języka JavaScript w planie Premium należy wybrać wystąpienie, które ma mniej procesorów wirtualnych. Aby uzyskać więcej informacji, zobacz Wybieranie planów premium z jednym rdzeniem.Wybierz pozycję Dalej: Monitorowanie. Na stronie Monitorowanie wprowadź następujące ustawienia:
Ustawienie Sugerowana wartość opis Application Insights Wartość domyślna Tworzy zasób usługi Application Insights o tej samej nazwie aplikacji w najbliższym obsługiwanym regionie. Rozwijając to ustawienie, możesz zmienić nazwę nowego zasobu lub wybrać inną lokalizację w lokalizacji geograficznej platformy Azure, aby przechowywać dane. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć wybrane opcje konfiguracji aplikacji.
Na stronie Przeglądanie + tworzenie przejrzyj ustawienia, a następnie wybierz pozycję Utwórz, aby aprowizować i wdrożyć aplikację funkcji.
Wybierz ikonę Powiadomienia w prawym górnym rogu portalu i poszukaj komunikatu Wdrożenie zakończyło się pomyślnie .
Wybierz pozycję Przejdź do zasobu, aby wyświetlić swoją nową aplikację funkcji. Możesz również wybrać pozycję Przypnij do pulpitu nawigacyjnego. Przypinanie ułatwia powrót do tego zasobu aplikacji funkcji z poziomu pulpitu nawigacyjnego.
Łączenie aplikacji funkcji z siecią wirtualną
Teraz możesz połączyć aplikację funkcji z siecią wirtualną.
W aplikacji funkcji wybierz pozycję Sieć w menu po lewej stronie, a następnie w obszarze Integracja z siecią wirtualną wybierz pozycję Kliknij tutaj, aby skonfigurować.
Na stronie Integracja z siecią wirtualną wybierz pozycję Dodaj sieć wirtualną.
W obszarze Stan funkcji sieciowej użyj ustawień w tabeli poniżej obrazu:
Ustawienie Sugerowana wartość opis Virtual Network MyResourceGroup-vnet Ta sieć wirtualna jest utworzona wcześniej. Podsieć Tworzenie nowej podsieci Utwórz podsieć w sieci wirtualnej, która będzie używana przez aplikację funkcji. Aby można było używać pustej podsieci, należy skonfigurować integrację z siecią wirtualną. Nazwa podsieci Funkcja -Net Nazwa nowej podsieci. Blok adresów sieci wirtualnej 10.10.0.0/16 Należy zdefiniować tylko jeden blok adresowy. Blok adresów podsieci 10.10.2.0/24 Rozmiar podsieci ogranicza łączną liczbę wystąpień, do których aplikacja funkcji planu Premium może skalować w poziomie. W tym przykładzie użyto podsieci /24
z 254 dostępnymi adresami hostów. Ta podsieć jest nadmiernie aprowizowana, ale łatwa do obliczenia.Wybierz przycisk OK , aby dodać podsieć. Zamknij strony Integracja z siecią wirtualną i Stan funkcji sieci, aby wrócić do strony aplikacji funkcji.
Aplikacja funkcji może teraz uzyskiwać dostęp do sieci wirtualnej. Po włączeniu łączności ustawienie lokacji vnetrouteallenabled
ma wartość 1
. Musisz mieć to ustawienie witryny lub starsze WEBSITE_VNET_ROUTE_ALL
ustawienie aplikacji ustawione na 1
wartość .
Następnie dodasz do aplikacji funkcji funkcję wyzwalaną przez protokół HTTP.
Tworzenie funkcji wyzwalacza HTTP
W menu po lewej stronie okna Funkcje wybierz pozycję Funkcje, a następnie wybierz pozycję Dodaj z górnego menu.
W oknie Nowa funkcja wybierz pozycję Wyzwalacz HTTP i zaakceptuj nazwę domyślną nowej funkcji lub wprowadź nową nazwę.
W pliku Code + Test zastąp kod skryptu języka C# wygenerowany przez szablon (csx) następującym kodem:
#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); }
Ten kod wywołuje zewnętrzną witrynę internetową, która zwraca adres IP obiektu wywołującego, co w tym przypadku jest tą funkcją. Ta metoda umożliwia łatwe określenie wychodzącego adresu IP używanego przez aplikację funkcji.
Teraz możesz uruchomić funkcję i sprawdzić bieżące adresy IP ruchu wychodzącego.
Weryfikowanie bieżących wychodzących adresów IP
Teraz możesz uruchomić funkcję . Najpierw sprawdź w portalu i sprawdź, jakie adresy IP ruchu wychodzącego są używane przez aplikację funkcji.
W aplikacji funkcji wybierz pozycję Właściwości i przejrzyj pole Wychodzące adresy IP.
Teraz wróć do funkcji wyzwalacza HTTP, wybierz pozycję Kod i testowanie, a następnie pozycję Testuj/Uruchom.
Wybierz pozycję Uruchom , aby wykonać funkcję, a następnie przejdź do danych wyjściowych i sprawdź, czy adres IP w treści odpowiedzi HTTP jest jedną z wartości z wyświetlonych wcześniej adresów IP ruchu wychodzącego.
Teraz możesz utworzyć publiczny adres IP i użyć bramy translatora adresów sieciowych, aby zmodyfikować ten wychodzący adres IP.
Tworzenie publicznego adresu IP
W grupie zasobów wybierz pozycję Dodaj, wyszukaj pozycję Publiczny adres IP w witrynie Azure Marketplace, a następnie wybierz pozycję Utwórz. Użyj ustawień w tabeli poniżej obrazu:
Ustawienie Sugerowana wartość Wersja adresu IP Protokół IPv4 SKU Standardowy Warstwa Regionalne Nazwa/nazwisko Wychodzący adres IP Subskrypcja upewnij się, że twoja subskrypcja jest wyświetlana Grupa zasobów: myResourceGroup (lub nazwa przypisana do grupy zasobów) Lokalizacja Wschodnie stany USA (lub lokalizacja przypisana do innych zasobów) Strefa dostępności Brak strefy Wybierz pozycję Utwórz , aby przesłać wdrożenie.
Po zakończeniu wdrażania przejdź do nowo utworzonego zasobu publicznego adresu IP i wyświetl adres IP w obszarze Przegląd.
Tworzenie bramy translatora adresów sieciowych
Teraz utwórzmy bramę translatora adresów sieciowych. Po rozpoczęciu pracy z poprzednim samouczkiemFunction-Net
dotyczącym sieci wirtualnej sugerowana nazwa podsieci była sugerowaną nazwą MyResourceGroup-vnet
sieci wirtualnej w tym samouczku.
W grupie zasobów wybierz pozycję Dodaj, wyszukaj bramę translatora adresów sieciowych w witrynie Azure Marketplace i wybierz pozycję Utwórz. Użyj ustawień w tabeli poniżej obrazu, aby wypełnić kartę Podstawowe :
Ustawienie Sugerowana wartość Subskrypcja Twoja subskrypcja Grupa zasobów: myResourceGroup (lub nazwa przypisana do grupy zasobów) Nazwa bramy translatora adresów sieciowych myNatGateway Region Wschodnie stany USA (lub lokalizacja przypisana do innych zasobów) Strefa dostępności Brak Wybierz pozycję Dalej: wychodzący adres IP. W polu Publiczne adresy IP wybierz wcześniej utworzony publiczny adres IP. Pozostaw niezaznaczone prefiksy publicznych adresów IP.
Wybierz pozycję Dalej: Podsieć. Wybierz zasób myResourceGroup-vnet w polu Sieć wirtualna i podsieć Function-Net.
Wybierz pozycję Przejrzyj i utwórz, a następnie pozycję Utwórz, aby przesłać wdrożenie.
Po zakończeniu wdrażania brama translatora adresów sieciowych jest gotowa do kierowania ruchu z podsieci aplikacji funkcji do Internetu.
Weryfikowanie nowych wychodzących adresów IP
Powtórz kroki wcześniej , aby ponownie uruchomić funkcję. Powinien zostać wyświetlony wychodzący adres IP skonfigurowany w translatorze adresów sieciowych widocznych w danych wyjściowych funkcji.
Czyszczenie zasobów
Utworzono zasoby, aby ukończyć ten samouczek. Opłaty za te zasoby będą naliczane w zależności od stanu konta i cen usług. Aby uniknąć ponoszenia dodatkowych kosztów, usuń zasoby, gdy już ich potrzebujesz.
W witrynie Azure Portal przejdź do strony Grupa zasobów.
Aby przejść do tej strony ze strony aplikacji funkcji, wybierz kartę Przegląd , a następnie wybierz link w obszarze Grupa zasobów.
Aby uzyskać dostęp do tej strony z pulpitu nawigacyjnego, wybierz pozycję Grupy zasobów, a następnie wybierz grupę zasobów użytą w tym artykule.
Na stronie Grupa zasobów przejrzyj listę uwzględnionych zasobów i sprawdź, czy są to te, które chcesz usunąć.
Wybierz pozycję Usuń grupę zasobów i postępuj zgodnie z instrukcjami.
Usunięcie może potrwać kilka minut. Po jego zakończeniu przez kilka sekund będzie widoczne powiadomienie. Możesz również wybrać ikonę dzwonka w górnej części strony, aby wyświetlić powiadomienie.