Freigeben über


Entwickeln von Serverless-Node.js-Apps mit Azure-Funktionen

Azure Functions bietet eine leistungsstarke serverlose Infrastruktur, mit der Sie skalierbare, on-Demand-HTTP-Endpunkte problemlos entwickeln können. Mithilfe von JavaScript oder TypeScript können Sie serverlose Anwendungen erstellen, die auf verschiedene Ereignisse reagieren, sodass Sie sich auf das Schreiben von Code konzentrieren können, ohne sich Gedanken über die Verwaltung von Servern machen zu müssen. Dieser Leitfaden hilft Ihnen bei den ersten Schritten in der Entwicklung von serverlosen Node.js-Apps mit Azure Functions, die sich nahtlos in andere Azure-Dienste integrieren.

Was ist eine Funktionsressource?

Eine Azure-Funktionsressource ist eine logische Einheit für alle zugehörigen Funktionen an einem einzelnen geografischen Azure-Standort. Die Ressource kann eine einzelne Funktion oder viele Funktionen enthalten, die unabhängig voneinander oder mit Eingabe- oder Ausgabebindungen verbunden sein können. Sie können aus vielen gängigen Funktionen auswählen oder eigene Funktionen erstellen.

Die Einstellungen für Funktionsressourcen umfassen typische serverlose Konfigurationen wie Umgebungsvariablen, Authentifizierung, Protokollierung und CORS.

Langlebige, zustandsbehaftete Funktionen

Langlebige Funktionen behalten den Zustand bei oder dienen zur Verwaltung zeitintensiver Funktionen in Azure. Erstellen Sie Ihre erste langlebige Funktion in JavaScript.

Statische Web-Apps mit Funktionen

Wenn Sie eine statische Front-End-Clientanwendung (z. B. Angular, React oder Vue) entwickeln, die auch serverlose APIs benötigen, verwenden Sie statische Web-Apps mit Funktionen, um beide zusammen zu bündeln.

Proxy von der Client-App zur API

Wenn Sie ihre API mit Ihrer statischen Web-App bereitstellen möchten, müssen Sie die API-Aufrufe Ihrer Clientanwendung nicht proxyn. Der Proxy wird für Sie eingerichtet, wenn Sie die Azure Functions-App als verwaltete App bereitstellen.

Wenn Sie lokal mit einer static Web App und Azure Functions entwickeln, stellt die Azure Static Web App CLI- den lokalen Proxy bereit.

Allgemeine Sicherheitseinstellungen, die für Ihre Azure-Funktion konfiguriert werden müssen

Die folgenden allgemeinen Einstellungen sollten so konfiguriert werden, dass Ihre Azure-Funktion sicher ist:

  • Konfigurationseinstellungen
    • Konfigurationseinstellungen: Erstellen Sie Anwendungseinstellungen für Einstellungen, die sich nicht auf die Sicherheit auswirken.
    • Geheime Schlüssel und Schlüssel – für alle Einstellungen, die sich auf die Sicherheit auswirken, erstellen Sie einen Azure Key Vault , und rufen Sie diese Einstellungen aus Ihrem Key Vault ab.
    • FTP-Status in Plattformeinstellungen: Standardmäßig sind alle zulässig. Sie müssen Nur FTPS aktivieren oder FTP vollständig deaktivieren, um die Sicherheit zu erhöhen.
  • CORS : Konfigurieren Sie Ihre Clientdomänen. Verwenden *Sie nicht , was alle Domänen angibt.
  • TLS/SSL-Einstellung für HTTPS: Standardmäßig akzeptiert Ihre API HTTP- und HTTPS-Anforderungen. Aktivieren Sie unter TLS/SSL-Einstellungen die Option Nur HTTPS. Da Ihre Function-App in einer sicheren Unterdomäne gehostet wird, können Sie sie sofort (mit https) verwenden und den Kauf eines Domänennamens verzögern und ein Zertifikat für die Domäne verwenden, bis Sie bereit sind.
  • Bereitstellungsslots: Erstellen Sie einen Bereitstellungsslot wie stage oder preflight, und pushen Sie an diesen Slot. Tauschen Sie diesen Stufenplatz in die Produktion aus, wenn Sie fertig sind. Machen Sie sich nicht die Gewohnheit, manuell in die Produktion zu schieben. Ihre Codebasis sollte in der Lage sein, die Version oder den Commit anzugeben, die bzw. der sich in einem Slot befindet.

Voraussetzungen für die Entwicklung von Azure Functions

Einfache JavaScript-Funktion für HTTP-Anforderungen

Bei einer Funktion handelt es sich um eine exportierte asynchrone Funktion mit Anforderung und Kontextinformationen. Der folgende partielle Screenshot des Azure-Portals zeigt den Funktionscode:

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
});

Lokales Entwickeln von Funktionen mit Visual Studio Code und Erweiterungen

Erstellen Sie Ihre erste Funktion mit Visual Studio Code. Visual Studio Code vereinfacht viele Details mit der Azure Functions-Erweiterung.

Diese Erweiterung unterstützt Sie mit allgemeinen Vorlagen bei der Erstellung von JavaScript- und TypeScript-Funktionen.

Integration in andere Azure-Dienste

Bei serverlosen Funktionen fällt ein Großteil der Serverkonfiguration und -verwaltung weg, sodass Sie sich nur auf den erforderlichen Code konzentrieren können.

  • Funktionen mit geringem Code: Mit Azure-Funktionen erstellen Sie Funktionen, die von anderen Azure-Diensten ausgelöst werden oder die mit Triggerbindungenan anderen Azure-Dienst ausgegeben werden.
  • Funktionen mit viel Code: Verwenden Sie die Azure SDKs, um mehr Kontrolle zu erhalten und andere Azure-Dienste zu koordinieren und zu steuern.