Azure Functions Entwicklerhandbuch

In Azure Functions teilen alle Funktionen einige kerntechnische Konzepte und Komponenten, unabhängig von Ihrer bevorzugten Sprache oder Entwicklungsumgebung. Dieser Artikel ist sprachspezifisch. Wählen Sie am Anfang des Artikels Ihre bevorzugte Entwicklungssprache aus.

Dieser Artikel geht davon aus, dass Sie bereits die Azure Functions-Übersicht gelesen haben.

Wenn Sie lieber direkt ins Lernprogramm springen möchten, können Sie ein Schnellstart-Lernprogramm mit Visual Studio, Visual Studio Code oder über die befehlsaufforderung ausführen.

Wenn Sie lieber direkt in das Lernprogramm springen möchten, können Sie ein Schnellstart-Lernprogramm mit Maven (Befehlszeile), Eclipse ausführen, IntelliJ IDEA, Gradle, Quarkus, Spring Cloud, oder Visual Studio Code.

Wenn Sie es vorziehen, direkt einzuspringen, können Sie ein Schnellstart-Lernprogramm mit Visual Studio Code oder über die befehlsaufforderung abschließen.

Wenn Sie es vorziehen, direkt einzuspringen, können Sie ein Schnellstart-Lernprogramm mit Visual Studio Code oder über die befehlsaufforderung abschließen.

Wenn Sie es vorziehen, direkt einzuspringen, können Sie ein Schnellstart-Lernprogramm mit Visual Studio Code oder über die befehlsaufforderung abschließen.

Wenn Sie es vorziehen, direkt einzuspringen, können Sie ein Schnellstart-Lernprogramm mit Visual Studio Code oder über die befehlsaufforderung abschließen.

Code-Projekt

Im Kern von Azure Functions handelt es sich um ein sprachspezifisches Codeprojekt, das eine oder mehrere Einheiten der Codeausführung implementiert, die functions genannt wird. Funktionen sind einfach Methoden, die in der Azure Cloud basierend auf Ereignissen, als Reaktion auf HTTP-Anforderungen oder auf einem Zeitplan ausgeführt werden. Stellen Sie sich Ihr Azure Functions Codeprojekt als Mechanismus zum Organisieren, Bereitstellen und zusammenentwendigen Verwalten Ihrer einzelnen Funktionen im Projekt vor, wenn sie in Azure ausgeführt werden. Weitere Informationen finden Sie unter Organisieren von Funktionen.

Die Art und Weise, wie Sie Ihr Codeprojekt gestalten und angeben, welche Methoden in Ihrem Projekt Funktionen sind, hängt von der Entwicklungssprache Ihres Projekts ab. Ausführliche sprachspezifische Anleitungen finden Sie im Leitfaden für C#-Entwickelnde.

Die Art und Weise, wie Sie Ihr Codeprojekt gestalten und angeben, welche Methoden in Ihrem Projekt Funktionen sind, hängt von der Entwicklungssprache Ihres Projekts ab. Sprachspezifische Anleitungen finden Sie im Handbuch für Java Entwickler.

Die Art und Weise, wie Sie Ihr Codeprojekt gestalten und angeben, welche Methoden in Ihrem Projekt Funktionen sind, hängt von der Entwicklungssprache Ihres Projekts ab. Ausführliche sprachspezifische Anleitungen finden Sie im Leitfaden für Node.js-Entwickelnde.

Die Art und Weise, wie Sie Ihr Codeprojekt gestalten und angeben, welche Methoden in Ihrem Projekt Funktionen sind, hängt von der Entwicklungssprache Ihres Projekts ab. Ausführliche sprachspezifische Anleitungen finden Sie im Leitfaden für PowerShell-Entwickelnde.

Die Art und Weise, wie Sie Ihr Codeprojekt gestalten und angeben, welche Methoden in Ihrem Projekt Funktionen sind, hängt von der Entwicklungssprache Ihres Projekts ab. Eine sprachspezifische Anleitung finden Sie im Handbuch zu Python Entwicklern.

Die Art und Weise, wie Sie Ihr Codeprojekt gestalten und angeben, welche Methoden in Ihrem Projekt Funktionen sind, hängt von der Entwicklungssprache Ihres Projekts ab. Für sprachspezifische Hinweise siehe den Go-Entwicklerleitfaden.

