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.
Twórz i uruchamiaj interfejsy API HTTP oraz aplikacje oparte na zdarzeniach Node.js za pomocą Azure Functions. Następnie użyj pozostałej części tego artykułu, aby wybrać odpowiednią bezserwerową ścieżkę hostingu i integracji dla aplikacji.
Co to jest zasób aplikacji funkcji?
Aplikacja funkcji to jednostka logiczna umożliwiająca wdrażanie i uruchamianie kodu funkcji w jednym zasobie Azure w określonej lokalizacji geograficznej. Zasób może zawierać jedną funkcję lub wiele funkcji, które są wykonywane niezależnie od siebie, ale współdzielą te same zasoby obliczeniowe, łączność i ustawienia. Usługa Functions udostępnia pełny zakres szablonów opartych na wyzwalaczach, które ułatwiają szybkie rozpoczęcie pracy. Możesz dodać kod oraz potencjalnie inne powiązania wyjściowe i wejściowe.
Ustawienia zasobów aplikacji funkcji obejmują typowe konfiguracje bezserwerowe, takie jak zmienne środowiskowe, uwierzytelnianie, rejestrowanie i mechanizm CORS.
Trwałe, stanowe funkcje
Chociaż wykonywanie funkcji w Azure jest z natury bezstanowe, Durable Functions zachowują stan i zarządzają funkcjami długotrwałymi w Azure. Używaj ich, gdy potrzebujesz orkiestracji, mechanizmów ponawiania lub wieloetapowych przepływów pracy, które wykraczają poza cykl życia pojedynczego żądania. Aby rozpocząć, zobacz Tworzenie pierwszej funkcji trwałej w języku JavaScript.
Statyczne aplikacje internetowe obejmują funkcje
Podczas tworzenia statycznej aplikacji klienta (takiej jak Angular, React lub Vue), która również potrzebuje bezserwerowych interfejsów API, należy użyć statycznych aplikacji webowych z funkcjami, aby połączyć je razem.
Proxy między aplikacją kliencką a interfejsem API
Jeśli zamierzasz wdrożyć interfejs API wraz ze statyczną aplikacją internetową, nie musisz kierować wywołań API aplikacji klienckiej przez serwer proxy. Serwer proxy jest konfigurowany automatycznie podczas wdrażania aplikacji funkcji jako aplikacji zarządzanej.
Podczas lokalnego programowania statycznej aplikacji internetowej przy użyciu Azure Functions narzędzie Azure Static Web Apps CLI udostępnia lokalny serwer proxy.
Typowe ustawienia zabezpieczeń, które należy skonfigurować dla funkcji platformy Azure
Aby zapewnić bezpieczeństwo funkcji platformy Azure, należy skonfigurować następujące typowe ustawienia:
-
Uwierzytelnianie i autoryzacja:
- Użyj identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory), aby uzyskać niezawodne uwierzytelnianie. Skonfiguruj aplikację funkcji, aby wymagać tokenów OAuth2 dla obciążeń produkcyjnych.
- Unikaj używania kluczy funkcji dla aplikacji poufnych. Zamiast tego zintegruj się z identyfikatorem Entra firmy Microsoft lub zweryfikuj tokeny JWT w kodzie funkcji.
- Użyj tożsamości zarządzanych , aby uwierzytelnić aplikację funkcji przy użyciu innych zasobów platformy Azure, zapewniając, że każda funkcja uzyskuje tylko wymagany dostęp.
-
Ustawienia konfiguracji:
- Ustawienia aplikacji — utwórz ustawienia aplikacji dla ustawień, które nie mają wpływu na zabezpieczenia.
- Wpisy tajne i klucze — w przypadku wszystkich ustawień wpływających na zabezpieczenia należy użyć tego podejścia warstwowego:
- Najpierw użyj identyfikatora Entra firmy Microsoft do uwierzytelniania, jeśli jest obsługiwane.
- W przypadku integracji, które nie obsługują Entra ID, przechowuj sekrety w usłudze Azure Key Vault i importuj te ustawienia z usługi Key Vault.
- Nigdy nie osadzaj wpisów tajnych w kodzie lub plikach konfiguracji.
- Aby uzyskać informacje o innych ustawieniach zabezpieczeń platformy, zobacz Zabezpieczanie usługi Azure Functions.
-
Zabezpieczenia sieci:
- CORS — konfigurowanie domen klientów. Nie używaj funkcji
*, wskazując wszystkie domeny. - Integracja sieci wirtualnej — użyj prywatnych punktów końcowych lub integracji sieci wirtualnej, aby ograniczyć narażenie sieci i ograniczyć ruch przychodzący z zaufanych źródeł.
- CORS — konfigurowanie domen klientów. Nie używaj funkcji
-
Protokół HTTPS i szyfrowanie:
- Ustawienie protokołu TLS/SSL dla protokołu HTTPS — domyślnie interfejs API akceptuje żądania HTTP i HTTPS. Włącz protokół HTTPS tylko w ustawieniach protokołu TLS/SSL. Ponieważ aplikacja funkcji Function App jest hostowana w bezpiecznej poddomenie (
*.azurewebsites.net), możesz od razu z niej korzystać (zhttps), a zakup nazwy domeny i użycie certyfikatu dla tej domeny odłożyć do momentu, gdy będziesz na to gotowy(-a).
- Ustawienie protokołu TLS/SSL dla protokołu HTTPS — domyślnie interfejs API akceptuje żądania HTTP i HTTPS. Włącz protokół HTTPS tylko w ustawieniach protokołu TLS/SSL. Ponieważ aplikacja funkcji Function App jest hostowana w bezpiecznej poddomenie (
-
Wdrażanie i monitorowanie:
- Miejsca wdrożenia — utwórz miejsce wdrożenia, takie jak
stagelubpreflight, i wypchnij do tego miejsca. Zamień ten slot przejściowy z produkcyjnym, gdy wszystko będzie gotowe. Nie wyrabiaj sobie nawyku ręcznego wdrażania na produkcję. Baza kodu powinna umożliwiać wskazanie wersji lub identyfikatora commita wdrożonego na slocie. Jeśli używasz rozwiązania Flex Consumption, użyj wdrożeń bez przestojów zamiast slotów. - Włącz usługę Application Insights na potrzeby telemetrii, alertów i wykrywania anomalii w czasie rzeczywistym, aby monitorować funkcje i dzienniki inspekcji pod kątem podejrzanych działań.
- Miejsca wdrożenia — utwórz miejsce wdrożenia, takie jak
Aby uzyskać kompleksowe wskazówki dotyczące zabezpieczeń, zobacz Zabezpieczanie usługi Azure Functions.
Opcje hosta dla Azure Functions
Usługę Azure Functions można hostować na różne sposoby w zależności od wymagań:
Plany hostingu zasobów usługi Azure Functions
Podczas tworzenia zasobu aplikacji funkcji wybierz spośród następujących planów hostingu usługi Functions:
- Plan zużycia (starsza wersja): zapłać tylko za czas działania funkcji z automatycznym skalowaniem.
- Plan Flex Consumption: zapewnia rozszerzoną kontrolę, integrację z siecią wirtualną, zawsze gotowe wystąpienia w celu zmniejszenia zimnych uruchomień oraz konfigurowalne rozmiary wystąpień (od 512 MB do 4 GB). Ten plan jest zalecany w przypadku nowych obciążeń opartych na systemie Linux wymagających funkcji zabezpieczeń i wydajności przedsiębiorstwa. Ten plan wykorzystuje rozliczanie na podstawie liczby wykonań, podobnie jak plan Zużycie, ale obejmuje dodatkowe koszty za funkcje, takie jak zawsze gotowe instancje.
- Plan Premium: Zapewnia zwiększoną wydajność dzięki wstępnie rozgrzanym instancjom, łączności z siecią wirtualną i wydłużonym czasom wykonania.
- Plan dedykowany (App Service): uruchamianie funkcji na dedykowanych maszynach wirtualnych w celu uzyskania przewidywalnych kosztów i pełnej kontroli nad środowiskiem uruchomieniowym.
Aby uzyskać więcej informacji na temat wybierania odpowiedniego planu hostingu, zobacz Opcje hostingu usługi Azure Functions.
Zasób usługi Azure Container Apps
Alternatywnie możesz wdrożyć usługę Azure Functions w zasobie usługi Azure Container Apps jako konteneryzowane obciążenia. Ta opcja zapewnia pełną kontrolę nad środowiskiem kontenera i jest idealna, gdy potrzebujesz niestandardowych zależności, długotrwałych procesów lub chcesz połączyć funkcje z innymi konteneryzowanymi mikrousługami. Więcej informacji znajduje się w artykule Omówienie usługi Azure Functions w Azure Container Apps.
Wymagania wstępne dotyczące tworzenia usługi Azure Functions
- Node.js LTS — użyj najnowszej wersji długoterminowej pomocy technicznej (LTS), aby uzyskać najlepszą zgodność i aktualizacje zabezpieczeń w usłudze Azure Functions.
- Azure Functions Core Tools — użyj bieżącej wersji głównej na potrzeby lokalnego programowania i debugowania.
Prosta funkcja Języka JavaScript dla żądań HTTP
Funkcja jest eksportowaną funkcją asynchroniczną z informacjami o żądaniu i kontekście. Poniższy częściowy zrzut ekranu z witryny Azure Portal przedstawia kod funkcji.
Użyj jednego z następujących przykładów modelu programowania w wersji 4 jako punktu wyjścia dla projektu funkcji.
import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";
export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
context.log(`Http function processed request for url "${request.url}"`);
return {
status: 200,
jsonBody: {
env: process.env
}
};
};
app.http('status', {
route: "status",
methods: ['GET'],
authLevel: 'anonymous',
handler: status
});
Po uruchomieniu aplikacji przejdź do http://localhost:7071/api/status, aby lokalnie przetestować endpoint.
Lokalne opracowywanie funkcji za pomocą programu Visual Studio Code i rozszerzeń
Utwórz pierwszą funkcję przy użyciu programu Visual Studio Code. Program Visual Studio Code upraszcza wiele szczegółów za pomocą rozszerzenia usługi Azure Functions.
To rozszerzenie ułatwia tworzenie funkcji JavaScript i TypeScript za pomocą typowych szablonów.
Integracja z innymi usługami platformy Azure
Funkcje bezserwerowe usuwają znaczną część konfiguracji serwera i zarządzania, aby skoncentrować się tylko na potrzebnym kodzie.
- Funkcje niskokodowe: za pomocą usługi Azure Functions można tworzyć funkcje wyzwalane przez inne usługi Azure lub których wyjścia danych trafiają do innych usług Azure przy użyciu powiązań wyzwalacza. Model programowania w wersji 4 rejestruje wszystkie wyzwalacze i powiązania bezpośrednio w kodzie, dzięki czemu konfiguracja jest bezpieczna i intuicyjna.
- Funkcje wysokiego poziomu kodu: aby uzyskać większą kontrolę, użyj zestawów SDK platformy Azure, aby koordynować i kontrolować inne usługi platformy Azure. Używanie tożsamości zarządzanych do bezpiecznego uwierzytelniania funkcji za pomocą innych zasobów platformy Azure bez zarządzania poświadczeniami.
Następne kroki
- Utwórz i wdróż pierwszą funkcję wyzwalacza HTTP przy użyciu Visual Studio Code.
- Porównaj opcje hostingu Azure Functions przed wdrożeniem.
- Tworzenie przepływu pracy za pomocą Durable Functions dla języka JavaScript.
- Przed nawiązaniem połączenia z zasobami produkcyjnymi zapoznaj się z artykułem Zabezpieczanie Azure Functions.