Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 statischen Web App und Azure-Funktionen entwickeln, stellt die Azure Static Web Apps 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:
-
Authentifizierung und Autorisierung:
- Verwenden Sie Microsoft Entra ID (früher Azure Active Directory) für eine robuste Authentifizierung. Konfigurieren Sie Ihre Funktions-App so, dass OAuth2-Token für Produktionsworkloads erforderlich sind.
- Vermeiden Sie die Verwendung von Funktionstasten für vertrauliche Anwendungen. Integrieren Sie stattdessen die Microsoft Entra-ID oder überprüfen Sie JWT-Token in Ihrem Funktionscode.
- Verwenden Sie verwaltete Identitäten , um Ihre Funktions-App mit anderen Azure-Ressourcen zu authentifizieren, um sicherzustellen, dass jede Funktion nur den benötigten Zugriff erhält.
-
Konfigurationseinstellungen:
- Anwendungseinstellungen – Erstellen Sie Anwendungseinstellungen für Einstellungen, die sich nicht auf die Sicherheit auswirken.
- Geheime Schlüssel – für alle Einstellungen, die sich auf die Sicherheit auswirken, verwenden Sie diesen mehrstufigen Ansatz:
- Verwenden Sie zunächst die Microsoft Entra-ID für die Authentifizierung, bei der dies unterstützt wird.
- Speichern Sie für Integrationen, die entra-ID nicht unterstützen, geheime Schlüssel in Azure Key Vault , und rufen Sie diese Einstellungen aus Ihrem Key Vault ab.
- Betten Sie geheime Schlüssel niemals in Code- oder Konfigurationsdateien ein.
- Weitere Plattformsicherheitseinstellungen finden Sie unter Sichern von Azure-Funktionen.
-
Netzwerksicherheit:
- CORS : Konfigurieren Sie Ihre Clientdomänen. Verwenden
*Sie nicht , was alle Domänen angibt. - Integration virtueller Netzwerke – Verwenden Sie private Endpunkte oder virtuelle Netzwerkintegration, um die Netzwerkexposition einzuschränken und eingehenden Datenverkehr aus vertrauenswürdigen Quellen einzuschränken.
- CORS : Konfigurieren Sie Ihre Clientdomänen. Verwenden
-
HTTPS und Verschlüsselung:
- 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.
- 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
-
Bereitstellung und Überwachung:
- Bereitstellungsslots: Erstellen Sie einen Bereitstellungsslot wie
stageoderpreflight, 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. - Aktivieren Sie Application Insights für Echtzeit-Telemetrie, Warnungen und Anomalieerkennung, um Ihre Funktionen und Überwachungsprotokolle auf verdächtige Aktivitäten zu überwachen.
- Bereitstellungsslots: Erstellen Sie einen Bereitstellungsslot wie
Umfassende Sicherheitsanleitungen finden Sie unter Sichern von Azure-Funktionen.
Hostingoptionen für Azure-Funktionen
Sie können Azure Functions je nach Ihren Anforderungen auf unterschiedliche Weise hosten:
Azure Functions-Ressourcenhostingpläne
Wenn Sie eine Azure Functions-Ressource erstellen, können Sie aus diesen Hostingplänen wählen:
- Verbrauchsplan: Bezahlen Sie nur für die Zeit, zu der Ihre Funktionen mit automatischer Skalierung ausgeführt werden.
- Flex-Verbrauchsplan: Bietet eine erweiterte Kontrolle mit immer einsatzbereiten Instanzen, um Kaltstarts, die Integration virtueller Netzwerke und konfigurierbare Instanzen (512 MB bis 4 GB) zu reduzieren. Dieser Plan wird für neue Linux-basierte Workloads empfohlen, die Sicherheits- und Leistungsfeatures für Unternehmen erfordern. Beachten Sie, dass dieser Plan die ausführungsbasierte Abrechnung ähnlich dem Verbrauchsplan verwendet, aber mit zusätzlichen Kosten für Features wie immer einsatzbereite Instanzen.
- Premium-Plan: Bietet eine verbesserte Leistung mit vorgewärmten Instanzen, virtuellen Netzwerkkonnektivität und längeren Ausführungsdauern.
- Dedizierter Plan (App Service): Ausführen von Funktionen auf dedizierten virtuellen Computern für vorhersehbare Kosten und vollständige Kontrolle über die Laufzeitumgebung.
Weitere Informationen zum Auswählen des richtigen Hostingplans finden Sie unter Azure Functions-Hostingoptionen.
Azure Container Apps-Ressource
Alternativ können Sie Azure Functions als containerisierte Workloads in einer Azure-Container-Apps-Ressource bereitstellen. Diese Option bietet die vollständige Kontrolle über die Containerumgebung und ist ideal, wenn Sie benutzerdefinierte Abhängigkeiten, lange ausgeführte Prozesse benötigen oder Funktionen mit anderen containerisierten Microservices kombinieren möchten. Weitere Informationen finden Sie unter Azure Container Apps hosting of Azure Functions .
Voraussetzungen für die Entwicklung von Azure Functions
- Node.js LTS – Verwenden Sie die neueste LtS-Version (Long Term Support), um die besten Kompatibilitäts- und Sicherheitsupdates mit Azure Functions zu erhalten.
- Azure Functions Core Tools – Verwenden Sie die aktuelle Hauptversion für die lokale Entwicklung und das Debuggen.
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 Triggerbindungen an andere Azure-Dienste ausgegeben werden. Das v4-Programmiermodell registriert alle Trigger und Bindungen direkt in Ihrem Code, wodurch die Konfiguration typsicher und intuitiv wird.
- Funktionen mit hohem Code: Verwenden Sie die Azure-SDKs, um andere Azure-Dienste zu koordinieren und zu steuern. Verwenden Sie verwaltete Identitäten , um Ihre Funktionen sicher mit anderen Azure-Ressourcen zu authentifizieren, ohne Anmeldeinformationen zu verwalten.