Udostępnij za pośrednictwem


Obsługa kontenerów systemu Linux w usłudze Azure Functions

Podczas planowania i opracowywania poszczególnych funkcji do uruchamiania w usłudze Azure Functions zwykle koncentrujesz się na samym kodzie. Usługa Azure Functions ułatwia wdrażanie tylko projektu kodu w aplikacji funkcji na platformie Azure. Podczas wdrażania projektu kodu w aplikacji funkcji działającej w systemie Linux projekt jest uruchamiany w kontenerze utworzonym automatycznie. Ten kontener jest zarządzany przez usługę Functions.

Funkcje obsługują również wdrożenia aplikacji funkcji konteneryzowanych. W przypadku wdrożenia konteneryzowanego utworzysz własne wystąpienie aplikacji funkcji w lokalnym kontenerze platformy Docker na podstawie obsługiwanego obrazu. Następnie możesz wdrożyć tę konteneryzowaną aplikację funkcji w środowisku hostingu na platformie Azure. Tworzenie własnego kontenera aplikacji funkcji umożliwia dostosowanie lub kontrolowanie natychmiastowego środowiska uruchomieniowego kodu funkcji.

Ważne

Podczas tworzenia własnych kontenerów należy zachować obraz podstawowy kontenera zaktualizowany do najnowszego obsługiwanego obrazu podstawowego. Obsługiwane obrazy podstawowe dla usługi Azure Functions są specyficzne dla języka i znajdują się w repozytoriach obrazów podstawowych usługi Azure Functions.

Zespół usługi Functions zobowiązuje się do publikowania comiesięcznych aktualizacji dla tych obrazów podstawowych. Regularne aktualizacje obejmują najnowsze aktualizacje wersji pomocniczej i poprawki zabezpieczeń dla środowiska uruchomieniowego i języków usługi Functions. Należy regularnie aktualizować kontener z najnowszego obrazu podstawowego i ponownie wdrożyć zaktualizowaną wersję kontenera.

Opcje hostingu kontenerów

Istnieje kilka opcji hostowania konteneryzowanych aplikacji funkcji na platformie Azure:

Opcja hostingu Świadczenia
Azure Container Apps Usługa Azure Functions zapewnia zintegrowaną obsługę tworzenia, wdrażania i zarządzania konteneryzowanymi aplikacjami funkcji w usłudze Azure Container Apps. Umożliwia to zarządzanie aplikacjami przy użyciu tych samych narzędzi i stron usługi Functions w witrynie Azure Portal. Usługa Azure Container Apps umożliwia hostowanie kontenerów aplikacji funkcji, gdy musisz uruchamiać funkcje sterowane zdarzeniami na platformie Azure w tym samym środowisku co inne mikrousługi, interfejsy API, witryny internetowe, przepływy pracy lub dowolne programy hostowane w kontenerze. Hosting usługi Container Apps umożliwia uruchamianie funkcji w zarządzanym środowisku opartym na platformie Kubernetes z wbudowaną obsługą monitorowania typu open source, mTLS, Dapr i KEDA. Obsługuje skalowanie do zera i zapewnia bezserwerowy model hostingu z płatnością zgodnie z rzeczywistym użyciem. Możesz również zażądać dedykowanego sprzętu, nawet procesorów GPU, przy użyciu profilów obciążeń. Zalecana opcja hostingu dla uruchamiania konteneryzowanych aplikacji funkcji na platformie Azure.
Klastry Kubernetes z obsługą usługi Azure Arc (wersja zapoznawcza) Aplikacje funkcji można hostować w klastrach Kubernetes z włączoną usługą Azure Arc jako wdrożenie tylko do kodu lub w niestandardowym kontenerze systemu Linux. Usługa Azure Arc umożliwia dołączanie klastrów Kubernetes w celu zarządzania nimi i konfigurowania ich na platformie Azure. Hostowanie kontenerów usługi Azure Functions w klastrach Kubernetes z obsługą usługi Azure Arc jest obecnie dostępne w wersji zapoznawczej.
Azure Functions Aplikacje funkcji konteneryzowanych można hostować w usłudze Azure Functions, uruchamiając kontener w ramach planu Elastic Premium lub dedykowanego planu. Hosting planu Premium zapewnia korzyści wynikające ze skalowania dynamicznego. Możesz użyć hostingu planu dedykowanego, aby skorzystać z istniejących nieużywanych zasobów planu usługi App Service.
Kubernetes Ponieważ środowisko uruchomieniowe usługi Azure Functions zapewnia elastyczność hostingu, gdzie i w jaki sposób chcesz, możesz hostować kontenery aplikacji funkcji i zarządzać nimi bezpośrednio w klastrach Kubernetes. KEDA (oparte na platformie Kubernetes autoskalowanie oparte na zdarzeniach) bezproblemowo współpracuje ze środowiskiem uruchomieniowym i narzędziami usługi Azure Functions, aby zapewnić skalowanie sterowane zdarzeniami na platformie Kubernetes. Pamiętaj tylko, że uruchamianie konteneryzowanych aplikacji funkcji na platformie Kubernetes przy użyciu usługi KEDA lub bezpośredniego wdrażania jest nakładem pracy typu open source, który można bezpłatnie wykorzystać, zapewniając najlepszą pomoc techniczną zapewnianą przez współautorów i społeczność. Odpowiadasz za obsługę własnych kontenerów aplikacji funkcji w klastrze, nawet podczas wdrażania w usłudze Azure Kubernetes Service (AKS).