Alle Funktionen müssen über einen Trigger verfügen, der definiert, wie die Funktion gestartet wird und der Eingaben in die Funktion machen kann. Ihre Funktionen können optional Eingabe- und Ausgabebindungen definieren. Diese Bindungen vereinfachen Verbindungen mit anderen Diensten, ohne dass Sie mit Client-SDKs arbeiten müssen. Weitere Informationen finden Sie unter Azure Functions Trigger und Bindungskonzepte.

Azure Functions stellt eine Reihe von sprachspezifischen Projekt- und Funktionsvorlagen bereit, die das Erstellen neuer Codeprojekte und das Hinzufügen von Funktionen zu Ihrem Projekt vereinfachen. Sie können jedes der Tools verwenden, die Azure Functions Entwicklung unterstützen, um neue Apps und Funktionen mithilfe dieser Vorlagen zu generieren.

Entwicklungstools

Die folgenden Tools bieten ein lokales und integriertes Entwicklungs- und Veröffentlichungserlebnis für Azure Functions in Ihrer bevorzugten Sprache:

Diese Tools sind in Azure Functions Core Tools integriert, sodass Sie mithilfe der Funktionslaufzeit auf Ihrem lokalen Computer ausführen und debuggen können. Weitere Informationen finden Sie unter Code und testen Sie Azure Functions lokal.

Es gibt auch einen Editor im Azure-Portal, mit dem Sie Ihren Code und Ihrefunction.json-Definitionsdatei direkt im Portal aktualisieren können. Verwenden Sie diesen Editor nur für kleine Änderungen oder zum Erstellen von Proof-of-Concept-Funktionen. Entwickle deine Funktionen immer lokal, wenn möglich. Weitere Informationen finden Sie unter Create your first function in the Azure portal.

Die Portalbearbeitung wird nur für Node.js Version 3 unterstützt, die die Datei function.json verwendet.

Bereitstellung

Wenn Sie Ihr Codeprojekt in Azure veröffentlichen, stellen Sie Ihr Projekt im Wesentlichen in einer vorhandenen Funktions-App-Ressource bereit. Eine Funktions-App stellt einen Ausführungskontext in Azure bereit, in dem Ihre Funktionen ausgeführt werden. Daher ist dies die Bereitstellungs- und Verwaltungseinheit für Ihre Funktionen. Aus Azure Ressourcenperspektive entspricht eine Funktions-App einer Websiteressource (Microsoft.Web/sites) in Azure App Service, die einer Web-App entspricht.

Eine Funktions-App besteht aus einer oder mehreren einzelnen Funktionen, die Sie verwalten, ausrollen und gemeinsam skalieren. Der Tarif, die Bereitstellungsmethode und die Runtimeversion sind für alle Funktionen in einer Funktions-App gleich. Weitere Informationen finden Sie unter Verwalten von Funktions-Apps.

Wenn die Funktions-App und alle anderen benötigten Ressourcen in Azure noch nicht existieren, musst du diese Ressourcen erstellen, bevor du deine Projektdateien bereitstellen kannst. Sie können diese Ressourcen auf eine der folgenden Arten erstellen:

Zusätzlich zur toolbasierten Veröffentlichung unterstützt Functions andere Technologien zum Bereitstellen von Quellcode in einer vorhandenen Funktions-App. Weitere Informationen finden Sie unter Deployment-Technologien in Azure Functions.

Verbinden mit Diensten

Eine wichtige Anforderung eines cloudbasierten Computediensts ist das Lesen von Daten aus anderen Clouddiensten und das Schreiben von Daten in andere Clouddienste. Functions bietet eine umfangreiche Gruppe von Bindungen, die es Ihnen erleichtern, eine Verbindung mit Diensten herzustellen, ohne mit Client-SDKs arbeiten zu müssen.

Egal, ob du die von Functions bereitgestellten Bindungserweiterungen nutzt oder direkt mit Client-SDKs arbeitest, du speicherst Verbindungsdaten sicher und integrierst sie nicht in deinen Code.

Standard-Hostspeicher

Azure Functions erfordert ein Azure Storage-Konto, wenn Sie eine Funktions-App-Instanz erstellen. Dieses Standardspeicherkonto wird intern vom Functions-Host und einigen Bindungserweiterungen verwendet.

Um zu erfahren, wie man Verbindungen zum Standardspeicherkonto sicher definiert, siehe Verbindungen definieren.

Bindungen

Funktionen stellen Bindungen für viele Azure Dienste und einige Drittanbieterdienste bereit, die als Erweiterungen implementiert werden. Weitere Informationen finden Sie in der vollständigen Liste der unterstützten Bindungen.

