Udostępnij za pośrednictwem


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 lub preflight 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.