Tworzenie aplikacji Node.js bezserwerowych za pomocą usługi Azure Functions
Usługa Azure Functions udostępnia zaawansowaną infrastrukturę bezserwerową, umożliwiając łatwe tworzenie skalowalnych, na żądanie punktów końcowych HTTP. Korzystając z języka JavaScript lub TypeScript, można tworzyć aplikacje bezserwerowe, które reagują na różne zdarzenia, co pozwala skupić się na pisaniu kodu bez martwienia się o zarządzanie serwerami. Ten przewodnik ułatwia rozpoczęcie tworzenia bezserwerowych aplikacji Node.js przy użyciu usługi Azure Functions, bezproblemowo integrujących się z innymi usługami platformy Azure.
Co to jest zasób funkcji?
Zasób funkcji platformy Azure to jednostka logiczna dla wszystkich powiązanych funkcji w jednej lokalizacji geograficznej platformy Azure. Zasób może zawierać jedną funkcję lub wiele funkcji, które mogą być niezależne od siebie lub powiązane z powiązaniami wejściowymi lub wyjściowymi. Możesz wybrać spośród wielu typowych funkcji lub utworzyć własne.
Ustawienia zasobów funkcji obejmują typowe konfiguracje bezserwerowe, w tym zmienne środowiskowe, uwierzytelnianie, rejestrowanie i mechanizm CORS.
Trwałe, stanowe funkcje
Rozszerzenie Durable Functions zachowuje stan lub zarządza długotrwałych funkcji na platformie Azure. Utwórz pierwszą trwałą funkcję 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.
Serwer proxy z aplikacji klienckiej do interfejsu API
Jeśli zamierzasz wdrożyć interfejs API za pomocą statycznej aplikacji internetowej, nie musisz proxy wywołań interfejsu API aplikacji klienckiej. Agent proxy jest ustanawiany dla ciebie podczas wdrażania aplikacji Azure Functions jako zarządzanej aplikacji.
Podczas lokalnego opracowywania za pomocą statycznej aplikacji internetowej i usługi Azure Functions interfejs wiersza polecenia statycznej aplikacji internetowej platformy Azure 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:
- Ustawienia konfiguracji
- Ustawienia konfiguracji — utwórz ustawienia aplikacji dla ustawień, które nie mają wpływu na zabezpieczenia.
- Wpisy tajne i klucze — dla wszystkich ustawień wpływających na zabezpieczenia utwórz usługę Azure Key Vault i pobierz te ustawienia z usługi Key Vault.
- Stan FTP w ustawieniach platformy — domyślnie wszystkie są dozwolone. Aby poprawić bezpieczeństwo, należy wybrać tylko protokół FTPS lub wyłączyć protokół FTP.
- CORS — konfigurowanie domen klientów. Nie używaj funkcji
*
, wskazując wszystkie domeny. - 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 jest hostowana w bezpiecznej poddomenie, możesz użyć jej natychmiast (z
https
) i opóźnić zakup nazwy domeny oraz użyć certyfikatu dla domeny, dopóki nie wszystko będzie gotowe. - Miejsca wdrożenia — utwórz miejsce wdrożenia, takie jak
stage
lubpreflight
i wypchnij do tego miejsca. Zamień to miejsce etapu na środowisko produkcyjne, gdy wszystko będzie gotowe. Nie dostaj się w zwyczaju ręcznego wypychania do środowiska produkcyjnego. Baza kodu powinna być w stanie wskazać wersję lub zatwierdzenie, które znajduje się w miejscu.
Wymagania wstępne dotyczące tworzenia usługi Azure Functions
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.
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
});
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 z małą ilością kodu: Za pomocą usługi Azure Functions można tworzyć funkcje, które są wyzwalane przez inne usługi Azure lub emitują dane wyjściowe do innych usług Azure, przy użyciu powiązań wyzwalacza .
- 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.