Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 samego projektu kodu w aplikacji funkcji w Azure. Podczas wdrażania projektu w aplikacji funkcji systemu Linux kod jest uruchamiany w kontenerze utworzonym automatycznie i bezproblemowo integruje się z narzędziami do zarządzania funkcjami.
Funkcje obsługują również wdrożenia aplikacji funkcji konteneryzowanych. W przypadku wdrożenia konteneryzowanego utworzysz własne wystąpienie aplikacji funkcjonalnej w lokalnym kontenerze Docker 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
Istnieje kilka opcji hostowania konteneryzowanych aplikacji funkcji na platformie Azure:
| Opcja hostingu | Benefits |
|---|---|
| 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. Ta integracja umożliwia 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 kontenera aplikacji funkcji w tym samym środowisku co inne mikrousługi, interfejsy API, witryny internetowe, przepływy pracy lub inne 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 konteneryzowanych aplikacji funkcji w Platformie Azure. |
| Klastry Kubernetes z obsługą Azure Arc (wersja zapoznawcza) | Aplikacje funkcji można hostować w klastrach Kubernetes z obsługą usługi Azure Arc jako wdrożenie wyłącznie 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. Aby uzyskać więcej informacji, zobacz Praca z kontenerami i usługą Azure Functions. |
| 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). Korzystanie z hostingu usługi Container Apps w celu uzyskania rozbudowanej obsługi kontenerów z usługi Container Apps. 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 | Container Apps (zintegrowane) | Aplikacje kontenerowe (bezpośrednie) | Plan Premium | Dedykowany plan | Kubernetes |
|---|---|---|---|---|---|
| Pomoc techniczna dotycząca produktów | Yes | No | Yes | Yes | No |
| Integracja portalu usługi Functions | No | No | Yes | Yes | No |
| Skalowanie sterowane zdarzeniami | Yes5 | Tak (reguły skalowania) | Yes | No | No |
| Maksymalna skala (wystąpienia) | 10001 | 10001 | 1002 | 10-303 | Różni się w zależności od klastra |
| Skalowanie do zera wystąpień | Yes | Yes | No | No | KEDA |
| Limit czasu wykonywania | Unbounded6 | Unbounded6 | Unbounded7 | Unbounded8 | None |
| 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 (przy użyciu Kudu) | Tak (przy użyciu Kudu) | Tak (w zasobnikach przy użyciu kubectl) |
| Ograniczenie ryzyka zimnego startu | Minimalna liczba replik | Reguły skalowania | 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 "Bezpłatna dotacja" | 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. |
- 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
Podczas tworzenia własnych kontenerów musisz zachować obraz bazowy kontenera zaktualizowany do najnowszej obsługiwanej wersji. 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. Należy regularnie aktualizować kontener z najnowszego obrazu podstawowego i ponownie wdrożyć 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 rzecz biorąc, tag powinien zaczynać się od 4- , aby wskazać środowisko uruchomieniowe usługi Functions w wersji 4. Po wydaniu nowych wersji pomocniczych ten tag zostanie zaktualizowany tak, aby wskazywał nową wersję. W miarę okresowego ponownego kompilowania obrazu niestandardowego należy ściągnąć nowe wersje za pomocą tego samego tagu, co pozwala aplikacji na korzystanie z tych samych aktualizacji. Nie należy używać tagów określających mniejsze wersje środowiska uruchomieniowego, ponieważ nie będą one otrzymywać aktualizacji, a aplikacja pozostanie potencjalnie w nieaktualizowanej wersji niezależnie od tego, jak często kompilujesz obraz niestandardowy.
| 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 zostanie zakończone dla modelu procesu 10 listopada 2026 r. Należy przeprowadzić migrację do izolowanego modelu procesu roboczego tak szybko, jak to możliwe). |
| 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, możesz użyć obrazów podstawowych bez sufiksu -appservice .
Important
Nie wystarczy mieć tylko jednego z powyższych tagów w pliku Dockerfile. 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 ściągniesz najnowszego obrazu i ponownie skompilujesz go, aplikacja będzie nadal działać na starym obrazie podstawowym.
Podczas tworzenia lub wdrażania własnej konteneryzowanej aplikacji przy użyciu obrazu niestandardowego odpowiadasz za upewnienie się, że niestandardowy obraz pozostanie up-to-date z naszymi opublikowanymi obrazami podstawowymi. 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. Należy regularnie ściągać najnowszą wersję obrazu podstawowego, ponownie skompilować niestandardowy obraz kontenera i ponownie wdrożyć aplikację, aby jej używać.
W niektórych przypadkach musimy wprowadzić zmiany na poziomie platformy, które mogą oznaczać, że aplikacja w kontenerze niestandardowym przy użyciu starego obrazu podstawowego może przestać działać prawidłowo. W przypadku takich istotnych zmian wprowadzamy zaktualizowane obrazy z wyprzedzeniem, dzięki czemu aplikacje, które przyjmują regularne aktualizacje, nie mają negatywnego wpływu. 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ą. Jeśli podczas zgłoszenia do pomocy technicznej ustalimy, że aplikacja ma problemy, ponieważ jest w starszej lub nieobsługiwanej wersji, prosimy o zaktualizowanie kontenera do najnowszej wersji obrazu podstawowego przed kontynuowaniem obsługi.
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 | Utwórz aplikację 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 |