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.
Erstellen und Ausführen von HTTP-APIs und ereignisgesteuerten Node.js Apps mit Azure Functions. Verwenden Sie dann den rest dieses Artikels, um den richtigen serverlosen Hosting- und Integrationspfad für Ihre App auszuwählen.
Was ist eine Funktions-App-Ressource?
Eine Funktions-App ist eine logische Einheit zum Bereitstellen und Ausführen des Funktionscodes in einer einzelnen Azure Ressource an einem bestimmten geografischen Standort. Die Ressource kann eine einzelne Funktion oder viele Funktionen enthalten, die unabhängig voneinander ausgeführt werden, aber dieselben Computeressourcen, Konnektivität und Einstellungen gemeinsam nutzen. Funktionen bieten eine vollständige Palette von triggerbasierten Vorlagen, die Ihnen helfen, schnell loszulegen. Sie können Ihren Code und potenziell andere Ausgabe- und Eingabebindungen hinzufügen.
Die Ressourceneinstellungen der Funktions-App umfassen allgemeine serverlose Konfigurationen wie Umgebungsvariablen, Authentifizierung, Protokollierung und CORS.
Langlebige, zustandsbehaftete Funktionen
Während Funktionsausführungen in Azure von Natur aus zustandslos sind, behalten Durable Functions den Zustand bei und verwalten langlebige Funktionen in Azure. Verwenden Sie sie, wenn Sie Orchestrierungen, Wiederholungen oder mehrstufige Workflows benötigen, die eine einzelne Anforderung überleben. Informationen zu den ersten Schritten finden Sie unter Erstellen Ihrer ersten dauerhaften 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 zusammen mit Ihrer statischen Web-App bereitstellen möchten, müssen Sie die API-Aufrufe Ihrer Clientanwendung nicht über einen Proxy leiten. Der Proxy wird für Sie eingerichtet, wenn Sie die Funktions-App als verwaltete App bereitstellen.
Wenn Sie Ihre statische Web-App lokal mithilfe von Azure Functions 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 Sie nicht
-
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 Funktions-App in einer sicheren Unterdomäne
*.azurewebsites.net() gehostet wird, können Sie sie sofort (mithttps) 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 Funktions-App in einer sicheren Unterdomäne
-
Bereitstellung und Überwachung:
- Bereitstellungsslots – Erstellen Sie einen Bereitstellungsslot wie
stageoderpreflightund pushen Sie zu diesen Slot. Tauschen Sie diesen Stagingslot in einen Produktionsslot, wenn Sie soweit sind. Gewöhnen Sie sich nicht das manuelle Pushen in die Produktion an. Ihre Codebasis sollte in der Lage sein, die Version oder den Commit anzugeben, die bzw. der sich in einem Slot befindet. Wenn Sie Flex-Verbrauch verwenden, nutzen Sie Bereitstellungen ohne Ausfallzeit anstelle von Slots. - 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.
Hostoptionen für Azure Functions
Sie können Azure Functions je nach Ihren Anforderungen auf unterschiedliche Weise hosten:
Azure Functions-Ressourcenhostingpläne
Wenn Sie eine Funktions-App-Ressource erstellen, wählen Sie aus den folgenden Hostingplänen für Funktionen aus:
- Verbrauchsplan (Legacy): Zahlen 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. Dieser Plan verwendet eine ausführungsbasierte Abrechnung ähnlich wie beim Verbrauchsplan, jedoch mit zusätzlichen Kosten für Funktionen wie stets verfügbare 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 Übersicht zu Azure Functions in Azure Container Apps.
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:
Verwenden Sie eines der folgenden v4-Programmiermodellbeispiele als Ausgangspunkt für Ihr Funktionsprojekt.
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
});
Navigieren Sie nach dem Starten der App zu http://localhost:7071/api/status, um den Endpunkt lokal zu testen.
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.
Nächste Schritte
- Erstellen und bereitstellen Sie Ihre erste HTTP-Triggerfunktion mithilfe von Visual Studio Code.
- Vergleichen Sie Azure Functions Hostingoptionen, bevor Sie die Bereitstellung ausführen.
- Erstellen Sie einen Workflow mit Durable Functions für JavaScript.
- Überprüfen Sie das Sichern von Azure Functions, bevor Sie eine Verbindung mit Produktionsressourcen herstellen.