Samouczek: integrowanie usługi Azure Functions z siecią wirtualną platformy Azure przy użyciu prywatnych punktów końcowych
W tym samouczku pokazano, jak używać usługi Azure Functions do łączenia się z zasobami w sieci wirtualnej platformy Azure przy użyciu prywatnych punktów końcowych. Możesz utworzyć nową aplikację funkcji przy użyciu nowego konta magazynu, które jest zablokowane za siecią wirtualną za pośrednictwem witryny Azure Portal. Sieć wirtualna używa wyzwalacza kolejki usługi Service Bus.
W tym samouczku wykonasz następujące elementy:
- Utwórz aplikację funkcji w planie Elastic Premium z integracją sieci wirtualnej i prywatnymi punktami końcowymi.
- Tworzenie zasobów platformy Azure, takich jak usługa Service Bus
- Zablokuj usługę Service Bus za prywatnym punktem końcowym.
- Wdróż aplikację funkcji korzystającą zarówno z wyzwalaczy Service Bus, jak i HTTP.
- Przetestuj, aby sprawdzić, czy aplikacja funkcji jest bezpieczna wewnątrz sieci wirtualnej.
- Wyczyść zasoby.
Tworzenie aplikacji funkcji w planie Premium
Aplikację funkcji języka C# można utworzyć w planie Elastic Premium, która obsługuje funkcje sieciowe, takie jak integracja sieci wirtualnej w ramach tworzenia oraz skalowanie bezserwerowe. W tym samouczku jest używany język C# i system Windows. Obsługiwane są również inne języki i system Linux.
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 poniższej tabeli, aby skonfigurować ustawienia aplikacji funkcji.
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 tworzysz aplikację 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 Wybierz publikowanie plików kodu lub kontenera platformy Docker. Stos środowiska uruchomieniowego .NET W tym samouczku jest używana platforma .NET. Wersja 6 (LTS) W tym samouczku jest używana platforma .NET 6.0 uruchomiona w tym samym procesie co host usługi Functions. Region Preferowany region Wybierz region w pobliżu ciebie lub w pobliżu innych usług, do których uzyskujesz dostęp do funkcji. System operacyjny Windows W tym samouczku jest używany system Windows, ale działa również w systemie Linux. Planowanie Functions Premium Plan hostingu określający sposób przydzielania zasobów do aplikacji funkcji. Domyślnie po wybraniu pozycji Premium zostanie utworzony nowy plan usługi App Service. Domyślna jednostka SKU i rozmiar to EP1, gdzie EP oznacza elastyczną warstwę Premium. Aby uzyskać więcej informacji, zobacz listę jednostek SKU Premium.
Po uruchomieniu funkcji Języka JavaScript w planie Premium wybierz 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: Magazyn. Na stronie Magazyn 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 magazynu muszą mieć długość od 3 do 24 znaków. Mogą zawierać tylko cyfry i małe litery. Możesz również użyć istniejącego konta, które nie jest ograniczone przez reguły zapory i spełnić wymagania dotyczące konta magazynu. W przypadku korzystania z usługi Functions z zablokowanym kontem magazynu potrzebne jest konto magazynu w wersji 2. Jest to domyślna wersja magazynu utworzona podczas tworzenia aplikacji funkcji z funkcjami sieciowymi za pośrednictwem bloku tworzenia. Wybierz pozycję Dalej: Sieć. Na stronie Sieć wprowadź następujące ustawienia.
Uwaga
Niektóre z tych ustawień nie są widoczne, dopóki nie zostaną wybrane inne opcje.
Ustawienie Sugerowana wartość opis Włączanie dostępu publicznego Wyłączona Odmowa dostępu do sieci publicznej spowoduje zablokowanie całego ruchu przychodzącego, z wyjątkiem tego, że pochodzi z prywatnych punktów końcowych. Włączanie iniekcji sieci Włączone Możliwość skonfigurowania aplikacji z integracją z siecią wirtualną podczas tworzenia jest wyświetlana w oknie portalu po przełączeniu tej opcji na wł. Virtual Network Kliknięcie przycisku Nowe Wybierz pole Utwórz nowy. Na wyskakującym ekranie podaj nazwę sieci wirtualnej i wybierz przycisk OK. Wyświetlane są opcje ograniczania dostępu przychodzącego i wychodzącego do aplikacji funkcji podczas tworzenia. Aby ograniczyć dostęp wychodzący, należy jawnie włączyć integrację sieci wirtualnej w części dostęp wychodzący okna. Wprowadź następujące ustawienia w sekcji Dostęp przychodzący. Ten krok powoduje utworzenie prywatnego punktu końcowego w aplikacji funkcji.
Napiwek
Aby kontynuować interakcję z aplikacją funkcji z portalu, należy dodać komputer lokalny do sieci wirtualnej. Jeśli nie chcesz ograniczać dostępu przychodzącego, pomiń ten krok.
Ustawienie Sugerowana wartość opis Włączanie prywatnych punktów końcowych Włączone Po włączeniu tej opcji można skonfigurować aplikację przy użyciu integracji z siecią wirtualną podczas tworzenia w portalu. Nazwa prywatnego punktu końcowego myInboundPrivateEndpointName Nazwa identyfikująca prywatny punkt końcowy nowej aplikacji funkcji. Podsieć przychodząca Kliknięcie przycisku Nowe Ta opcja tworzy nową podsieć dla przychodzącego prywatnego punktu końcowego. Do podsieci pojedynczej można dodać wiele prywatnych punktów końcowych. Podaj nazwę podsieci. Blok adresów podsieci może pozostać w wartości domyślnej. Wybierz OK Aby dowiedzieć się więcej o określaniu rozmiaru podsieci, zobacz Podsieci. DNS Prywatna strefa DNS platformy Azure Ta wartość wskazuje serwer DNS używany przez prywatny punkt końcowy. W większości przypadków, jeśli pracujesz na platformie Azure, strefa Prywatna strefa DNS platformy Azure jest strefą DNS, której należy użyć jako ręcznej dla niestandardowych stref DNS, zwiększyły się złożoność. Wprowadź następujące ustawienia w sekcji Dostęp wychodzący. Ten krok integruje aplikację funkcji z siecią wirtualną podczas tworzenia. Udostępnia również opcje tworzenia prywatnych punktów końcowych na koncie magazynu i ograniczania konta magazynu z dostępu do sieci podczas tworzenia. Gdy aplikacja funkcji jest zintegrowana z siecią wirtualną, cały ruch wychodzący domyślnie przechodzi przez sieć wirtualną.
Ustawienie Sugerowana wartość opis Włączanie integracji z siecią wirtualną Włączone Integruje to aplikację funkcji z siecią wirtualną w ramach tworzenia i kierowania całego ruchu wychodzącego przez sieć wirtualną. Podsieć wychodząca Tworzyć w programie Spowoduje to utworzenie nowej podsieci na potrzeby integracji z siecią wirtualną aplikacji funkcji. Aplikację funkcji można zintegrować tylko z pustą podsiecią. Podaj nazwę podsieci. Blok adresów podsieci może pozostać w wartości domyślnej. Jeśli chcesz go skonfigurować, dowiedz się więcej o określaniu rozmiaru podsieci tutaj. Wybierz OK Zostanie wyświetlona opcja tworzenia prywatnych punktów końcowych usługi Storage. Aby używać aplikacji funkcji z sieciami wirtualnymi, musisz dołączyć ją do podsieci. Wprowadź następujące ustawienia w sekcji Prywatny punkt końcowy usługi Storage. W tym kroku tworzone są prywatne punkty końcowe dla obiektów blob, kolejek, plików i punktów końcowych tabeli na koncie magazynu. To skutecznie integruje konto magazynu z siecią wirtualną.
Ustawienie Sugerowana wartość opis Dodawanie prywatnego punktu końcowego magazynu Włączone Po włączeniu tej opcji w portalu jest wyświetlana możliwość konfigurowania aplikacji przy użyciu integracji z siecią wirtualną podczas tworzenia. Nazwa prywatnego punktu końcowego myInboundPrivateEndpointName Nazwa identyfikująca prywatny punkt końcowy konta magazynu. Podsieć prywatnego punktu końcowego Kliknięcie przycisku Nowe Spowoduje to utworzenie nowej podsieci dla przychodzącego prywatnego punktu końcowego na koncie magazynu. Do podsieci pojedynczej można dodać wiele prywatnych punktów końcowych. Podaj nazwę podsieci. Blok adresów podsieci może pozostać w wartości domyślnej. Jeśli chcesz go skonfigurować, dowiedz się więcej o określaniu rozmiaru podsieci tutaj. Wybierz OK DNS Prywatna strefa DNS platformy Azure Ta wartość wskazuje serwer DNS używany przez prywatny punkt końcowy. W większości przypadków, jeśli pracujesz na platformie Azure, strefa azure Prywatna strefa DNS jest strefą DNS, której należy użyć jako ręcznej dla niestandardowych stref DNS, zwiększy złożoność. Wybierz pozycję Dalej: Monitorowanie. Na stronie Monitorowanie wprowadź następujące ustawienia.
Ustawienie Sugerowana wartość opis Application Insights Wartość domyślna Utwórz zasób usługi Application Insights o tej samej nazwie aplikacji w najbliższym obsługiwanym regionie. Rozwiń to ustawienie, jeśli musisz zmienić nazwę nowego zasobu lub zapisać dane w innej lokalizacji w lokalizacji geograficznej platformy Azure. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć wybrane opcje konfiguracji aplikacji.
Na stronie Przeglądanie i tworzenie przejrzyj ustawienia. Następnie wybierz pozycję Utwórz , aby utworzyć i wdrożyć aplikację funkcji.
W prawym górnym rogu portalu wybierz ikonę Powiadomienia 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.
Gratulacje! Aplikacja funkcji w warstwie Premium została pomyślnie utworzona.
Uwaga
Niektóre wdrożenia mogą czasami nie tworzyć prywatnych punktów końcowych na koncie magazynu z błędem "StorageAccountOperationInProgress". Ten błąd występuje, mimo że sama aplikacja funkcji zostanie utworzona pomyślnie. Gdy wystąpi taki błąd, usuń aplikację funkcji i spróbuj ponownie wykonać operację. Zamiast tego możesz ręcznie utworzyć prywatne punkty końcowe na koncie magazynu.
Tworzenie usługi Service Bus
Następnie utworzysz wystąpienie usługi Service Bus, które jest używane do testowania funkcjonalności możliwości sieci aplikacji funkcji w tym samouczku.
W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.
Na stronie Nowy wyszukaj usługę Service Bus. Następnie wybierz Utwórz.
Na karcie Podstawowe użyj poniższej tabeli, aby skonfigurować ustawienia usługi Service Bus. Wszystkie inne ustawienia mogą używać wartości domyślnych.
Ustawienie Sugerowana wartość opis Subskrypcja Twoja subskrypcja Subskrypcja, w której są tworzone zasoby. Grupa zasobów: myResourceGroup Grupa zasobów utworzona za pomocą aplikacji funkcji. Nazwa przestrzeni nazw myServiceBus Nazwa wystąpienia usługi Service Bus, dla którego jest włączony prywatny punkt końcowy. Lokalizacja myFunctionRegion Region, w którym utworzono aplikację funkcji. Warstwa cenowa Premium Wybierz tę warstwę, aby używać prywatnych punktów końcowych z usługą Azure Service Bus. Wybierz pozycję Przejrzyj i utwórz. Po zakończeniu walidacji wybierz pozycję Utwórz.
Blokowanie usługi Service Bus
Utwórz prywatny punkt końcowy, aby zablokować usługę Service Bus:
W nowej usłudze Service Bus w menu po lewej stronie wybierz pozycję Sieć.
Na karcie Połączenia prywatnego punktu końcowego wybierz pozycję Prywatny punkt końcowy.
Na karcie Podstawowe użyj ustawień prywatnego punktu końcowego pokazanego w poniższej tabeli.
Ustawienie Sugerowana wartość opis Subskrypcja Twoja subskrypcja Subskrypcja, w której są tworzone zasoby. Grupa zasobów: myResourceGroup Grupa zasobów utworzona za pomocą aplikacji funkcji. Nazwa/nazwisko sb-endpoint Nazwa prywatnego punktu końcowego dla magistrali usług. Region myFunctionRegion Region, w którym utworzono konto magazynu. Na karcie Zasób użyj ustawień prywatnego punktu końcowego pokazanego w poniższej tabeli.
Ustawienie Sugerowana wartość opis Subskrypcja Twoja subskrypcja Subskrypcja, w ramach której są tworzone zasoby. Typ zasobu Microsoft.ServiceBus/przestrzenie nazw Typ zasobu usługi Service Bus. Zasób myServiceBus Usługa Service Bus utworzona wcześniej w samouczku. Docelowy podźródło namespace Prywatny punkt końcowy używany dla przestrzeni nazw z usługi Service Bus. Na karcie Sieć wirtualna dla ustawienia Podsieć wybierz wartość domyślną.
Wybierz pozycję Przejrzyj i utwórz. Po zakończeniu walidacji wybierz pozycję Utwórz.
Po utworzeniu prywatnego punktu końcowego wróć do sekcji Sieć przestrzeni nazw usługi Service Bus i sprawdź kartę Dostęp publiczny.
Upewnij się, że wybrano wybrane sieci .
Wybierz pozycję + Dodaj istniejącą sieć wirtualną, aby dodać niedawno utworzoną sieć wirtualną.
Na karcie Dodawanie sieci użyj ustawień sieci z poniższej tabeli:
Ustawienie Sugerowana wartość opis Subskrypcja Twoja subskrypcja Subskrypcja, w ramach której są tworzone zasoby. Sieci wirtualne myVirtualNet Nazwa sieci wirtualnej, z którą łączy się aplikacja funkcji. Podsieci — funkcje Nazwa podsieci, z którą łączy się aplikacja funkcji. Wybierz pozycję Dodaj adres IP klienta, aby nadać bieżącemu adresowi IP klienta dostęp do przestrzeni nazw.
Uwaga
Zezwolenie na adres IP klienta jest niezbędne, aby umożliwić witrynie Azure Portal publikowanie komunikatów w kolejce w dalszej części tego samouczka.
Wybierz pozycję Włącz , aby włączyć punkt końcowy usługi.
Wybierz pozycję Dodaj , aby dodać wybraną sieć wirtualną i podsieć do reguł zapory dla usługi Service Bus.
Wybierz pozycję Zapisz , aby zapisać zaktualizowane reguły zapory.
Zasoby w sieci wirtualnej mogą teraz komunikować się z usługą Service Bus przy użyciu prywatnego punktu końcowego.
Utwórz kolejkę
Utwórz kolejkę, w której wyzwalacz usługi Azure Functions Service Bus pobiera zdarzenia:
W usłudze Service Bus w menu po lewej stronie wybierz pozycję Kolejki.
Wybierz pozycję Kolejka. Na potrzeby tego samouczka podaj kolejkę nazw jako nazwę nowej kolejki.
Wybierz pozycję Utwórz.
Pobieranie parametry połączenia usługi Service Bus
W usłudze Service Bus w menu po lewej stronie wybierz pozycję Zasady dostępu współdzielonego.
Wybierz pozycję RootManageSharedAccessKey. Skopiuj i zapisz podstawowe parametry połączenia. Ten parametry połączenia jest potrzebny podczas konfigurowania ustawień aplikacji.
Konfigurowanie ustawień aplikacji funkcji
W aplikacji funkcji w menu po lewej stronie wybierz pozycję Konfiguracja.
Aby używać aplikacji funkcji z sieciami wirtualnymi i usługą Service Bus, zaktualizuj ustawienia aplikacji pokazane w poniższej tabeli. Aby dodać lub edytować ustawienie, wybierz pozycję + Nowe ustawienie aplikacji lub ikonę Edytuj w najbardziej prawej kolumnie tabeli ustawień aplikacji. Po zakończeniu wybierz pozycję Zapisz.
Ustawienie Sugerowana wartość opis SERVICEBUS_CONNECTION myServiceBusConnectionString Utwórz to ustawienie aplikacji dla parametry połączenia usługi Service Bus. Ten parametry połączenia magazynu znajduje się w sekcji Pobieranie parametry połączenia usługi Service Bus. WEBSITE_CONTENTOVERVNET 1 Utwórz to ustawienie aplikacji. Wartość 1 umożliwia skalowanie aplikacji funkcji, gdy konto magazynu jest ograniczone do sieci wirtualnej. Ponieważ używasz planu hostingu Elastic Premium, w widoku Konfiguracja wybierz kartę Ustawienia środowiska uruchomieniowego funkcji. Ustaw monitorowanie skalowania środowiska uruchomieniowego na Wł. Następnie wybierz opcję Zapisz. Skalowanie oparte na środowisku uruchomieniowym umożliwia łączenie funkcji wyzwalacza innych niż HTTP z usługami uruchomionymi w sieci wirtualnej.
Uwaga
Skalowanie środowiska uruchomieniowego nie jest wymagane w przypadku aplikacji funkcji hostowanych w ramach dedykowanego planu usługi App Service.
Wdrażanie wyzwalacza usługi Service Bus i wyzwalacza HTTP
Uwaga
Włączenie prywatnych punktów końcowych w aplikacji funkcji powoduje również, że witryna Menedżera kontroli źródła (SCM) jest publicznie niedostępna. Poniższe instrukcje zawierają wskazówki dotyczące wdrażania przy użyciu Centrum wdrażania w aplikacji funkcji. Alternatywnie możesz użyć narzędzia zip deploy lub własnych agentów wdrożonych w podsieci w sieci wirtualnej.
W usłudze GitHub przejdź do następującego przykładowego repozytorium. Zawiera ona aplikację funkcji i dwie funkcje, wyzwalacz HTTP i wyzwalacz kolejki usługi Service Bus.
W górnej części strony wybierz pozycję Rozwidlenie , aby utworzyć rozwidlenie tego repozytorium na własnym koncie lub organizacji usługi GitHub.
W aplikacji funkcji w menu po lewej stronie wybierz pozycję Centrum wdrażania. Następnie wybierz pozycję Ustawienia.
Na karcie Ustawienia użyj ustawień wdrażania przedstawionych w poniższej tabeli.
Ustawienie Sugerowana wartość opis Source GitHub W kroku 2 należy utworzyć repozytorium GitHub dla przykładowego kodu. Organizacja myOrganization Organizacja, do których ma być zaewidencjonowane repozytorium. Zazwyczaj jest to Twoje konto. Repozytorium functions-vnet-tutorial Rozwidlenie repozytorium z pliku https://github.com/Azure-Samples/functions-vnet-tutorial. Gałąź main Główna gałąź utworzonego repozytorium. Stos środowiska uruchomieniowego .NET Przykładowy kod znajduje się w języku C#. Wersja .NET Core 3.1 Wersja środowiska uruchomieniowego. Wybierz pozycję Zapisz.
Początkowe wdrożenie może potrwać kilka minut. Po pomyślnym wdrożeniu aplikacji na karcie Dzienniki zostanie wyświetlony komunikat o stanie Powodzenie (aktywne). W razie potrzeby odśwież stronę.
Gratulacje! Pomyślnie wdrożono przykładową aplikację funkcji.
Testowanie zablokowanej aplikacji funkcji
W aplikacji funkcji w menu po lewej stronie wybierz pozycję Funkcje.
Wybierz pozycję ServiceBusQueueTrigger.
W menu po lewej stronie wybierz pozycję Monitor.
Zobaczysz, że nie możesz monitorować aplikacji. Przeglądarka nie ma dostępu do sieci wirtualnej, więc nie może bezpośrednio uzyskać dostępu do zasobów w sieci wirtualnej.
Oto alternatywny sposób monitorowania funkcji przy użyciu usługi Application Insights:
W aplikacji funkcji w menu po lewej stronie wybierz pozycję Application Insights. Następnie wybierz pozycję Wyświetl dane usługi Application Insights.
W menu po lewej stronie wybierz pozycję Metryki na żywo.
Otwórz nową kartę. W usłudze Service Bus w menu po lewej stronie wybierz pozycję Kolejki.
Wybierz kolejkę.
W menu po lewej stronie wybierz pozycję Eksplorator usługi Service Bus. W obszarze Wyślij w polu Typ zawartości wybierz pozycję Tekst/Zwykły. Następnie wprowadź komunikat.
Wybierz pozycję Wyślij , aby wysłać wiadomość.
Na karcie Metryki na żywo powinien zostać wyświetlony wyzwalacz kolejki usługi Service Bus. Jeśli tak nie jest, wyślij ponownie komunikat z Eksploratora usługi Service Bus.
Gratulacje! Pomyślnie przetestowano konfigurację aplikacji funkcji przy użyciu prywatnych punktów końcowych.
Omówienie prywatnych stref DNS
Do nawiązania połączenia z zasobami platformy Azure użyto prywatnego punktu końcowego. Łączysz się z prywatnym adresem IP zamiast z publicznym punktem końcowym. Istniejące usługi platformy Azure są skonfigurowane do używania istniejącego systemu DNS do nawiązywania połączenia z publicznym punktem końcowym. Aby nawiązać połączenie z prywatnym punktem końcowym, należy zastąpić konfigurację DNS.
Prywatna strefa DNS jest tworzona dla każdego zasobu platformy Azure skonfigurowanego przy użyciu prywatnego punktu końcowego. Rekord DNS jest tworzony dla każdego prywatnego adresu IP skojarzonego z prywatnym punktem końcowym.
W tym samouczku utworzono następujące strefy DNS:
- privatelink.file.core.windows.net
- privatelink.blob.core.windows.net
- privatelink.servicebus.windows.net
- privatelink.azurewebsites.net
Czyszczenie zasobów
W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.
W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.
Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.
Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.
Następne kroki
W tym samouczku utworzono aplikację funkcji Premium, konto magazynu i usługę Service Bus. Wszystkie te zasoby zostały zabezpieczone za prywatnymi punktami końcowymi.
Skorzystaj z poniższych linków, aby dowiedzieć się więcej o opcjach sieciowych i prywatnych punktach końcowych usługi Azure Functions: