Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Planując i rozwijając swoje funkcje do działania w Azure Functions, skup się na samym kodzie. Usługa Azure Functions ułatwia wdrażanie samego projektu kodu w aplikacji funkcji w Azure. Gdy wdrażasz swój projekt do aplikacji Function na Linuksie, Twój kod działa automatycznie w kontenerze, który Azure Functions tworzy dla Ciebie. Ten kontener bezproblemowo integruje się z narzędziami zarządzania funkcjami.
Funkcje obsługują również wdrożenia aplikacji funkcji konteneryzowanych. W wdrożeniu kontenerowym tworzysz własną instancję aplikacji funkcjonalnej w lokalnym kontenerze Dockera z obsługiwanego obrazu bazowego. 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.
Important
Podczas tworzenia własnych kontenerów musisz dbać o aktualizację podstawowego obrazu kontenera do najnowszej obsługiwanej wersji. Obsługiwane obrazy podstawowe dla usługi Azure Functions są specyficzne dla języka. Zobacz repozytoria obrazów podstawowych usługi Azure Functions.
Zespół Functions zobowiązuje się do publikowania comiesięcznych aktualizacji 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. Aby uzyskać więcej informacji, zobacz Obsługa kontenerów niestandardowych.
Opcje hostingu kontenerów
Tip
Dla większości obciążeń kontenerowych hostuj swoje aplikacje funkcjonalne w Azure Container Apps. Container Apps zapewnia w pełni zarządzane, bezserwerowe środowisko oparte na Kubernetes z wbudowanym skalowaniem zdarzeniowym, skalowaniem do zera oraz obsługą GPU. Aby zacząć, zobacz Azure Functions on Azure Container Apps.
Masz kilka opcji hostowania swoich konteneryzowanych aplikacji funkcjonalnych w Azure:
| Opcja hostingu | Benefits |
|---|---|
| Azure Container Apps (Recommended) | Azure Container Apps hostuje i zarządza natywnie kontenerami aplikacji funkcyjnych, korzystając z dostawcy Microsoft.App zasobów. Uruchom swoje funkcje w w pełni zarządzanym, bezserwerowym środowisku opartym na Kubernetes z wbudowanym wsparciem dla monitorowania open-source, mTLS, Dapr i KEDA. Obsługuje rozliczenia skalowalne do zera, serwerowe i zapłać za to, co używasz, dedykowany sprzęt oraz GPU poprzez profile obciążenia. Korzystasz z tego samego modelu programowania Functions i wyzwalaczy, jednocześnie zyskując pełny zestaw funkcji aplikacji kontenerowych.
Zalecana opcja hostingu dla konteneryzowanych aplikacji funkcjonalnych w Azure. |
| Azure Container Apps (legacy) | Azure Functions zapewnia zintegrowane wsparcie dla wdrażania konteneryzowanych aplikacji funkcjonalnych do środowiska Container Apps za pomocą Microsoft.Web dostawcy zasobów. Chociaż obecnie jest wspierana, ta opcja jest planowana na przyszłe wycofanie. W przypadku nowych obciążeń skorzystaj z polecanej opcji hostingu Container Apps. |
| Azure Functions | Aplikacje funkcji konteneryzowanych można hostować w usłudze Azure Functions, uruchamiając kontener w ramach planu Elastic Premium lub App Service (dedykowane). 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. Ważny: Platforma Kubernetes hostująca aplikacje funkcji konteneryzowanych za pomocą usługi KEDA lub wdrożenia bezpośredniego to nakład pracy typu open source, który można bezpłatnie wykorzystać. Najlepsze wsparcie dla tego scenariusza hostingu jest zapewniane tylko przez współautorów i przez społeczność. Jesteś odpowiedzialny za utrzymanie swoich kontenerów aplikacji funkcji w klastrze, nawet gdy wdrażasz je w usłudze Azure Kubernetes Service (AKS). |
Porównanie wsparcia 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.
| Feature/behavior | Aplikacje kontenerowe (zalecane) | Container Apps (legacy)1 | Plan Premium | Dedykowany plan | Kubernetes |
|---|---|---|---|---|---|
| Pomoc techniczna dotycząca produktów | Yes | Yes | Yes | Yes | No |
| Integracja portalu funkcji | Yes | No | Yes | Yes | No |
| Skalowanie sterowane zdarzeniami | Tak (reguły skalowania) | Yes5 | Yes | No | No |
| Maksymalna skala (wystąpienia) | 10002 | 10002 | 1003 | 10-304 | Różni się w zależności od klastra |
| Skalowanie do zera wystąpień | Yes | Yes | No | No | KEDA |
| Limit czasu wykonania | Unbounded6 | Unbounded6 | Unbounded7 | Unbounded8 | Żadne |
| Wdrażanie podstawowych narzędzi | No | No | No | No | func kubernetes |
| Revisions | Yes | Yes | No | No | No |
| Miejsca wdrożenia | No | No | Yes | Yes | No |
| Dzienniki przesyłania strumieniowego | Yes | Yes | Yes | Yes | No |
| Dostęp do konsoli | Yes | Yes | Tak (używając Kudu) | Tak (używając Kudu) | Tak (w zasobnikach przy użyciu kubectl) |
| Ograniczenie ryzyka zimnego startu | Reguły skalowania | Minimalna liczba replik | Zawsze gotowe/wstępnie rozgrzane instancje | n/a | n/a |
| Uwierzytelnianie usługi App Service | Yes | Yes | Yes | Yes | No |
| Niestandardowe nazwy domen | Yes | Yes | Yes | Yes | No |
| Certyfikaty kluczy prywatnych | Yes | Yes | Yes | Yes | No |
| Sieci wirtualne | Yes | Yes | Yes | Yes | Yes |
| Strefy dostępności | Yes | Yes | Yes | Yes | Yes |
| Diagnostics | Yes | Yes | Yes | Yes | No |
| Dedykowany sprzęt | Tak (profile obciążeń roboczych) | Tak (profile obciążeń roboczych) | No | Yes | Yes |
| Dedykowane procesory GPU | Tak (profile obciążeń roboczych) | Tak (profile obciążeń roboczych) | No | No | Yes |
| Konfigurowalna liczba pamięci/procesora CPU | Yes | Yes | No | No | Yes |
| Opcja "Darmowego Grantu" | Yes | Yes | No | No | No |
| 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ć ani kończyć łącznikiem. | Mniej niż 64 znaki: ograniczone do znaków alfanumerycznych i łączników. Nie można zaczynać ani kończyć łącznikiem. | Mniej niż 253 znaki: ograniczone do znaków alfanumerycznych i łączników. Musi zaczynać się i kończyć znakiem alfanumerycznym. |
- Planowane na przyszłe wycofanie. Zamiast tego korzystaj z natywnego hostingu Container Apps.
- 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ń. Ustawienie to jest honorowane, o ile istnieje wystarczający limit rdzeni. Podczas tworzenia aplikacji funkcji w portalu Azure jesteś ograniczony do 300 instancji.
- 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.
- 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 karencji dla wykonywania funkcji wynosi 60 minut w czasie skalowania, a okres 10 minut karencji obowiązuje podczas aktualizacji platformy.
- Wymaga ustawienia planu usługi App Service na zawsze włączone. Okres karencji wynoszący 10 minut jest przewidziany podczas aktualizacji platformy.
Obsługa kontenerów niestandardowych
Gdy tworzysz własne kontenery, utrzymuj obraz bazowy swojego kontenera aktualizowany do najnowszego obsługiwanego obrazu bazowego. 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ół Functions zobowiązuje się do publikowania comiesięcznych aktualizacji tych obrazów podstawowych. Regularne aktualizacje obejmują najnowsze aktualizacje wersji pomocniczej i poprawki zabezpieczeń dla środowiska uruchomieniowego i języków usługi Functions. Regularnie aktualizuj kontener z najnowszego obrazu bazowego i wdrażaj ponownie zaktualizowaną wersję kontenera.
Wybierz obraz podstawowy na podstawie stosu języka używanego w aplikacji funkcji. Poniższa tabela zawiera przykłady dla każdego stacka. Ogólnie tag zaczyna się od słów 4- , aby wskazać czas działania funkcji V4. Gdy pojawiają się nowe, mniejsze wersje, ten tag jest aktualizowany, aby wskazywać na nową wersję. Podczas okresowego odtwarzania własnego obrazu pobierasz nowe wersje przez ten sam tag, dzięki czemu aplikacja ma te same aktualizacje. Nie używaj tagów określających mniejsze wersje w czasie rzeczywistym, ponieważ te tagi nie otrzymują aktualizacji. Twoja aplikacja może pozostać w wersji bez poprawek, niezależnie od tego, jak często będziesz odbudowywał swój własny obraz.
| Stos języka | Przykładowe zalecane podstawowe tagi obrazów |
|---|---|
| .NET (izolowany model procesu roboczego) |
mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0 lubmcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0-appservice(Te przykłady dotyczą platformy .NET 8. Wybierz odpowiedni obraz dla potrzebnej wersji platformy .NET). |
| .NET (starszy model wewnętrznego procesu) |
mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0 lubmcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0-appservice(Wsparcie dla modelu w trakcie produkcji kończy się 10 listopada 2026 roku. Przechodź na model izolowanego pracownika jak najszybciej.) |
| Java |
mcr.microsoft.com/azure-functions/java:4-java21 lubmcr.microsoft.com/azure-functions/java:4-java21-appservice(Te przykłady dotyczą środowiska Java 21. Wybierz odpowiedni obraz dla potrzebnej wersji języka Java). |
| Node.js (JavaScript lub TypeScript) |
mcr.microsoft.com/azure-functions/node:4-node22 lubmcr.microsoft.com/azure-functions/node:4-node22-appservice(Te przykłady dotyczą Node.js 22. Wybierz odpowiedni obraz dla potrzebnej wersji Node.js). |
| PowerShell |
mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 lubmcr.microsoft.com/azure-functions/powershell:4-powershell7.4-appservice(Te przykłady dotyczą programu PowerShell 7.4. Wybierz odpowiedni obraz dla potrzebnej wersji programu PowerShell). |
| Python |
mcr.microsoft.com/azure-functions/python:4-python3.12 lubmcr.microsoft.com/azure-functions/python:4-python3.12-appservice(Te przykłady dotyczą języka Python w wersji 3.12. Wybierz odpowiedni obraz dla potrzebnej wersji języka Python). |
| Niestandardowe mechanizmy obsługi / inne |
mcr.microsoft.com/azure-functions/base:4 lubmcr.microsoft.com/azure-functions/base:4-appservice |
Podstawowe obrazy kończące się -appservice umożliwiają SSH oraz zdalne debugowanie za pomocą platformy. Jeśli nie potrzebujesz tych możliwości, używaj obrazów bazowych bez -appservice sufiksu.
Important
Nie wystarczy mieć tylko jeden z poprzednich tagów w pliku Docker. Musisz regularnie pobierać najnowszy obraz z tego tagu, aby można było ponownie zbudować obraz niepowtarzalny, który będzie zawierał najnowsze aktualizacje. Jeśli nie pobierzesz najnowszego obrazu i nie odbudujesz go od nowa, aplikacja nadal działa na starym obrazie bazowym.
Kiedy tworzysz lub wdrażasz własną aplikację kontenerową, używając niestandardowego obrazu, odpowiadasz za to, by Twój własny obraz pozostał up-toaktualizacji z opublikowanymi obrazami bazowymi. Oprócz nowych funkcji i ulepszeń te aktualizacje obrazu podstawowego mogą również obejmować aktualizacje zabezpieczeń, które mają krytyczne znaczenie dla aplikacji. Aby upewnić się, że aplikacja jest chroniona, upewnij się, że jesteś na bieżąco. Regularnie pobieraj najnowszą wersję obrazu bazowego, odbuduj swój własny obraz kontenera i wdrażaj aplikację ponownie, aby z niego korzystała.
W niektórych przypadkach Microsoft musi wprowadzić zmiany na poziomie platformy, które mogą sprawić, że aplikacja w niestandardowym kontenerze używającym starego obrazu bazowego może przestać działać poprawnie. W przypadku tak dużych zmian Microsoft wprowadza zaktualizowane obrazy z dużym wyprzedzeniem, aby aplikacje regularnie aktualizowane nie były negatywnie dotknięte. Aby uniknąć potencjalnych problemów z aplikacjami uruchamianymi w kontenerach niestandardowych, upewnij się, że nie jesteś zbyt daleko w tyle za najnowszą wydaną wersją drugorzędną. Podczas sprawy wsparcia, jeśli Microsoft uzna, że Twoja aplikacja ma problemy z powodu starszej lub nieobsługiwanej wersji, Microsoft prosi o aktualizację kontenera do najnowszej wersji obrazu bazowego przed kontynuacją wsparcia.
Wprowadzenie
Skorzystaj z tych linków, aby rozpocząć pracę z usługą Azure Functions w kontenerach systemu Linux:
| Chcę... | Zobacz artykuł: |
|---|---|
| Deploy functions to Azure Container Apps (recommended) | Tworzenie pierwszych konteneryzowanych funkcji w usłudze Azure Container Apps |
| Tworzyłem moje pierwsze funkcje konteneryzowane lokalnie | Utwórz aplikację funkcji w lokalnym kontenerze systemu Linux |
| Wdrażaj funkcje kontenerowe do planu Premium lub dedykowanego | Tworzenie pierwszej konteneryzowanej usługi Azure Functions |