Samouczek: kontrolowanie Azure Functions wychodzącego adresu IP za pomocą bramy translatora adresów sieciowych sieci wirtualnej platformy Azure

Translacja adresów sieci wirtualnych (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 zabezpieczającego. Aby dowiedzieć się więcej, zobacz Co to jest usługa Azure NAT Gateway?.

W tym samouczku pokazano, jak za pomocą bram translatora adresów sieciowych kierować ruch wychodzący 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:

Interfejs użytkownika na potrzeby integracji bramy translatora adresów sieciowych

Funkcje działające w planie Premium mają takie same możliwości hostingu jak aplikacje internetowe w Azure App Service, które obejmują 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 zawiera podstawowe informacje dotyczące 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

  1. W menu witryny Azure Portal wybierz pozycję Utwórz zasób. W Azure Marketplace wybierz pozycję Sieć wirtualna>.

  2. 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.
    Nazwa Wprowadź wartość myResourceGroup-vnet.
    Lokalizacja Wybierz pozycję Wschodnie stany USA.
  3. Wybierz pozycję Dalej: adresy IP, a w polu Przestrzeń adresowa IPv4 wprowadź wartość 10.10.0.0/16.

  4. 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.

    Karta Adresy IP do tworzenia sieci wirtualnej

  5. Wybierz pozycję Dodaj, a następnie wybierz pozycję Przejrzyj i utwórz. Pozostaw resztę domyślną i wybierz pozycję Utwórz.

  6. W obszarze Tworzenie sieci wirtualnej wybierz pozycję Utwórz.

Następnie utworzysz aplikację funkcji w planie Premium. Ten plan zapewnia bezserwerową skalę przy jednoczesnym obsłudze 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 pozycję .NET dla stosu środowiska uruchomieniowego i wybierz pozycję Windows dla systemu operacyjnego. Ponadto utwórz aplikację funkcji w tym samym regionie co sieć wirtualna.

  1. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  2. Na stronie Nowy wybierz pozycjęAplikacja funkcjiobliczeniowej>.

  3. Na stronie Podstawy użyj ustawień aplikacji funkcji określonych 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-9i -.
    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 blisko Ciebie lub w pobliżu innych usług, do których uzyskujesz dostęp do funkcji.
  4. 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 wyboru stosu środowiska uruchomieniowego, ale w razie potrzeby można zmienić to 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 App Service. Domyślna jednostka SKU i rozmiar to EP1, gdzie EP to elastyczna wersja Premium. Aby dowiedzieć się więcej, zobacz listę jednostek SKU Premium.
    Podczas uruchamiania funkcji 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.
  5. Wybierz pozycję Dalej: Monitorowanie. Na stronie Monitorowanie wprowadź następujące ustawienia:

    Ustawienie Sugerowana wartość Opis
    Application Insights Domyślny Tworzy zasób usługi Application Insights o tej samej nazwie aplikacji w najbliższym obsługiwanym regionie. Rozszerzając to ustawienie, możesz zmienić nazwę nowego zasobu lub wybrać inną lokalizację w lokalizacji geograficznej platformy Azure , aby przechowywać dane.
  6. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć wybrane opcje konfiguracji aplikacji.

  7. Na stronie Przeglądanie i tworzenie przejrzyj ustawienia, a następnie wybierz pozycję Utwórz , aby aprowizować i wdrożyć aplikację funkcji.

  8. Wybierz ikonę Powiadomienia w prawym górnym rogu portalu i watch komunikatu Wdrożenie powiodło się.

  9. Wybierz pozycję Przejdź do zasobu, aby wyświetlić nową aplikację funkcji. Możesz również wybrać pozycję Przypnij do pulpitu nawigacyjnego. Przypinanie ułatwia powrót do tego zasobu aplikacji funkcji z pulpitu nawigacyjnego.

    Powiadomienie dotyczące wdrożenia

Łączenie aplikacji funkcji z siecią wirtualną

Teraz możesz połączyć aplikację funkcji z siecią wirtualną.

  1. 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ć.

    Wybieranie sieci w aplikacji funkcji

  2. Na stronie Integracja z siecią wirtualną wybierz pozycję Dodaj sieć wirtualną.

  3. W obszarze Stan funkcji sieciowej użyj ustawień w tabeli poniżej obrazu:

    Definiowanie sieci wirtualnej aplikacji funkcji

    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 ma być używana przez aplikację funkcji. Aby można było używać pustej podsieci, należy skonfigurować integrację z siecią wirtualną.
    Nazwa podsieci Function-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.
  4. Wybierz przycisk OK , aby dodać podsieć. Zamknij strony Integracja z siecią wirtualną i Stan funkcji sieci , aby powrócić do strony aplikacji funkcji.

Aplikacja funkcji może teraz uzyskać dostęp do sieci wirtualnej. Po włączeniu vnetrouteallenabled łączności ustawienie lokacji ma wartość 1. Musisz mieć to ustawienie witryny lub starsze WEBSITE_VNET_ROUTE_ALL ustawienie aplikacji ustawione na 1wartość .

Następnie dodasz funkcję wyzwalaną przez protokół HTTP do aplikacji funkcji.

Tworzenie funkcji wyzwalacza HTTP

  1. W menu po lewej stronie okna Funkcje wybierz pozycję Funkcje, a następnie wybierz pozycję Dodaj z górnego menu.

  2. W oknie Nowa funkcja wybierz pozycję Wyzwalacz HTTP i zaakceptuj nazwę domyślną nowej funkcji lub wprowadź nową nazwę.

  3. W obszarze Kod + 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 adresów IP dla ruchu wychodzącego

Teraz możesz uruchomić funkcję. Najpierw sprawdź w portalu i sprawdź, jakie adresy IP ruchu wychodzącego są używane przez aplikację funkcji.

  1. W aplikacji funkcji wybierz pozycję Właściwości i przejrzyj pole Wychodzące adresy IP .

    Wyświetlanie wychodzących adresów IP aplikacji funkcji

  2. Teraz wróć do funkcji wyzwalacza HTTP, wybierz pozycję Kod i test , a następnie pozycję Testuj/Uruchom.

    Funkcja testowa

  3. Wybierz pozycję Uruchom , aby wykonać funkcję, a następnie przejdź do pozycji Dane wyjściowe.

    Dane wyjściowe funkcji testowej

  4. Sprawdź, czy adres IP w treści odpowiedzi HTTP jest jedną z wartości z adresów IP wychodzących, które zostały wyświetlone wcześniej.

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

  1. W grupie zasobów wybierz pozycję Dodaj, wyszukaj Azure Marketplace w polu Publiczny adres IP, a następnie wybierz pozycję Utwórz. Użyj ustawień w tabeli poniżej obrazu:

    Tworzenie publicznego adresu IP

    Ustawienie Sugerowana wartość
    Wersja adresu IP Protokół IPv4
    SKU Standardowa (Standard)
    Warstwa Regionalne
    Nazwa Wychodzący adres IP
    Subskrypcja upewnij się, że 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
  2. Wybierz pozycję Utwórz , aby przesłać wdrożenie.

  3. Po zakończeniu wdrażania przejdź do nowo utworzonego zasobu publicznego adresu IP i wyświetl adres IP w obszarze Przegląd.

    Wyświetl publiczny adres IP

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 MyResourceGroup-vnet sugerowaną nazwą sieci wirtualnej w tym samouczku.

  1. W grupie zasobów wybierz pozycję Dodaj, wyszukaj Azure Marketplace bramy translatora adresów sieciowych, a następnie wybierz pozycję Utwórz. Użyj ustawień w tabeli poniżej obrazu, aby wypełnić kartę Podstawowe :

    Tworzenie bramy translatora adresów sieciowych

    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
  2. 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 .

  3. Wybierz pozycję Dalej: Podsieć. Wybierz zasób myResourceGroup-vnet w polu Sieć wirtualna i podsieć Function-Net .

    Wybierz podsieć

  4. 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

Zasoby zostały utworzone w celu ukończenia tego samouczka. 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.

  1. 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.

    Zrzut ekranu przedstawiający wybieranie grupy zasobów do usunięcia ze strony aplikacji funkcji.

    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.

  2. Na stronie Grupa zasobów przejrzyj listę uwzględnionych zasobów i sprawdź, czy są to te, które chcesz usunąć.

  3. 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.

Następne kroki