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 model hostingu skalowalny do zera i zapewnia model hostingu płatności bez opłat za korzystanie z usługi . 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 kubctl ) |
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. |
- 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ń.
- 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.
- Aby uzyskać szczegółowe limity dla różnych opcji planu usługi App Service, zobacz Limity planu usługi App Service.
- Parzystość funkcji to cel zintegrowanego hostingu w usłudze Azure Container Apps.
- 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.
- Gdy minimalna liczba replik jest ustawiona na zero, domyślny limit czasu zależy od określonych wyzwalaczy używanych w aplikacji.
- 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.
- 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) |