Udostępnij za pośrednictwem


Tworzenie rozwiązań bezserwerowych Node.js za pomocą usługi Azure Functions

Usługa Azure Functions udostępnia infrastrukturę kodu bezserwerowego, umożliwiając tworzenie dynamicznych punktów końcowych HTTP na żądanie. Aplikacje bezserwerowe składają się z kodu JavaScript lub TypeScript, który działa w odpowiedzi na różne zdarzenia.

Funkcje zapewniają:

  • Abstrakcja usługi internetowej — koncentrujesz się na kodzie, a nie infrastrukturze.

  • Integracja z usługami platformy Azure — wyzwalanie pracy w usłudze platformy Azure lub poza nie zdarzeń

  • Integracja z pakietami JavaScript — użyj ulubionych pakietów npm z kodem bezserwerowym

  • Bezserwerowa biblioteka społeczności platformy Azure z przykładami

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 klienckiej frontonu (takiej jak Angular, React lub Vue), która również potrzebuje bezserwerowych interfejsów API, użyj statycznych aplikacji internetowych z funkcjami, aby połączyć obie te elementy.

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. Serwer proxy jest ustanawiany dla Ciebie, w tym lokalnego i zdalnego programowania.

Podczas lokalnego tworzenia 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.
  • MECHANIZM CORS interfejsu API — 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 wyzwalane przez inne usługi platformy Azure lub dane wyjściowe do innej usługi platformy 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.

Następne kroki

Skorzystaj z poniższej tabeli, aby dowiedzieć się więcej o usłudze Azure Functions z Node.js

Uczyć się Przykład
Co to jest firma Contoso Real Estate Contoso Real Estate
Tworzenie bezserwerowych interfejsów API za pomocą usługi Azure Functions MicrosoftDocs/mslearn-build-api-azure-functions
Refaktoryzacja interfejsów API Node.js Express do bezserwerowych interfejsów API usługi Azure Functions MicrosoftDocs/mslearn-module-shifting-nodejs-express-apis-to-serverless
Przekazywanie i analizowanie pliku za pomocą usług Azure Functions i Blob Storage Azure-Samples/msdocs-storage-bind-function-service