Porównanie obsługi funkcji

Stopień, w jakim różne funkcje i zachowania usługi Azure Functions są obsługiwane podczas uruchamiania aplikacji funkcji w kontenerze, zależy od wybranej opcji hostingu kontenerów.

Funkcja/zachowanie Container Apps (zintegrowane) Container Apps (bezpośrednie) Plan Premium Dedykowany plan Kubernetes
Pomoc techniczna dotycząca produktów Tak Nie Tak Tak Nie.
Integracja portalu usługi Functions Tak Nie Tak Tak Nie
Skalowanie sterowane zdarzeniami Tak5 Tak (reguły skalowania) Tak Nie. Nie.
Maksymalna skala (wystąpienia) 10001  10001  1002  10-303  Różni się w zależności od klastra
Skalowanie do zera wystąpień Tak Tak Nie Nie. KEDA
Limit czasu wykonywania Bez ruchu6 Bez ruchu6 Bez ruchu7 Bez ruchu8 Żaden
Wdrażanie podstawowych narzędzi func azurecontainerapps Nie Nie. Nie. func kubernetes 
Poprawki Nie Tak Nie Nie Nie
Miejsca wdrożenia  Nie Nie Tak Tak Nie
Dzienniki przesyłania strumieniowego  Tak Tak  Tak Tak Nie
Dostęp do konsoli  Obecnie niedostępne4  Tak Tak (przy użyciu kudu) Tak (przy użyciu kudu) Tak (w zasobnikach przy użyciu polecenia kubectl)
Ograniczenie ryzyka zimnego startu Minimalna liczba replik Reguły skalowania  Zawsze gotowe/wstępnie rozgrzane wystąpienia  nie dotyczy N/a
Uwierzytelnianie usługi App Service  Obecnie niedostępne4  Tak Tak Tak Nie
Niestandardowe nazwy domen  Obecnie niedostępne4  Tak Tak Tak Nie
Certyfikaty kluczy prywatnych  Obecnie niedostępne4  Tak Tak Tak Nie
Sieci wirtualne Tak Tak Tak Tak Tak
Strefy dostępności Tak Tak Tak Tak Tak
Diagnostyka Obecnie niedostępne4  Tak Tak  Tak  Nie
Dedykowany sprzęt Tak (profile obciążeń) Tak (profile obciążeń) Nie Tak Tak
Dedykowane procesory GPU Tak (profile obciążeń) Tak (profile obciążeń) Nie Nie. Tak
Konfigurowalna liczba pamięci/procesora CPU Tak Tak Nie. Nie Tak
Opcja "Bezpłatna przyznawanie" Tak Tak Nie. Nie. Nie.
Szczegóły cennika Rozliczenia usługi Container Apps Rozliczenia usługi Container Apps Rozliczenia planu Premium Rozliczenia planu dedykowanego Cennik usługi AKS
Wymagania dotyczące nazwy usługi 2–32 znaki: ograniczone do małych liter, cyfr i łączników. Musi zaczynać się literą i kończyć znakiem alfanumerycznym. 2–32 znaki: ograniczone do małych liter, cyfr i łączników. Musi zaczynać się literą i kończyć znakiem alfanumerycznym. Mniej niż 64 znaki: ograniczone do znaków alfanumerycznych i łączników. Nie można zaczynać od łącznika ani kończyć się łącznikiem. Mniej niż 64 znaki: ograniczone do znaków alfanumerycznych i łączników. Nie można zaczynać od łącznika ani kończyć się łącznikiem. Mniej niż 253 znaki: ograniczone do znaków alfanumerycznych i łączników. Musi zaczynać się i kończyć znakiem alfanumerycznym.
  1. W usłudze Container Apps wartość domyślna to 10 wystąpień, ale można ustawić maksymalną liczbę replik, która ma maksymalnie 1000 wystąpień. To ustawienie jest uznawane tak długo, jak jest dostępny wystarczający limit przydziału rdzeni. Podczas tworzenia aplikacji funkcji w witrynie Azure Portal masz ograniczenie do 300 wystąpień.
  2. W niektórych regionach aplikacje systemu Linux w planie Premium mogą być skalowane do 100 wystąpień. Aby uzyskać więcej informacji, zobacz artykuł Dotyczący planu Premium.
  3. Aby uzyskać szczegółowe limity dla różnych opcji planu usługi App Service, zobacz Limity planu usługi App Service.
  4. Parzystość funkcji to cel zintegrowanego hostingu w usłudze Azure Container Apps.
  5. Wymaga KEDA; obsługiwane przez większość wyzwalaczy. Aby dowiedzieć się, które wyzwalacze obsługują skalowanie sterowane zdarzeniami, zobacz Zagadnienia dotyczące hostingu usługi Container Apps.
  6. Gdy minimalna liczba replik jest ustawiona na zero, domyślny limit czasu zależy od określonych wyzwalaczy używanych w aplikacji.
  7. Nie jest wymuszany maksymalny czas trwania limitu czasu wykonywania. Jednak okres prolongaty dla wykonywania funkcji wynosi 60 minut w czasie skalowania, a okres prolongaty 10 minut jest podawany podczas aktualizacji platformy.
  8. Wymaga ustawienia planu usługi App Service na zawsze włączone. Okres prolongaty 10 minut jest podawany podczas aktualizacji platformy.

Wprowadzenie

Skorzystaj z tych linków, aby rozpocząć pracę z usługą Azure Functions w kontenerach systemu Linux:

Chcę... Zobacz artykuł:
Tworzenie moich pierwszych funkcji konteneryzowanych Tworzenie aplikacji funkcji w lokalnym kontenerze systemu Linux
Tworzenie i wdrażanie funkcji w usłudze Azure Container Apps Tworzenie pierwszych konteneryzowanych funkcji w usłudze Azure Container Apps
Tworzenie i wdrażanie funkcji konteneryzowanych w usłudze Azure Functions Tworzenie pierwszej konteneryzowanej usługi Azure Functions
Tworzenie i wdrażanie funkcji na platformie Kubernetes z obsługą usługi Azure Arc Tworzenie pierwszej konteneryzowanej usługi Azure Functions w usłudze Azure Arc (wersja zapoznawcza)