Opcje sieciowe usługi Azure Functions
W tym artykule opisano funkcje sieciowe dostępne w opcjach hostingu dla usługi Azure Functions. Wszystkie poniższe opcje sieciowe umożliwiają dostęp do zasobów bez używania adresów routingu internetowego lub ograniczenia dostępu do Internetu do aplikacji funkcji.
Modele hostingu mają różne poziomy izolacji sieci. Wybranie prawidłowego rozwiązania pomaga spełnić wymagania dotyczące izolacji sieci.
Funkcja | Plan zużycia | Plan Flex Consumption | Plan Premium | Środowiska ASE dedykowanego planu/ | Aplikacje kontenera* |
---|---|---|---|---|---|
Ograniczenia przychodzącego adresu IP | ✅Tak | ✅Tak | ✅Tak | ✅Tak | ✅Tak |
Przychodzące prywatne punkty końcowe | ❌Nie | ✅Tak | ✅Tak | ✅Tak | ❌Nie |
Integracja sieci wirtualnej | ❌Nie | ✅Tak (regionalny) | ✅Tak (regionalny) | ✅Tak (regionalna i brama) | ✅Tak |
Wyzwalacze sieci wirtualnej (inne niż HTTP) | ❌Nie | ✅Tak | ✅Tak | ✅Tak | ✅Tak |
Połączenia hybrydowe (tylko system Windows) | ❌Nie | ❌ Nie | ✅Tak | ✅Tak | ❌Nie |
Ograniczenia adresów IP dla ruchu wychodzącego | ❌Nie | ✅Tak | ✅Tak | ✅Tak | ✅Tak |
*Aby uzyskać więcej informacji, zobacz Networking in Azure Container Apps environment (Sieć w środowisku usługi Azure Container Apps).
Zasoby przewodników Szybki start
Skorzystaj z poniższych zasobów, aby szybko rozpocząć pracę ze scenariuszami sieciowymi usługi Azure Functions. Te zasoby są przywołyne w całym artykule.
- Szablony usługi ARM, pliki Bicep i szablony narzędzia Terraform:
- Tylko szablony usługi ARM:
- Aplikacja funkcji z prywatnymi punktami końcowymi usługi Azure Storage.
- Aplikacja funkcji platformy Azure z integracją z siecią wirtualną.
- Samouczki:
Funkcje sieci przychodzącej
Poniższe funkcje umożliwiają filtrowanie żądań przychodzących do aplikacji funkcji.
Ograniczenia dostępu przychodzącego
Możesz użyć ograniczeń dostępu, aby zdefiniować uporządkowaną priorytetowo listę adresów IP, które są dozwolone lub blokowane dostęp do aplikacji. Lista może zawierać adresy IPv4 i IPv6 lub określone podsieci sieci wirtualnej przy użyciu punktów końcowych usługi. Jeśli lista zawiera co najmniej jeden wpis, na końcu listy istnieje niejawny wpis „odmów wszystkim”. Ograniczenia adresów IP współpracują ze wszystkimi opcjami hostingu funkcji.
Ograniczenia dostępu są dostępne w planie Flex Consumption, Elastic Premium, Consumption i App Service.
Uwaga
Za pomocą ograniczeń sieci można wdrożyć tylko z poziomu sieci wirtualnej lub po wprowadzeniu adresu IP maszyny, której używasz, aby uzyskać dostęp do witryny Azure Portal na liście bezpiecznych adresatów. Jednak nadal można zarządzać funkcją przy użyciu portalu.
Aby dowiedzieć się więcej, zobacz aplikacja systemu Azure Service static access restrictions (Ograniczenia dostępu statycznego usługi aplikacja systemu Azure Service).
Prywatne punkty końcowe
Prywatny punkt końcowy platformy Azure to interfejs sieciowy, który nawiązuje prywatne i bezpieczne połączenie z usługą obsługiwaną przez usługę Azure Private Link. Prywatny punkt końcowy używa prywatnego adresu IP z Twojej sieci wirtualnej, skutecznie przenosząc usługę do sieci wirtualnej.
Możesz użyć prywatnego punktu końcowego dla funkcji hostowanych w planach Premium i App Service .
Jeśli chcesz wykonywać wywołania do prywatnych punktów końcowych, upewnij się, że wyszukiwania DNS są rozpoznawane jako prywatny punkt końcowy. To zachowanie można wymusić na jeden z następujących sposobów:
- Integracja ze strefami prywatnymi usługi Azure DNS. Jeśli sieć wirtualna nie ma niestandardowego serwera DNS, odbywa się to automatycznie.
- Zarządzaj prywatnym punktem końcowym na serwerze DNS używanym przez aplikację. W tym celu należy znać prywatny adres punktu końcowego, a następnie wskazać punkt końcowy, do którego próbujesz uzyskać dostęp do tego adresu przy użyciu rekordu A.
- Skonfiguruj własny serwer DNS, aby przekazywać dalej do stref prywatnych usługi Azure DNS.
Aby dowiedzieć się więcej, zobacz Używanie prywatnych punktów końcowych dla usługi Web Apps.
Aby wywołać inne usługi, które mają połączenie prywatnego punktu końcowego, takie jak magazyn lub magistrala usług, należy skonfigurować aplikację tak, aby wykonywać wywołania wychodzące do prywatnych punktów końcowych. Aby uzyskać więcej informacji na temat używania prywatnych punktów końcowych z kontem magazynu dla aplikacji funkcji, odwiedź stronę Ograniczanie konta magazynu do sieci wirtualnej.
Punkty końcowe usługi
Za pomocą punktów końcowych usługi można ograniczyć wiele usług platformy Azure do wybranych podsieci sieci wirtualnych w celu zapewnienia wyższego poziomu zabezpieczeń. Regionalna integracja sieci wirtualnej umożliwia aplikacji funkcji dostęp do usług platformy Azure zabezpieczonych za pomocą punktów końcowych usługi. Ta konfiguracja jest obsługiwana we wszystkich planach obsługujących integrację sieci wirtualnej. Aby uzyskać dostęp do usługi zabezpieczonej przez punkt końcowy usługi, należy wykonać następujące czynności:
- Skonfiguruj regionalną integrację sieci wirtualnej z aplikacją funkcji, aby nawiązać połączenie z określoną podsiecią.
- Przejdź do usługi docelowej i skonfiguruj punkty końcowe usługi względem podsieci integracji.
Aby dowiedzieć się więcej, zobacz Punkty końcowe usługi dla sieci wirtualnej.
Korzystanie z punktów końcowych usługi
Aby ograniczyć dostęp do określonej podsieci, utwórz regułę ograniczeń z typem sieci wirtualnej. Następnie możesz wybrać subskrypcję, sieć wirtualną i podsieć, do której chcesz zezwolić lub odmówić dostępu.
Jeśli punkty końcowe usługi nie są jeszcze włączone Microsoft.Web
dla wybranej podsieci, są one automatycznie włączone, chyba że zaznaczysz pole wyboru Ignoruj brakujące punkty końcowe usługi Microsoft.Web. Scenariusz, w którym można włączyć punkty końcowe usługi w aplikacji, ale nie podsieć, zależy głównie od tego, czy masz uprawnienia do włączania ich w podsieci.
Jeśli potrzebujesz innej osoby do włączenia punktów końcowych usługi w podsieci, zaznacz pole wyboru Ignoruj brakujące punkty końcowe usługi Microsoft.Web. Aplikacja jest skonfigurowana dla punktów końcowych usługi w oczekiwaniu na ich włączenie w dalszej części podsieci.
Nie można używać punktów końcowych usługi do ograniczania dostępu do aplikacji uruchamianych w środowisku App Service Environment. Gdy aplikacja znajduje się w środowisku App Service Environment, możesz kontrolować dostęp do niej, stosując reguły dostępu do adresów IP.
Aby dowiedzieć się, jak skonfigurować punkty końcowe usługi, zobacz Ustanawianie dostępu do prywatnej lokacji usługi Azure Functions.
Integracja sieci wirtualnej
Integracja z siecią wirtualną umożliwia aplikacji funkcji uzyskiwanie dostępu do zasobów wewnątrz sieci wirtualnej. Usługa Azure Functions obsługuje dwa rodzaje integracji sieci wirtualnej:
- Dedykowane warstwy cenowe obliczeniowe, które obejmują warstwy cenowe Podstawowa, Standardowa, Premium, Premium v2 i Premium w wersji 3.
- Środowisko App Service Environment, które jest wdrażane bezpośrednio w sieci wirtualnej z dedykowaną infrastrukturą pomocniczą i korzysta z warstw cenowych Izolowane i Izolowane w wersji 2.
Funkcja integracji sieci wirtualnej jest używana w warstwach cenowych dedykowanych zasobów obliczeniowych usługi aplikacja systemu Azure Service. Jeśli aplikacja znajduje się w środowisku App Service Environment, znajduje się już w sieci wirtualnej i nie wymaga użycia funkcji integracji sieci wirtualnej w celu uzyskania dostępu do zasobów w tej samej sieci wirtualnej. Aby uzyskać więcej informacji na temat wszystkich funkcji sieciowych, zobacz Funkcje sieciowe usługi App Service.
Integracja z siecią wirtualną zapewnia aplikacji dostęp do zasobów w sieci wirtualnej, ale nie udziela przychodzącego dostępu prywatnego do aplikacji z sieci wirtualnej. Dostęp do lokacji prywatnej odnosi się do udostępniania aplikacji tylko z sieci prywatnej, takiej jak z sieci wirtualnej platformy Azure. Integracja z siecią wirtualną służy tylko do nawiązywania połączeń wychodzących z aplikacji do sieci wirtualnej. Funkcja integracji sieci wirtualnej działa inaczej, gdy jest używana z sieciami wirtualnymi w tym samym regionie i z sieciami wirtualnymi w innych regionach. Funkcja integracji sieci wirtualnej ma dwie odmiany:
- Regionalna integracja sieci wirtualnej: podczas nawiązywania połączenia z sieciami wirtualnymi w tym samym regionie musisz mieć dedykowaną podsieć w sieci wirtualnej, z którą się integrujesz.
- Integracja sieci wirtualnej wymagana przez bramę: jeśli łączysz się bezpośrednio z sieciami wirtualnymi w innych regionach lub z klasyczną siecią wirtualną w tym samym regionie, potrzebujesz bramy usługi Azure Virtual Network utworzonej w docelowej sieci wirtualnej.
Funkcja integracji sieci wirtualnej:
- Wymaga obsługiwanej warstwy cenowej Podstawowa lub Standardowa, Premium, Premium v2, Premium v3 lub Elastic Premium App Service.
- Obsługuje protokoły TCP i UDP.
- Współpracuje z aplikacjami i aplikacjami funkcji usługi App Service.
Istnieje kilka rzeczy, których integracja z siecią wirtualną nie obsługuje, na przykład:
- Instalowanie dysku.
- Przyłączania do domeny usługi Active Directory systemu Windows Server.
- Netbios.
Integracja sieci wirtualnej wymagana przez bramę zapewnia dostęp do zasobów tylko w docelowej sieci wirtualnej lub w sieciach połączonych z docelową siecią wirtualną za pomocą komunikacji równorzędnej lub sieci VPN. Integracja sieci wirtualnej wymagana przez bramę nie umożliwia dostępu do zasobów dostępnych w ramach połączeń usługi Azure ExpressRoute ani pracy z punktami końcowymi usługi.
Niezależnie od używanej wersji integracja sieci wirtualnej zapewnia aplikacji dostęp do zasobów w sieci wirtualnej, ale nie udziela przychodzącego dostępu prywatnego do aplikacji z sieci wirtualnej. Dostęp do lokacji prywatnej odnosi się do udostępniania aplikacji tylko z sieci prywatnej, takiej jak z sieci wirtualnej platformy Azure. Integracja z siecią wirtualną dotyczy tylko wykonywania wywołań wychodzących z aplikacji do sieci wirtualnej.
Integracja sieci wirtualnej w usłudze Azure Functions używa udostępnionej infrastruktury z aplikacjami internetowymi usługi App Service. Aby dowiedzieć się więcej o dwóch typach integracji sieci wirtualnej, zobacz:
Aby dowiedzieć się, jak skonfigurować integrację sieci wirtualnej, zobacz Włączanie integracji z siecią wirtualną.
Włączanie integracji z siecią wirtualną
W aplikacji funkcji w witrynie Azure Portal wybierz pozycję Sieć, a następnie w obszarze Integracja z siecią wirtualną wybierz pozycję Kliknij tutaj, aby skonfigurować.
Wybierz pozycję Dodaj sieć wirtualną.
Lista rozwijana zawiera wszystkie sieci wirtualne usługi Azure Resource Manager w ramach subskrypcji w tym samym regionie. Wybierz sieć wirtualną, z którą chcesz się zintegrować.
Plany Flex Consumption i Elastic Premium usługi Functions obsługują tylko regionalną integrację sieci wirtualnej. Jeśli sieć wirtualna znajduje się w tym samym regionie, utwórz nową podsieć lub wybierz pustą, wstępnie istniejącą podsieć.
Aby wybrać sieć wirtualną w innym regionie, musisz mieć bramę sieci wirtualnej aprowizowaną z włączonym punktem-lokacja. Integracja sieci wirtualnej między regionami jest obsługiwana tylko w przypadku planów dedykowanych, ale globalna komunikacja równorzędna współpracuje z regionalną integracją sieci wirtualnej.
Podczas integracji aplikacja jest uruchamiana ponownie. Po zakończeniu integracji zostaną wyświetlone szczegółowe informacje dotyczące sieci wirtualnej, z którą się integrujesz. Domyślnie opcja Route All jest włączona, a cały ruch jest kierowany do sieci wirtualnej.
Jeśli chcesz, aby tylko ruch prywatny (RFC1918 ruchu) był kierowany, wykonaj kroki opisane w dokumentacji usługi App Service.
Regionalna integracja sieci wirtualnej
Korzystanie z regionalnej integracji sieci wirtualnej umożliwia aplikacji dostęp do:
- Zasoby w tej samej sieci wirtualnej co aplikacja.
- Zasoby w sieciach wirtualnych za pomocą komunikacji równorzędnej z siecią wirtualną, z która aplikacja jest zintegrowana.
- Usługi zabezpieczone przez punkt końcowy usługi.
- Zasoby w ramach połączeń usługi Azure ExpressRoute.
- Zasoby między połączeniami równorzędnym, które obejmują połączenia usługi Azure ExpressRoute.
- Prywatne punkty końcowe
W przypadku korzystania z regionalnej integracji sieci wirtualnej można użyć następujących funkcji sieciowych platformy Azure:
- Sieciowe grupy zabezpieczeń: możesz zablokować ruch wychodzący z sieciową grupą zabezpieczeń umieszczoną w podsieci integracji. Reguły ruchu przychodzącego nie mają zastosowania, ponieważ nie można używać integracji sieci wirtualnej w celu zapewnienia dostępu przychodzącego do aplikacji.
- Tabele tras (UDR): tabelę tras można umieścić w podsieci integracji, aby wysyłać ruch wychodzący, w którym chcesz.
Uwaga
Kierowanie całego ruchu wychodzącego do sieci wirtualnej podlega sieciowej grupie zabezpieczeń i tras zdefiniowanych przez użytkownika, które są stosowane do podsieci integracji. Po zintegrowaniu sieci wirtualnej ruch wychodzący aplikacji funkcji do publicznych adresów IP jest nadal wysyłany z adresów wymienionych we właściwościach aplikacji, chyba że podano trasy kierujące ruch w innym miejscu.
Regionalna integracja sieci wirtualnej nie może używać portu 25.
Plan Flex Consumption:
- Upewnij się, że
Microsoft.App
dostawca zasobów platformy Azure jest włączony dla twojej subskrypcji, postępując zgodnie z tymi instrukcjami. Delegowanie podsieci wymagane przez aplikacje Flex Consumption toMicrosoft.App/environments
. - Delegowanie podsieci wymagane przez aplikacje Flex Consumption to
Microsoft.App/environments
. Jest to zmiana w przypadku usług Elastic Premium i App Service, które mają inne wymagania dotyczące delegowania. - W przypadku jednej aplikacji funkcji można zaplanować użycie 40 adresów IP, nawet jeśli aplikacja będzie skalowana powyżej 40. Jeśli na przykład masz piętnaście aplikacji funkcji Flex Consumption, które będą zintegrowane z tą samą podsiecią, możesz zaplanować 15x40 = 600 adresów IP używanych w większości. Ten limit podlega zmianie i nie jest wymuszany.
- Podsieć nie może być jeszcze używana do innych celów (takich jak prywatne lub punkty końcowe usługi lub delegowane do dowolnego innego planu hostingu lub usługi). Chociaż można współużytkować tę samą podsieć z wieloma aplikacjami Flex Consumption, zasoby sieciowe będą współużytkowane w tych aplikacjach funkcji, co może prowadzić do tego, że jedna aplikacja funkcji wpływa na wydajność innych w tej samej podsieci.
Istnieją pewne ograniczenia dotyczące korzystania z sieci wirtualnej:
- Ta funkcja jest dostępna w wersji Flex Consumption, Elastic Premium oraz App Service Premium V2 i Premium V3. Jest również dostępna w warstwie Standardowa, ale tylko z nowszych wdrożeń usługi App Service. Jeśli korzystasz ze starszego wdrożenia, możesz użyć tej funkcji tylko z planu usługi App Service w wersji Premium w wersji 2. Jeśli chcesz upewnić się, że możesz użyć funkcji w planie usługi App Service w warstwie Standardowa, utwórz aplikację w planie usługi App Service w wersji Premium w wersji 3. Te plany są obsługiwane tylko w przypadku naszych najnowszych wdrożeń. Możesz skalować w dół, jeśli chcesz po tym.
- Podsieć integracji może być używana tylko przez jeden plan usługi App Service.
- Funkcji nie można używać przez aplikacje planu izolowanego, które znajdują się w środowisku App Service Environment.
- Ta funkcja wymaga nieużywanej podsieci będącej /28 lub większą w sieci wirtualnej usługi Azure Resource Manager.
- Aplikacja i sieć wirtualna muszą być w tym samym regionie.
- Nie można usunąć sieci wirtualnej ze zintegrowaną aplikacją. Usuń integrację przed usunięciem sieci wirtualnej.
- Na plan usługi App Service można mieć maksymalnie dwie regionalne integracje sieci wirtualnej. Wiele aplikacji w tym samym planie usługi App Service może używać tej samej podsieci integracji.
- Nie można zmienić subskrypcji aplikacji ani planu, gdy istnieje aplikacja korzystająca z regionalnej integracji sieci wirtualnej.
Podsieci
Integracja sieci wirtualnej zależy od dedykowanej podsieci. Podczas aprowizacji podsieci platformy Azure od początku traci pięć adresów IP. W przypadku planów Elastic Premium i App Service jeden adres jest używany z podsieci integracji dla każdego wystąpienia planu. Podczas skalowania aplikacji do czterech wystąpień są używane cztery adresy. W przypadku aplikacji Flex Consumption nie ma to zastosowania, a wystąpienia współdzielą adresy IP.
W przypadku skalowania w górę lub w dół wymagana przestrzeń adresowa jest dwukrotna przez krótki czas. Ma to wpływ na rzeczywiste, dostępne obsługiwane wystąpienia dla danego rozmiaru podsieci. W poniższej tabeli przedstawiono zarówno maksymalne dostępne adresy na blok CIDR, jak i wpływ na skalę poziomą:
Rozmiar bloku CIDR | Maksymalna liczba dostępnych adresów | Maksymalna skala pozioma (wystąpienia)* |
---|---|---|
/28 | 11 | 5 |
/27 | 27 | 13 |
/26 | 59 | 29 |
*Przyjęto założenie, że w pewnym momencie należy skalować w górę lub w dół rozmiar lub jednostkę SKU.
Ponieważ nie można zmienić rozmiaru podsieci po przypisaniu, użyj podsieci, która jest wystarczająco duża, aby uwzględnić dowolną skalę, jaką może osiągnąć aplikacja. Aby uniknąć problemów z pojemnością podsieci dla planów Elastic Premium usługi Functions, należy użyć /24 z 256 adresami dla systemu Windows i /26 z 64 adresami dla systemu Linux. Podczas tworzenia podsieci w witrynie Azure Portal w ramach integracji z siecią wirtualną wymagany jest minimalny rozmiar /24 i /26 odpowiednio dla systemów Windows i Linux.
Jeśli chcesz, aby aplikacje w innym planie dotarły do sieci wirtualnej, która jest już połączona z aplikacjami w innym planie, wybierz inną podsieć niż używana przez wcześniej istniejącą integrację sieci wirtualnej.
Ta funkcja jest w pełni obsługiwana zarówno w przypadku aplikacji systemu Windows, jak i Linux, w tym kontenerów niestandardowych. Wszystkie zachowania działają tak samo między aplikacjami systemu Windows i aplikacjami systemu Linux.
Sieciowe grupy zabezpieczeń
Sieciowe grupy zabezpieczeń umożliwiają blokowanie ruchu przychodzącego i wychodzącego do zasobów w sieci wirtualnej. Aplikacja korzystająca z regionalnej integracji sieci wirtualnej może używać sieciowej grupy zabezpieczeń do blokowania ruchu wychodzącego do zasobów w sieci wirtualnej lub w Internecie. Aby zablokować ruch do publicznych adresów, musisz mieć integrację sieci wirtualnej z włączoną usługą Route All. Reguły ruchu przychodzącego w sieciowej grupie zabezpieczeń nie mają zastosowania do aplikacji, ponieważ integracja sieci wirtualnej wpływa tylko na ruch wychodzący z aplikacji.
Aby kontrolować ruch przychodzący do aplikacji, użyj funkcji Ograniczenia dostępu. Sieciowa grupa zabezpieczeń zastosowana do podsieci integracji jest w mocy niezależnie od tras zastosowanych do podsieci integracji. Jeśli aplikacja funkcji jest siecią wirtualną zintegrowaną z włączoną usługą Route All i nie masz żadnych tras wpływających na ruch adresów publicznych w podsieci integracji, cały ruch wychodzący nadal podlega sieciowej grupie zabezpieczeń przypisanej do podsieci integracji. Gdy opcja Route All nie jest włączona, sieciowe grupy zabezpieczeń są stosowane tylko do ruchu RFC1918.
Trasy
Tabele tras umożliwiają kierowanie ruchu wychodzącego z aplikacji do niezależnie od tego, gdzie chcesz. Domyślnie tabele tras wpływają tylko na ruch docelowy RFC1918. Po włączeniu opcji Route All będzie miało to wpływ na wszystkie wywołania wychodzące. Gdy opcja Route All jest wyłączona, tylko ruch prywatny (RFC1918) ma wpływ na tabele tras. Trasy ustawione w podsieci integracji nie będą mieć wpływu na odpowiedzi na przychodzące żądania aplikacji. Typowe miejsca docelowe mogą obejmować urządzenia zapory lub bramy.
Jeśli chcesz kierować cały ruch wychodzący lokalnie, możesz użyć tabeli tras do wysyłania całego ruchu wychodzącego do bramy usługi ExpressRoute. W przypadku kierowania ruchu do bramy należy ustawić trasy w sieci zewnętrznej, aby wysyłać odpowiedzi z powrotem.
Trasy protokołu BGP (Border Gateway Protocol) wpływają również na ruch aplikacji. Jeśli masz trasy protokołu BGP z bramy usługi ExpressRoute, będzie to miało wpływ na ruch wychodzący aplikacji. Domyślnie trasy protokołu BGP mają wpływ tylko na ruch docelowy RFC1918. Gdy aplikacja funkcji jest siecią wirtualną zintegrowaną z włączoną funkcją Route All, cały ruch wychodzący może mieć wpływ na trasy protokołu BGP.
Strefy prywatne w usłudze Azure DNS
Po zintegrowaniu aplikacji z siecią wirtualną używa tego samego serwera DNS, z którego skonfigurowano sieć wirtualną i będzie działać ze strefami prywatnymi usługi Azure DNS połączonymi z siecią wirtualną.
Ograniczanie konta magazynu do sieci wirtualnej
Uwaga
Aby szybko wdrożyć aplikację funkcji z włączonymi prywatnymi punktami końcowymi na koncie magazynu, zapoznaj się z następującym szablonem: Aplikacja funkcji z prywatnymi punktami końcowymi usługi Azure Storage.
Podczas tworzenia aplikacji funkcji należy utworzyć lub połączyć się z kontem usługi Azure Storage ogólnego przeznaczenia, które obsługuje usługę Blob, Queue i Table Storage. Możesz zastąpić to konto magazynu jednym zabezpieczonym punktami końcowymi usługi lub prywatnymi punktami końcowymi.
Ta funkcja jest obsługiwana dla wszystkich jednostek SKU obsługiwanych przez sieć wirtualną systemu Windows i Linux w ramach planu dedykowanej usługi (App Service) oraz planów Elastic Premium, a także planu Flex Consumption. Plan Zużycie nie jest obsługiwany. Aby dowiedzieć się, jak skonfigurować funkcję przy użyciu konta magazynu ograniczonego do sieci prywatnej, zobacz Ograniczanie konta magazynu do sieci wirtualnej.
Używanie odwołań do usługi Key Vault
Odwołania do usługi Azure Key Vault umożliwiają używanie wpisów tajnych z usługi Azure Key Vault w aplikacji usługi Azure Functions bez konieczności wprowadzania żadnych zmian w kodzie. Azure Key Vault to usługa zapewniająca scentralizowane zarządzanie kluczami tajnymi, z pełną kontrolą nad zasadami dostępu i historią inspekcji.
Jeśli integracja sieci wirtualnej jest skonfigurowana dla aplikacji, odwołania do usługi Key Vault mogą służyć do pobierania wpisów tajnych z magazynu z ograniczeniami sieci.
Wyzwalacze sieci wirtualnej (inne niż HTTP)
Obecnie można używać funkcji wyzwalacza innego niż HTTP z sieci wirtualnej na jeden z dwóch sposobów:
- Uruchom aplikację funkcji w planie Elastic Premium i włącz obsługę wyzwalacza sieci wirtualnej.
- Uruchom aplikację funkcji w środowisku Flex Consumption, App Service plan lub App Service Environment.
Plan Elastic Premium z wyzwalaczami sieci wirtualnej
Plan Elastic Premium umożliwia tworzenie funkcji wyzwalanych przez usługi w sieci wirtualnej. Te wyzwalacze inne niż HTTP są nazywane wyzwalaczami sieci wirtualnej.
Domyślnie wyzwalacze sieci wirtualnej nie powodują skalowania aplikacji funkcji poza ich wstępnie rozgrzaną liczbą wystąpień. Jednak niektóre rozszerzenia obsługują wyzwalacze sieci wirtualnej, które powodują dynamiczne skalowanie aplikacji funkcji. Możesz włączyć to dynamiczne monitorowanie skalowania w aplikacji funkcji dla obsługiwanych rozszerzeń na jeden z następujących sposobów:
W witrynie Azure Portal przejdź do aplikacji funkcji.
W obszarze Ustawienia wybierz pozycję Konfiguracja, a następnie na karcie Ustawienia środowiska uruchomieniowego funkcji ustaw pozycję Monitorowanie skalowania środowiska uruchomieniowego na Wł.
Wybierz pozycję Zapisz , aby zaktualizować konfigurację aplikacji funkcji i ponownie uruchomić aplikację.
Napiwek
Włączenie monitorowania wyzwalaczy sieci wirtualnej może mieć wpływ na wydajność aplikacji, chociaż ten wpływ może być bardzo mały.
Obsługa dynamicznego monitorowania wyzwalaczy sieci wirtualnej nie jest dostępna w wersji 1.x środowiska uruchomieniowego usługi Functions.
Rozszerzenia w tej tabeli obsługują dynamiczne monitorowanie wyzwalaczy sieci wirtualnej. Aby uzyskać najlepszą wydajność skalowania, należy uaktualnić do wersji, które obsługują również skalowanie na podstawie celu.
Rozszerzenie (minimalna wersja) | Tylko monitorowanie skalowania środowiska uruchomieniowego | Za pomocą skalowania opartego na obiekcie docelowym |
---|---|---|
Microsoft.Azure.WebJobs.Extensions.CosmosDB | > 3.0.5 | > 4.1.0 |
Microsoft.Azure.WebJobs.Extensions.DurableTask | > 2.0.0 | nie dotyczy |
Microsoft.Azure.WebJobs.Extensions.EventHubs | > 4.1.0 | > 5.2.0 |
Microsoft.Azure.WebJobs.Extensions.ServiceBus | > 3.2.0 | > 5.9.0 |
Microsoft.Azure.WebJobs.Extensions.Storage | > 3.0.10 | > 5.1.0* |
* Tylko usługa Queue Storage.
Ważne
Po włączeniu monitorowania wyzwalacza sieci wirtualnej wyzwalacze tylko dla tych rozszerzeń mogą spowodować dynamiczne skalowanie aplikacji. Nadal można używać wyzwalaczy z rozszerzeń, które nie są w tej tabeli, ale nie spowodują skalowania poza ich wstępnie rozgrzaną liczbę wystąpień. Aby uzyskać pełną listę wszystkich rozszerzeń wyzwalacza i powiązań, zobacz Wyzwalacze i powiązania.
Plan usługi App Service i środowisko App Service Environment z wyzwalaczami sieci wirtualnej
Gdy aplikacja funkcji działa w planie usługi App Service lub środowisku App Service Environment, możesz użyć funkcji wyzwalacza innego niż HTTP. Aby funkcje zostały poprawnie wyzwolone, należy połączyć się z siecią wirtualną z dostępem do zasobu zdefiniowanego w połączeniu wyzwalacza.
Załóżmy na przykład, że chcesz skonfigurować usługę Azure Cosmos DB tak, aby akceptowała ruch tylko z sieci wirtualnej. W takim przypadku należy wdrożyć aplikację funkcji w planie usługi App Service, która zapewnia integrację sieci wirtualnej z tą siecią wirtualną. Integracja umożliwia wyzwolenie funkcji przez ten zasób usługi Azure Cosmos DB.
Połączenia hybrydowe
Połączenia hybrydowe to funkcja usługi Azure Relay, której można użyć do uzyskiwania dostępu do zasobów aplikacji w innych sieciach. Zapewnia dostęp z aplikacji do punktu końcowego aplikacji. Nie można jej używać do uzyskiwania dostępu do aplikacji. Połączenia hybrydowe są dostępne dla funkcji uruchamianych w systemie Windows we wszystkich planach zużycie.
Podobnie jak w usłudze Azure Functions, każde połączenie hybrydowe jest skorelowane z jedną kombinacją hosta TCP i portu. Oznacza to, że punkt końcowy połączenia hybrydowego może znajdować się w dowolnym systemie operacyjnym i dowolnej aplikacji, o ile uzyskujesz dostęp do portu nasłuchiwania TCP. Funkcja połączeń hybrydowych nie wie ani nie dba o to, czym jest protokół aplikacji lub do czego uzyskujesz dostęp. Zapewnia tylko dostęp do sieci.
Aby dowiedzieć się więcej, zobacz dokumentację usługi App Service dotyczącą połączeń hybrydowych. Te same kroki konfiguracji obsługują usługę Azure Functions.
Ważne
Połączenia hybrydowe są obsługiwane tylko w planach systemu Windows. System Linux nie jest obsługiwany.
Ograniczenia adresów IP dla ruchu wychodzącego
Ograniczenia adresów IP dla ruchu wychodzącego są dostępne w planie Flex Consumption, elastycznym planie Premium, planie usługi App Service lub środowisku App Service Environment. Ograniczenia ruchu wychodzącego można skonfigurować dla sieci wirtualnej, w której wdrożono środowisko App Service Environment.
Po zintegrowaniu aplikacji funkcji w planie Elastic Premium lub planie usługi App Service z siecią wirtualną aplikacja może domyślnie wykonywać wywołania wychodzące do Internetu. Integrując aplikację funkcji z siecią wirtualną z włączoną funkcją Route All, wymuszasz wysyłanie całego ruchu wychodzącego do sieci wirtualnej, gdzie reguły sieciowej grupy zabezpieczeń mogą służyć do ograniczania ruchu. W przypadku rozwiązania Flex Consumption cały ruch jest już kierowany przez sieć wirtualną, a opcja Route All nie jest wymagana.
Aby dowiedzieć się, jak kontrolować wychodzący adres IP przy użyciu sieci wirtualnej, zobacz Samouczek: kontrolowanie wychodzącego adresu IP usługi Azure Functions przy użyciu bramy translatora adresów sieci wirtualnych platformy Azure.
Automation
Następujące interfejsy API umożliwiają programowe zarządzanie regionalną integracją sieci wirtualnej:
- Interfejs wiersza polecenia platformy Azure: użyj
az functionapp vnet-integration
poleceń, aby dodać, wyświetlić listę lub usunąć regionalną integrację sieci wirtualnej. - Szablony usługi ARM: można włączyć regionalną integrację sieci wirtualnej przy użyciu szablonu usługi Azure Resource Manager. Pełny przykład można znaleźć w tym szablonie szybkiego startu usługi Functions.
Zagadnienia dotyczące testowania
Podczas testowania funkcji w aplikacji funkcji z prywatnymi punktami końcowymi należy przeprowadzić testy z poziomu tej samej sieci wirtualnej, takiej jak na maszynie wirtualnej w tej sieci. Aby użyć opcji Kod i testowanie w portalu z tej maszyny wirtualnej, należy dodać następujące źródła MECHANIZMU CORS do aplikacji funkcji:
https://functions-next.azure.com
https://functions-staging.azure.com
https://functions.azure.com
https://portal.azure.com
Jeśli masz ograniczony dostęp do aplikacji funkcji z prywatnymi punktami końcowymi lub innym ograniczeniem dostępu, musisz również dodać tag AzureCloud
usługi do listy dozwolonych. Aby zaktualizować listę dozwolonych:
Przejdź do aplikacji funkcji i wybierz pozycję Ustawienia>Sieć, a następnie wybierz pozycję Konfiguracja>dostępu przychodzącego Dostęp do sieci publicznej.
Upewnij się, że opcja Dostęp do sieci publicznej ma wartość Włączone z wybranych sieci wirtualnych i adresów IP.
Dodaj regułę w obszarze Dostęp do witryny i reguły:
Wybierz
Service Tag
jako typ ustawień źródła iAzureCloud
jako tag usługi.Upewnij się, że akcja to Zezwalaj i ustaw żądaną nazwę i priorytet.
Rozwiązywanie problemów
Funkcja jest łatwa do skonfigurowania, ale nie oznacza to, że środowisko będzie bezpłatne. Jeśli wystąpią problemy z uzyskiwaniem dostępu do żądanego punktu końcowego, istnieje kilka narzędzi, których można użyć do testowania łączności z konsoli aplikacji. Istnieją dwie konsole, których można użyć. Jedna z nich to konsola Kudu, a druga to konsola w witrynie Azure Portal. Aby uzyskać dostęp do konsoli Kudu z aplikacji, przejdź do pozycji Narzędzia>Kudu. Możesz również uzyskać dostęp do konsoli Kudo pod adresem [sitename].scm.azurewebsites.net. Po załadowaniu witryny internetowej przejdź do karty Konsola debugowania. Aby przejść do konsoli hostowanej w witrynie Azure Portal z poziomu aplikacji, przejdź do konsoli narzędzi>.
Narzędzia
W natywnych aplikacjach systemu Windows narzędzia ping, nslookup i tracert nie będą działać za pośrednictwem konsoli z powodu ograniczeń zabezpieczeń (działają one w niestandardowych kontenerach systemu Windows). Aby wypełnić pustkę, dodawane są dwa oddzielne narzędzia. Aby przetestować funkcje DNS, dodaliśmy narzędzie o nazwie nameresolver.exe. Składnia jest następująca:
nameresolver.exe hostname [optional: DNS Server]
Możesz użyć metody nameresolver, aby sprawdzić nazwy hostów, od których zależy aplikacja. W ten sposób można sprawdzić, czy w systemie DNS nie skonfigurowano niczego błędnie, a może nie masz dostępu do serwera DNS. Serwer DNS używany przez aplikację w konsoli programu można wyświetlić, przeglądając zmienne środowiskowe WEBSITE_DNS_SERVER i WEBSITE_DNS_ALT_SERVER.
Uwaga
Narzędzie nameresolver.exe obecnie nie działa w niestandardowych kontenerach systemu Windows.
Możesz użyć następnego narzędzia, aby przetestować łączność TCP z hostem i kombinacją portów. To narzędzie jest nazywane tcpping , a składnia to:
tcpping.exe hostname [optional: port]
Narzędzie tcpping informuje, czy można uzyskać dostęp do określonego hosta i portu. Może ona pokazać powodzenie tylko wtedy, gdy aplikacja nasłuchuje na hoście i połączeniu portów, a dostęp sieciowy z aplikacji do określonego hosta i portu.
Debugowanie dostępu do zasobów hostowanych w sieci wirtualnej
Wiele rzeczy może uniemożliwić aplikacji dotarcie do określonego hosta i portu. W większości przypadków jest to jedna z następujących rzeczy:
- Zapora jest w ten sposób. Jeśli masz zaporę w taki sposób, przekroczono limit czasu protokołu TCP. Limit czasu protokołu TCP wynosi 21 sekund w tym przypadku. Użyj narzędzia tcpping, aby przetestować łączność. Przekroczenia limitu czasu protokołu TCP mogą być spowodowane przez wiele elementów poza zaporami, ale zacznij tam.
- System DNS nie jest dostępny. Limit czasu DNS wynosi 3 sekundy na serwer DNS. Jeśli masz dwa serwery DNS, limit czasu wynosi 6 sekund. Użyj nazwyresolver, aby sprawdzić, czy system DNS działa. Nie można użyć polecenia nslookup, ponieważ nie używa ona systemu DNS, z którym skonfigurowano sieć wirtualną. Jeśli jest niedostępna, być może zapora lub sieciowa grupa zabezpieczeń blokuje dostęp do systemu DNS lub może być wyłączona.
Jeśli te elementy nie odpowiadają na problemy, najpierw poszukaj takich elementów jak:
Regionalna integracja sieci wirtualnej
- Czy miejsce docelowe jest adresem nienależące do RFC1918 i nie masz włączonej opcji Route All ?
- Czy sieciowa grupa zabezpieczeń blokuje ruch wychodzący z podsieci integracji?
- Jeśli korzystasz z usługi Azure ExpressRoute lub sieci VPN, czy brama lokalna jest skonfigurowana do kierowania ruchu z powrotem na platformę Azure? Jeśli możesz uzyskać dostęp do punktów końcowych w sieci wirtualnej, ale nie lokalnie, sprawdź trasy.
- Czy masz wystarczające uprawnienia, aby ustawić delegowanie w podsieci integracji? Podczas konfiguracji integracji regionalnej sieci wirtualnej podsieć integracji jest delegowana do domeny Microsoft.Web/serverFarms. Interfejs użytkownika integracji sieci wirtualnej deleguje podsieć do aplikacji Microsoft.Web/serverFarms automatycznie. Jeśli Twoje konto nie ma wystarczających uprawnień sieciowych do ustawiania delegowania, musisz mieć osobę, która może ustawić atrybuty w podsieci integracji, aby delegować podsieć. Aby ręcznie delegować podsieć integracji, przejdź do interfejsu użytkownika podsieci usługi Azure Virtual Network i ustaw delegowanie dla aplikacji Microsoft.Web/serverFarms.
Integracja z siecią wirtualną wymaganą przez bramę
- Jest zakresem adresów punkt-lokacja w zakresach RFC 1918 (10.0.0.0-10.255.255.255 / 172.16.16.0.0-172.31.255.255 /192.168.0.0-192.168.255.255)?
- Czy brama jest wyświetlana jako w portalu? Jeśli brama nie działa, wróć do niej.
- Czy certyfikaty są wyświetlane jako zsynchronizowane, czy podejrzewasz, że konfiguracja sieci została zmieniona? Jeśli certyfikaty nie są zsynchronizowane lub podejrzewasz, że wprowadzono zmianę w konfiguracji sieci wirtualnej, która nie została zsynchronizowana z usługami ASPs, wybierz pozycję Synchronizuj sieć.
- Jeśli korzystasz z sieci VPN, czy brama lokalna jest skonfigurowana do kierowania ruchu z powrotem na platformę Azure? Jeśli możesz uzyskać dostęp do punktów końcowych w sieci wirtualnej, ale nie lokalnie, sprawdź trasy.
- Czy próbujesz użyć bramy współistnienia, która obsługuje zarówno punkt-lokacja, jak i usługę ExpressRoute? Bramy współistnienia nie są obsługiwane z integracją sieci wirtualnej.
Debugowanie problemów z siecią jest wyzwaniem, ponieważ nie można zobaczyć, co blokuje dostęp do konkretnej kombinacji host:port. Niektóre przyczyny to:
- Masz zaporę na hoście, która uniemożliwia dostęp do portu aplikacji z zakresu adresów IP punkt-lokacja. Przekraczanie podsieci często wymaga dostępu publicznego.
- Host docelowy nie działa.
- Aplikacja nie działa.
- Wystąpił nieprawidłowy adres IP lub nazwa hosta.
- Aplikacja nasłuchuje na innym porcie niż oczekiwano. Identyfikator procesu można dopasować do portu nasłuchiwania przy użyciu polecenia "netstat -aon" na hoście punktu końcowego.
- Sieciowe grupy zabezpieczeń są konfigurowane w taki sposób, aby uniemożliwiły dostęp do hosta aplikacji i portu z zakresu adresów IP punkt-lokacja.
Nie wiesz, jakiego adresu używa aplikacja. Może to być dowolny adres w podsieci integracji lub zakres adresów punkt-lokacja, więc musisz zezwolić na dostęp z całego zakresu adresów.
Więcej kroków debugowania obejmuje:
- Połącz się z maszyną wirtualną w sieci wirtualnej i spróbuj nawiązać połączenie z hostem zasobu:portem. Aby przetestować dostęp do protokołu TCP, użyj polecenia programu PowerShell Test-NetConnection. Składnia jest następująca:
Test-NetConnection hostname [optional: -Port]
- Utwórz aplikację na maszynie wirtualnej i przetestuj dostęp do tego hosta i portu z konsoli aplikacji przy użyciu protokołu tcpping.
Zasoby lokalne
Jeśli aplikacja nie może uzyskać dostępu do zasobu lokalnego, sprawdź, czy możesz uzyskać dostęp do zasobu z sieci wirtualnej. Użyj polecenia Test-NetConnection programu PowerShell, aby sprawdzić dostęp do protokołu TCP. Jeśli maszyna wirtualna nie może nawiązać połączenia z zasobem lokalnym, połączenie sieci VPN lub usługi ExpressRoute może nie zostać prawidłowo skonfigurowane.
Jeśli maszyna wirtualna hostowana w sieci wirtualnej może nawiązać dostęp do systemu lokalnego, ale aplikacja nie może, przyczyna jest prawdopodobnie jedną z następujących przyczyn:
- Trasy nie są skonfigurowane z podsiecią ani zakresami adresów punkt-lokacja w bramie lokalnej.
- Sieciowe grupy zabezpieczeń blokują dostęp dla zakresu adresów IP punkt-lokacja.
- Zapory lokalne blokują ruch z zakresu adresów IP punkt-lokacja.
- Próbujesz uzyskać adres inny niż RFC 1918 przy użyciu funkcji integracji z siecią wirtualną w regionie.
Usuwanie planu usługi App Service lub aplikacji internetowej przed odłączeniem integracji z siecią wirtualną
Jeśli aplikacja internetowa lub plan usługi App Service została usunięta bez uprzedniego rozłączenia integracji z siecią wirtualną, nie będzie można wykonać żadnych operacji aktualizacji/usuwania w sieci wirtualnej lub podsieci, która została użyta do integracji z usuniętym zasobem. Delegowanie podsieci "Microsoft.Web/serverFarms" pozostanie przypisane do podsieci i uniemożliwi operacje aktualizacji/usuwania.
Aby ponownie zaktualizować/usunąć podsieć lub sieć wirtualną, należy ponownie utworzyć integrację z siecią wirtualną, a następnie odłączyć ją:
- Utwórz ponownie plan usługi App Service i aplikację internetową (należy używać dokładnie tej samej nazwy aplikacji internetowej co poprzednio).
- Przejdź do bloku "Sieć" w aplikacji internetowej i skonfiguruj integrację z siecią wirtualną.
- Po skonfigurowaniu integracji z siecią wirtualną wybierz przycisk "Rozłącz".
- Usuń plan usługi App Service lub aplikację internetową.
- Zaktualizuj/usuń podsieć lub sieć wirtualną.
Jeśli po wykonaniu powyższych kroków nadal występują problemy z integracją z siecią wirtualną, skontaktuj się z pomoc techniczna firmy Microsoft.
Narzędzie do rozwiązywania problemów z siecią
Możesz również użyć narzędzia do rozwiązywania problemów z siecią, aby rozwiązać problemy z połączeniem. Aby otworzyć narzędzie do rozwiązywania problemów z siecią, przejdź do aplikacji w witrynie Azure Portal. Wybierz pozycję Diagnostyka i rozwiąż problem, a następnie wyszukaj narzędzie do rozwiązywania problemów z siecią.
Problemy z połączeniem — sprawdza stan integracji sieci wirtualnej, w tym sprawdzanie, czy prywatny adres IP został przypisany do wszystkich wystąpień planu i ustawień DNS. Jeśli niestandardowy system DNS nie jest skonfigurowany, zostanie zastosowana domyślna usługa Azure DNS. Narzędzie do rozwiązywania problemów sprawdza również typowe zależności aplikacji funkcji, w tym łączność z usługą Azure Storage i innymi zależnościami powiązania.
Problemy z konfiguracją — to narzędzie do rozwiązywania problemów sprawdza, czy podsieć jest prawidłowa dla integracji sieci wirtualnej.
Problem z usuwaniem podsieci/sieci wirtualnej — to narzędzie do rozwiązywania problemów sprawdza, czy podsieć ma jakiekolwiek blokady i czy ma nieużywane łącza skojarzenia usługi, które mogą blokować usunięcie sieci wirtualnej/podsieci.
Następne kroki
Aby dowiedzieć się więcej na temat sieci i usługi Azure Functions:
- Postępuj zgodnie z samouczkiem dotyczącym rozpoczynania pracy z integracją z siecią wirtualną
- Przeczytaj często zadawane pytania dotyczące sieci usługi Functions
- Dowiedz się więcej o integracji sieci wirtualnej z usługą App Service/Functions
- Dowiedz się więcej o sieciach wirtualnych na platformie Azure
- Włączanie większej liczby funkcji sieciowych i kontroli za pomocą środowisk App Service Environment
- Nawiązywanie połączenia z poszczególnymi zasobami lokalnymi bez zmian zapory przy użyciu połączeń hybrydowych