Opcje sieciowe usługi Azure Functions
W tym artykule opisano funkcje sieciowe dostępne w opcjach hostingu dla usługi Azure Functions. Poniższe opcje sieciowe można podzielić na funkcje sieciowe dla ruchu przychodzącego i wychodzącego. Funkcje ruchu przychodzącego umożliwiają ograniczenie dostępu do aplikacji, natomiast funkcje ruchu wychodzącego umożliwiają łączenie aplikacji z zasobami zabezpieczonymi przez sieć wirtualną i kontrolowanie sposobu kierowania ruchu wychodzącego.
Modele hostingu mają różne poziomy izolacji sieci. Wybranie prawidłowego rozwiązania pomaga spełnić wymagania dotyczące izolacji sieci.
Funkcja | Plan Flex Consumption | Plan zużycia | Plan Premium | Środowiska ASE dedykowanego planu/ | Container Apps1 |
---|---|---|---|---|---|
Ograniczenia przychodzącego adresu IP | ✔ | ✔ | ✔ | ✔ | ✔ |
Przychodzące prywatne punkty końcowe | ✔ | ✔ | ✔ | ||
Integracja sieci wirtualnej | ✔ | ✔cyfra arabska | ✔3 | ✔ | |
Ograniczenia adresów IP dla ruchu wychodzącego | ✔ | ✔ | ✔ | ✔ |
- Aby uzyskać więcej informacji, zobacz Networking in Azure Container Apps environment (Sieć w środowisku usługi Azure Container Apps).
- Podczas pracy z wyzwalaczami sieci wirtualnej należy wziąć pod uwagę szczególną uwagę.
- Tylko plan dedykowanego/środowiska ASE obsługuje integrację z siecią wirtualną wymaganą przez bramę.
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 Flex Consumption, Elastic Premium i Dedicated (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ę. Aby zarządzać prywatnym punktem końcowym, musisz znać adres punktu końcowego i użyć rekordu A, aby odwołać się do punktu końcowego, do którego próbujesz uzyskać dostęp.
- 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. Wykonaj następujące kroki, aby uzyskać dostęp do zabezpieczonego punktu końcowego usługi:
- 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, które można włączyć później w 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.
Funkcje sieci wychodzącej
Za pomocą funkcji w tej sekcji możesz zarządzać połączeniami wychodzącymi wykonanymi przez aplikację.
Integracja sieci wirtualnej
W tej sekcji szczegółowo poznać funkcje obsługiwane przez usługę Functions w celu kontrolowania ruchu wychodzącego danych z aplikacji.
Integracja z siecią wirtualną zapewnia aplikacji funkcji dostęp do zasobów w sieci wirtualnej. Po zintegrowaniu aplikacja kieruje ruch wychodzący przez sieć wirtualną. Dzięki temu aplikacja może uzyskiwać dostęp do prywatnych punktów końcowych lub zasobów przy użyciu reguł zezwalających na ruch tylko z wybranych podsieci. Gdy miejsce docelowe jest adresem IP poza siecią wirtualną, źródłowy adres IP będzie nadal wysyłany z jednego z adresów wymienionych we właściwościach aplikacji, chyba że skonfigurowano bramę translatora adresów sieciowych.
Usługa Azure Functions obsługuje dwa rodzaje integracji sieci wirtualnej:
- Regionalna integracja sieci wirtualnej dla aplikacji działających w planach hostingu Flex Consumption, Elastic Premium, Dedicated (App Service) i Container Apps (zalecane)
- Integracja sieci wirtualnej wymagana przez bramę dla aplikacji uruchomionych w ramach dedykowanego planu hostingu (App Service)
Aby dowiedzieć się, jak skonfigurować integrację sieci wirtualnej, zobacz Włączanie integracji z siecią wirtualną.
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.
Zagadnienia dotyczące planu 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. Jest to wymagane w przypadku delegowania podsieci. - Delegowanie podsieci wymagane podczas uruchamiania w planie Flex Consumption to
Microsoft.App/environments
. Różni się to od planów Elastic Premium i Dedicated (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 15 aplikacji funkcji Flex Consumption, które są zintegrowane w tej samej podsieci, musisz 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żesz współużytkować tę samą podsieć z wieloma aplikacjami Flex Consumption, zasoby sieciowe są współużytkowane przez te aplikacje funkcji, co może prowadzić do wpływu na wydajność innych aplikacji w tej samej podsieci.
Zagadnienia dotyczące planów Elastic Premium, Dedicated (App Service) i Container Apps :
- Ta funkcja jest dostępna dla usług Elastic Premium i 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.
- Funkcji nie można używać przez aplikacje planu izolowanego, które znajdują się w środowisku App Service Environment.
- Aplikacja i sieć wirtualna muszą być w tym samym regionie.
- Ta funkcja wymaga nieużywanej podsieci będącej /28 lub większą w sieci wirtualnej usługi Azure Resource Manager.
- Podsieć integracji może być używana tylko przez jeden plan usługi App Service.
- 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 usunąć sieci wirtualnej ze zintegrowaną aplikacją. Usuń integrację przed usunięciem sieci wirtualnej.
- Nie można zmienić subskrypcji aplikacji ani planu, gdy istnieje aplikacja korzystająca z regionalnej integracji sieci wirtualnej.
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 hostingu Flex Consumption i Elastic Premium 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 współ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 wolisz mieć tylko ruch prywatny (RFC1918 ) kierowany, wykonaj kroki opisane w tym artykule usługi App Service.
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 planach Elastic Premium i Dedicated (App Service) wymagana przestrzeń adresowa jest dwukrotnie podwoina przez krótki czas podczas skalowania w górę lub w dół w rozmiarze wystąpienia. 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.
Plan Flex Consumption umożliwia integrację wielu aplikacji w planie Flex Consumption z tą samą podsiecią. Nie dotyczy to planów hostingu Elastic Premium i Dedicated (App Service). Plany te umożliwiają tylko połączenie dwóch sieci wirtualnych z każdym planem usługi App Service. Wiele aplikacji z jednego planu usługi App Service może dołączyć do tej samej podsieci, ale aplikacje z innego planu nie mogą używać tej samej podsieci.
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ą kontrolowanie ruchu między zasobami w sieci wirtualnej. Możesz na przykład utworzyć regułę zabezpieczeń, która blokuje ruch wychodzący aplikacji z dotarcia do zasobu w sieci wirtualnej lub opuszczania sieci. Te reguły zabezpieczeń dotyczą aplikacji, które skonfigurowały integrację sieci wirtualnej. Aby zablokować ruch do adresów publicznych, musisz mieć włączoną integrację sieci wirtualnej i opcję 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.
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 potrzebna.
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.
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ą.
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.
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 wtedy, gdy aplikacja funkcji działa w systemie Windows. Aplikacje systemu Linux nie są obsługiwane.
Nawiązywanie połączenia z usługami platformy Azure za pośrednictwem sieci wirtualnej
Integracja z siecią wirtualną umożliwia aplikacji funkcji uzyskiwanie dostępu do zasobów w sieci wirtualnej. W tej sekcji omówiono zagadnienia, które należy wziąć pod uwagę podczas próby połączenia aplikacji z niektórymi usługami.
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.
Możesz użyć konta magazynu z ograniczeniami sieci z aplikacjami funkcji w planach Flex Consumption, Elastic Premium i Dedicated (App Service). plan zużycie nie jest obsługiwany. W przypadku planów Elastic Premium i Dedicated należy upewnić się, że skonfigurowano routing udziału zawartości prywatnej. Aby dowiedzieć się, jak skonfigurować aplikację funkcji przy użyciu konta magazynu zabezpieczonego za pomocą sieci wirtualnej, 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)
Obciążenie może wymagać wyzwolenia aplikacji ze źródła zdarzeń chronionego przez sieć wirtualną. Istnieją dwie opcje, jeśli aplikacja ma być dynamicznie skalowana na podstawie liczby zdarzeń odebranych ze źródeł wyzwalaczy innych niż HTTP:
- Uruchom aplikację funkcji w środowisku Flex Consumption.
- Uruchom aplikację funkcji w planie Elastic Premium i włącz obsługę wyzwalacza sieci wirtualnej.
Aplikacje funkcji działające w planach dedykowanej usługi (App Service) nie są dynamicznie skalowane na podstawie zdarzeń. Zamiast tego skalowanie w poziomie jest dyktowane przez zdefiniowane reguły autoskalowania .
Plan Elastic Premium z wyzwalaczami sieci wirtualnej
Plan Elastic Premium umożliwia tworzenie funkcji wyzwalanych przez usługi zabezpieczone przez sieć wirtualną. Te wyzwalacze inne niż HTTP są nazywane wyzwalaczami sieci wirtualnej.
Domyślnie wyzwalacze sieci wirtualnej nie powodują, że aplikacja funkcji będzie skalować poza ich wcześniejszą 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 napisać funkcje wyzwalane przez zasoby zabezpieczone przez sieć wirtualną. Aby funkcje zostały poprawnie wyzwolone, aplikacja musi być połączona 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.
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