Verwenden von Azure Functions zum Entwickeln von Node.js serverlosen Lösungen

Azure Functions bietet eine serverlose Codeinfrastruktur für die Erstellung dynamischer bedarfsgesteuerter HTTP-Endpunkte. Serverlose Apps bestehen aus JavaScript- oder TypeScript-Code, der als Reaktion auf verschiedene Ereignisse ausgeführt wird.

Funktionen bieten Folgendes:

  • Abstraktion des Webdiensts – Sie konzentrieren sich auf Code, nicht auf Infrastruktur.

  • Integration in Azure-Dienste – Auslösen der Arbeit in oder aus einem Azure-Dienst mit Ereignissen

  • Integration in JavaScript-Pakete – Verwenden Sie Ihre bevorzugten npm-Pakete mit Ihrem serverlosen Code.

  • Communitybibliothek mit Beispielen (serverlos)

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

Verwenden Sie bei der Entwicklung einer statischen Front-End-Clientanwendung (beispielsweise Angular, React oder Vue), die auch serverlose APIs benötigt, statische Web-Apps mit Funktionen, um beides zusammenzufassen.

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, einschließlich lokaler und Remoteentwicklung.

Bei der lokalen Entwicklung mit einer statischen Web App und Azure-Funktionen 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.
  • API-CORS: Konfigurieren Sie Ihre Clientdomänen. Verwenden *Sie nicht , was angibt, dass alle do Standard s.
  • 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 Funktions-App in einem sicheren Unterdo gehostet wird Standard können Sie sie sofort (mit https) verwenden und den Kauf eines Do Standard Namens verzögern und ein Zertifikat für die Aufgabe verwenden Standard 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 wenig Code: Mit Azure Functions und Triggerbindungen können Sie Funktionen erstellen, die von anderen Azure-Diensten ausgelöst werden oder die eine Ausgabe an einen anderen Azure-Dienst senden.
  • Funktionen mit viel Code: Verwenden Sie die Azure SDKs, um mehr Kontrolle zu erhalten und andere Azure-Dienste zu koordinieren und zu steuern.

Nächste Schritte

Verwenden Sie die folgende Tabelle, um mehr über Azure-Funktionen mit Node.js

Lernen Beispiel
Was ist Contoso Real Estate? Contoso Real Estate
Erstellen serverloser APIs mit Azure Functions MicrosoftDocs/mslearn-build-api-azure-functions
Umgestalten Node.js Express-APIs in serverlose Azure-Funktionen-APIs MicrosoftDocs/mslearn-module-shift-nodejs-express-apis-to-serverless
Hochladen und Analysieren einer Datei mit Azure Functions und Blob Storage Azure-Samples/msdocs-storage-bind-function-service