Bindungserweiterungen können sowohl Ein- als auch Ausgaben unterstützen, und viele Trigger fungieren auch als Eingabebindungen. Mit Bindungen können Sie die Verbindung mit Diensten so konfigurieren, dass der Funktionshost den Datenzugriff für Sie verarbeiten kann. Weitere Informationen finden Sie unter Azure Functions Trigger und Bindungskonzepte.

Wenn Probleme mit Fehlern auftreten, die aus Bindungen stammen, lesen Sie die Dokumentation Azure Functions Binding Error Codes. Um zu erfahren, wie man Verbindungen in Bindungen zu entfernten Diensten sicher definiert, siehe Verbindungen definieren.

Allgemeine Eigenschaften für identitätsbasierte Verbindungen

Identitätsbasierte Verbindungen für Azure Functions verwenden verwaltete Identitäten zur Authentifizierung. Die systemzugewiesene Identität wird standardmäßig verwendet, aber Sie können eine benutzerzugewiesene Identität mit den credential Eigenschaften und clientId angeben. Für vollständige Details zur Konfiguration identitätsbasierter Verbindungen, einschließlich erforderlicher App-Einstellungen und RBAC-Berechtigungen, siehe Define managed identity connections.

Lokale Entwicklung mit identitätsbasierten Verbindungen

Beim lokalen Betrieb verwenden identitätsbasierte Verbindungen deine Entwickleridentität (wie z. B. deinen Azure CLI-Login) anstelle einer verwalteten Identität. Sie müssen die credential Immobilien clientId während der lokalen Entwicklung nicht festlegen. Weitere Informationen finden Sie unter "Lokale Entwicklung mit identitätsbasierten Verbindungen".

Client-SDKs

Während Functions Bindings bietet, um den Datenzugriff in Ihrem Funktionscode zu vereinfachen, können Sie auch ein Client-SDK in Ihrem Projekt verwenden, um direkt auf einen bestimmten Dienst zuzugreifen. Möglicherweise müssen Sie Client-SDKs direkt verwenden, wenn Ihre Funktionen eine Funktionalität des zugrunde liegenden SDK benötigen, die von der Binding-Erweiterung nicht unterstützt wird. Dein Funktionscode kann nicht auf die zugrundeliegenden Clients zugriffen, die von deinen Binding-Erweiterungen verwendet werden. Sie müssen alle Client-Instanzen, die Sie in Ihren Funktionen verwenden müssen, unabhängig erstellen und verwalten.

Berücksichtigen Sie diese Probleme beim Erstellen und Verwenden von Client-SDKs in Ihrem Funktionscode:

  • Verwenden Sie denselben Prozess zum Speichern und Zugriff auf Verbindungszeichen, den Binding-Erweiterungen verwenden. Um mehr zu erfahren, siehe Verbindungen definieren.

  • Wenn Sie Ihre App in einem Konsumplan hosten, gibt es eine Begrenzung für die Gesamtzahl der ausgehenden Verbindungen in allen Instanzen. Dieses Limit bedeutet, dass man vorsichtig sein muss, um eine Port-Erschöpfung zu vermeiden. Weitere Informationen finden Sie unter Manage SDK Client Connections.

  • Wenn du eine Client-SDK-Instanz in deinen Funktionen erstellst, erhalte die vom Client benötigten Verbindungsinformationen aus den Umgebungsvariablen.
  • Wenn du eine Client-SDK-Instanz in deinen Funktionen erstellst, erhalte die vom Client benötigten Verbindungsinformationen aus den Umgebungsvariablen.
  • Wenn du eine Client-SDK-Instanz in deinen Funktionen erstellst, erhalte die vom Client benötigten Verbindungsinformationen aus den Umgebungsvariablen.
  • Wenn du eine Client-SDK-Instanz in deinen Funktionen erstellst, erhalte die vom Client benötigten Verbindungsinformationen aus den Umgebungsvariablen.
  • Wenn du eine Client-SDK-Instanz in deinen Funktionen erstellst, erhalte die vom Client benötigten Verbindungsinformationen aus den Umgebungsvariablen.

Melden von Problemen

Element BESCHREIBUNG Verknüpfung
Typ Script Host, Trigger und Bindungen, Sprachunterstützung Datei ein Problem
Vorlagen Vorlage für Codeprobleme bei der Erstellung Datei ein Problem

Open Source-Repositorys

Der Code für Azure Functions ist Open Source. In diesen GitHub-Repositories finden Sie wichtige Komponenten:

Weitere Informationen finden Sie in den folgenden Ressourcen: