Anmerkung
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.
Wenn möglich, sollten Sie Ihr Azure Functions-Codeprojekt in einer lokalen Entwicklungsumgebung erstellen und überprüfen. Azure Functions Core Tools bietet eine lokale Laufzeitversion von Azure Functions, die in beliebte Entwicklungstools für eine integrierte Entwicklung, Debugging und Bereitstellung integriert ist. Ihre lokalen Funktionen können sogar eine Verbindung mit Live-Azure-Diensten herstellen.
Dieser Artikel enthält einige gemeinsame Anleitungen für die lokale Entwicklung, z. B. das Arbeiten mit der local.settings.json-Datei. Sie enthält auch Links zu entwicklungsumgebungsspezifischen Anleitungen.
Tipp
Ausführliche Informationen zum lokalen Entwickeln von Funktionen finden Sie in den verknüpften IDE-spezifischen Anleitungsartikeln.
Lokale Entwicklungsumgebungen
Die Art und Weise, wie Sie Funktionen auf dem lokalen Computer entwickeln, hängt von der verwendeten Sprache und den Tooleinstellungen ab. Stellen Sie sicher, dass Sie ihre bevorzugte Sprache oben im Artikel auswählen.
Tipp
Alle lokalen Entwicklungen basieren auf Azure Functions Core Tools, um die Funktionen-Laufzeit für das Debuggen in einer lokalen Umgebung bereitzustellen.
Sie können diese Entwicklungsumgebungen verwenden, um Lokalfunktionen in Ihrer bevorzugten Sprache zu codieren:
| Environment | BESCHREIBUNG |
|---|---|
| Visual Studio | Die Azure Functions-Tools sind in der Azure-Entwicklungsarbeitslast von Visual Studio enthalten. Hiermit können Sie Ihren C#-Funktionscode als .NET-Klassenbibliothek in Azure kompilieren und bereitstellen. Enthält die Core Tools für lokale Tests. Weitere Informationen finden Sie unter Erstellen Ihrer ersten C#-Funktion in Azure mit Visual Studio |
| Visual Studio Code | Die Azure Functions-Erweiterung für Visual Studio Code fügt Funktionen zur Unterstützung von Visual Studio Code hinzu. Erfordert Core Tools. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion mit Visual Studio Code. |
| Eingabeaufforderung oder Terminal | Azure Functions Core Tools umfasst die Core-Runtime und Vorlagen zum Erstellen von Funktionen, die die lokale Entwicklung ermöglichen. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen einer C#-Funktion in Azure über die Befehlszeile. |
| Environment | BESCHREIBUNG |
|---|---|
| Maven | Maven archetype verwendet Core Tools, um die Entwicklung von Java-Funktionen zu ermöglichen. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen der ersten Funktion mit Java und Maven. |
| Visual Studio Code | Die Azure Functions-Erweiterung für Visual Studio Code fügt Funktionen zur Unterstützung von Visual Studio Code hinzu. Erfordert Core Tools. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion mit Visual Studio Code. |
| IntelliJ IDEA | Mit maven archetype und Core Tools können Sie Ihre Funktionen mithilfe von IntelliJ entwickeln. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Java-Funktion in Azure mit IntelliJ. |
| Finsternis | Mit Maven Archetype und Core Tools können Sie Ihre Funktionen mithilfe von Eclipse entwickeln. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Java-Funktion in Azure mithilfe von Ecplise. |
| Environment | BESCHREIBUNG |
|---|---|
| Visual Studio Code | Die Azure Functions-Erweiterung für Visual Studio Code fügt Funktionen zur Unterstützung von Visual Studio Code hinzu. Erfordert Core Tools. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion mit Visual Studio Code. |
| Eingabeaufforderung oder Terminal | Azure Functions Core Tools umfasst die Core-Runtime und Vorlagen zum Erstellen von Funktionen, die die lokale Entwicklung ermöglichen. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen einer Node.js-Funktion in Azure über die Befehlszeile. |
| Environment | BESCHREIBUNG |
|---|---|
| Visual Studio Code | Die Azure Functions-Erweiterung für Visual Studio Code fügt Funktionen zur Unterstützung von Visual Studio Code hinzu. Erfordert Core Tools. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion mit Visual Studio Code. |
| Eingabeaufforderung oder Terminal | Azure Functions Core Tools umfasst die Core-Runtime und Vorlagen zum Erstellen von Funktionen, die die lokale Entwicklung ermöglichen. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen einer PowerShell-Funktion in Azure über die Befehlszeile. |
| Environment | BESCHREIBUNG |
|---|---|
| Visual Studio Code | Die Azure Functions-Erweiterung für Visual Studio Code fügt Funktionen zur Unterstützung von Visual Studio Code hinzu. Erfordert Core Tools. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion mit Visual Studio Code. |
| Eingabeaufforderung oder Terminal | Azure Functions Core Tools umfasst die Core-Runtime und Vorlagen zum Erstellen von Funktionen, die die lokale Entwicklung ermöglichen. Unterstützt die Entwicklung unter Linux, macOS und Windows. Weitere Informationen finden Sie unter Erstellen einer Python-Funktion in Azure über die Befehlszeile. |
In jeder dieser lokalen Entwicklungsumgebungen können Sie Funktions-App-Projekte erstellen und vordefinierte Funktionsvorlagen zum Erstellen neuer Funktionen verwenden. In jeder wird Core Tools verwendet, sodass Sie Ihre Funktionen in der echten Functions-Runtime auf Ihrem eigenen Computer testen und debuggen können, so wie Sie dies für alle anderen Apps auch tun. Außerdem können Sie Ihr Funktions-App-Projekt in jeder dieser Umgebungen in Azure veröffentlichen.
Lokale Projektdateien
Ein Functions-Projektverzeichnis enthält die folgenden Dateien im Projektstammordner, unabhängig von der Programmiersprache:
| Dateiname | BESCHREIBUNG |
|---|---|
| host.json | Weitere Informationen finden Sie in der Referenz zu „host.json“. |
| local.settings.json | Einstellungen, die bei lokaler Ausführung von Core Tools verwendet werden, einschließlich App-Einstellungen. Weitere Informationen finden Sie in der lokalen Einstellungsdatei. |
| .gitignore | Verhindert, dass die Datei „local.settings.json“ versehentlich in einem Git-Repository veröffentlicht wird. Weitere Informationen finden Sie in der lokalen Einstellungsdatei. |
| .vscode\extensions.json | Datei mit Einstellungen, die beim Öffnen des Projektordners in Visual Studio Code verwendet wird. |
Andere Dateien im Projekt hängen von Ihrer Programmiersprache und bestimmten Funktionen ab. Weitere Informationen finden Sie im Entwicklerhandbuch für Ihre Programmiersprache.
Datei für lokale Einstellungen
In der local.settings.json Datei werden App-Einstellungen und -Einstellungen gespeichert, die von lokalen Entwicklungstools verwendet werden. Einstellungen in der Datei local.settings.json werden nur bei der lokalen Ausführung Ihres Projekts verwendet. Wenn Sie Ihr Projekt in Azure veröffentlichen, müssen Sie auch alle erforderlichen Einstellungen zu den App-Einstellungen für die Funktions-App hinzufügen.
Wichtig
Da die local.settings.json Datei möglicherweise geheime Schlüssel enthält, z. B. Verbindungszeichenfolgen, sollten Sie vorsichtig vorgehen, um die Quellcodeverwaltung zu übernehmen. Tools, die Funktionen unterstützen, bieten Möglichkeiten zum Synchronisieren von Einstellungen in der local.settings.json Datei mit den App-Einstellungen in der Funktions-App, für die Ihr Projekt bereitgestellt wird.
Die local.settings.json Datei weist folgende Struktur auf:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>",
"AzureWebJobs.HttpExample.Disabled": "true"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*",
"CORSCredentials": false
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
Diese Einstellungen werden bei der lokalen Ausführung von Projekten unterstützt:
| Einstellung | BESCHREIBUNG |
|---|---|
IsEncrypted |
Wenn diese Einstellung auf true festgelegt wird, werden alle Werte mithilfe eines Schlüssels des lokalen Computers verschlüsselt. Wird mit func settings-Befehlen verwendet. Der Standardwert ist false. Es empfiehlt sich ggf., die Datei „local.settings.json“ auf dem lokalen Computer zu verschlüsseln, wenn sie Geheimnisse (etwa Dienstverbindungszeichenfolgen) enthält. Der Host entschlüsselt die Einstellungen bei der Ausführung automatisch. Verwenden Sie den Befehl func settings decrypt, bevor Sie versuchen, lokal verschlüsselte Einstellungen zu lesen. |
Values |
Eine Sammlung von Anwendungseinstellungen, die bei der lokalen Ausführung eines Projekts verwendet wird. Diese Schlüssel-Wert-Paare (Zeichenfolge-Zeichenfolge) entsprechen den Anwendungseinstellungen in Ihrer Funktions-App in Azure, etwa AzureWebJobsStorage. Viele Trigger und Bindungen verfügen über eine Eigenschaft, die auf eine App-Einstellung für die Verbindungszeichenfolge verweist, z. B. Connection für den Connection. Für diese Eigenschaften muss eine Anwendungseinstellung im Array Values definiert sein. Eine Liste der häufig verwendeten Einstellungen finden Sie in der nachfolgenden Tabelle. Werte müssen Zeichenfolgen und dürfen nicht JSON-Objekte oder Arrays sein. Einstellungsnamen dürfen weder einen Doppelpunkt ( __) noch einen doppelten Unterstrich (:) enthalten. Doppelte Unterstriche sind von der Runtime reserviert, und der Doppelpunkt ist für die Unterstützung der Abhängigkeitsinjektion reserviert. |
Host |
Die Einstellungen in diesem Abschnitt passen den Hostprozess von Functions bei der lokalen Ausführung von Projekten an. Diese Einstellungen sind getrennt von den host.json-Einstellungen, die auch bei der Ausführung von Projekten in Azure angewendet werden. |
LocalHttpPort |
Legt den Standardport fest, der bei der Ausführung des lokalen Functions-Host verwendet wird (func host start und func run). Die Befehlszeilenoption --port hat Vorrang vor dieser Einstellung. Beispiel: Bei der Ausführung in der Visual Studio-IDE können Sie die Portnummer ändern, indem Sie zum Fenster „Projekteigenschaften“ > „Debuggen“ navigieren und die Portnummer im Befehl host start --port <your-port-number> angeben, der im Feld „Anwendungsargumente“ eingegeben werden kann. |
CORS |
Definiert die für die Ressourcenfreigabe zwischen verschiedenen Ursprüngen (CORS) zulässigen Ursprünge. Ursprünge werden als durch Trennzeichen getrennte Liste ohne Leerzeichen bereitgestellt. Den Platzhalterwert (*) wird unterstützt, wodurch Anforderungen von einem beliebigen Ursprung zulässig sind. |
CORSCredentials |
Wird true festgelegt, sind Anforderungen vom Typ withCredentials zulässig. |
ConnectionStrings |
Eine Auflistung. Verwenden Sie diese Sammlung nicht für die Verbindungszeichenfolgen, die von Ihren Funktionsbindungen verwendet werden. Diese Sammlung wird nur von Frameworks verwendet, die Verbindungszeichenfolgen üblicherweise aus dem Abschnitt ConnectionStrings einer Konfigurationsdatei abrufen, z. B. ConnectionStrings. Verbindungszeichenfolgen in diesem Objekt werden der Umgebung mit dem Anbietertyp System.Data.SqlClient hinzugefügt. Elemente in dieser Sammlung werden nicht mit anderen App-Einstellungen in Azure veröffentlicht. Sie müssen diese Werte explizit zur Sammlung Connection strings in den Einstellungen Ihrer Funktions-App hinzufügen. Bei der Erstellung einer SqlConnection-Klasse in Ihrem Funktionscode sollten Sie den Verbindungszeichenfolgenwert zusammen mit den anderen Verbindungen in den SqlConnection im Portal speichern. |
Bei lokaler Ausführung können die folgenden Anwendungseinstellungen in das Array Values aufgenommen werden:
| Einstellung | Werte | BESCHREIBUNG |
|---|---|---|
AzureWebJobsStorage |
Verbindungszeichenfolge für das Speicherkonto oderUseDevelopmentStorage=true |
Enthält die Verbindungszeichenfolge für ein Azure-Speicherkonto. Erforderlich, wenn andere Trigger als HTTP verwendet werden. Weitere Informationen finden Sie in der Referenz zu AzureWebJobsStorage.Wenn der Azurite-Emulator lokal installiert ist und Sie AzureWebJobsStorage auf UseDevelopmentStorage=true festlegen, verwendet Core Tools den Emulator. Weitere Informationen finden Sie unter Emulator für lokalen Speicher. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true|false |
Wenn Sie bei lokaler Ausführung eine Funktion deaktivieren möchten, fügen Sie der Sammlung "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" hinzu, wobei <FUNCTION_NAME> der Name der Funktion ist. Weitere Informationen zum Deaktivieren von Funktionen in Azure Functions finden Sie hier. |
FUNCTIONS_WORKER_RUNTIME |
dotnetdotnet-isolatednodejavapowershellpython |
Gibt die Zielsprache der Functions-Runtime an. Erforderlich für Version 2.x und höher der Functions-Runtime. Diese Einstellung wird von Core Tools für Ihr Projekt generiert. Weitere Informationen finden Sie in der Referenz zu FUNCTIONS_WORKER_RUNTIME. |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Legt fest, dass PowerShell 7 beim lokalen Ausführen verwendet werden soll. Wird kein Wert festgelegt, wird PowerShell Core 6 verwendet. Diese Einstellung wird nur bei lokaler Ausführung verwendet. Bei der Ausführung in Azure wird die PowerShell-Runtimeversion durch die Einstellung der powerShellVersion-Sitekonfiguration bestimmt, die im Portal festgelegt werden kann. |
Informationen zum Verwenden von Werten aus dem values Array als Umgebungsvariablen im Funktionscode finden Sie im Entwicklerhandbuch unter Umgebungsvariablen .
Informationen zum Verwenden von Werten aus dem values Array als Umgebungsvariablen im Funktionscode finden Sie im Entwicklerhandbuch unter Umgebungsvariablen .
Informationen zum Verwenden von Werten aus dem values Array als Umgebungsvariablen im Funktionscode finden Sie im Entwicklerhandbuch unter Umgebungsvariablen .
Informationen zum Verwenden von Werten aus dem values Array als Umgebungsvariablen im Funktionscode finden Sie im Entwicklerhandbuch unter Umgebungsvariablen .
Synchronisieren der Einstellungen
Wenn Sie Ihre Funktionen lokal entwickeln, müssen von Ihrer App benötigte lokale Einstellungen auch in App-Einstellungen der Funktions-App vorhanden sein, für die Ihr Code bereitgestellt wird. Möglicherweise müssen Sie auch aktuelle Einstellungen aus der Funktions-App in Ihr lokales Projekt herunterladen. Während Sie App-Einstellungen im Azure-Portal manuell konfigurieren können, können Sie mit den folgenden Tools auch App-Einstellungen mit lokalen Einstellungen in Ihrem Projekt synchronisieren:
Trigger und Bindungen
Wenn Sie Ihre Funktionen lokal entwickeln, müssen Sie das Trigger- und Bindungsverhalten berücksichtigen. Für HTTP-Trigger können Sie http://localhost/ verwenden, um den HTTP-Endpunkt lokal aufzurufen. Für nicht HTTP ausgelöste Funktionen gibt es mehrere Optionen, die lokal ausgeführt werden können:
- Die einfachste Möglichkeit zum Testen von Bindungen während der lokalen Entwicklung besteht darin, Verbindungszeichenfolgen zu verwenden, die auf Azure-Livedienste abzielen. Sie können Livedienste als Ziel verwenden, indem Sie die entsprechenden Verbindungszeichenfolgeneinstellungen im
Values-Array in der Datei „local.settings.json“ hinzufügen. Wenn Sie dies tun, wirken sich lokale Ausführungen während des Tests möglicherweise auf Ihre Produktionsdienste aus. Erwägen Sie stattdessen die Einrichtung separater Dienste, die während der Entwicklung und tests verwendet werden sollen, und wechseln Sie dann während der Produktion zu verschiedenen Diensten. - Für speicherbasierte Trigger können Sie einen lokalen Speicheremulator verwenden.
- Sie können Nicht-HTTP-Triggerfunktionen manuell ausführen, indem Sie spezielle Administratorendpunkte verwenden. Weitere Informationen finden Sie unter Manuelles Ausführen einer nicht HTTP ausgelösten Funktion.
Während der lokalen Tests müssen Sie den Host ausführen, der von Core Tools (func.exe) lokal bereitgestellt wird. Weitere Informationen finden Sie unter Azure Functions Core Tools.
Test Tools für HTTP
Während der Entwicklung ist es einfach, alle Funktionsendpunkte aus einem Webbrowser aufzurufen, wenn sie die HTTP GET-Methode unterstützen. Für andere HTTP-Methoden, die Nutzdaten wie POST oder PUT unterstützen, müssen Sie jedoch ein HTTP-Testtool verwenden, um diese HTTP-Anforderungen an Ihre Funktionsendpunkte zu erstellen und zu senden.
Achtung
Stellen Sie für Szenarien, in denen Ihre Anforderungen vertrauliche Daten enthalten müssen, sicher, dass Sie ein Tool verwenden, das Ihre Daten schützt. Das verringert das Risiko, vertrauliche Daten der Öffentlichkeit offenzulegen. Vertrauliche Daten, die Sie schützen sollten, können umfassen: Anmeldeinformationen, Geheime Schlüssel, Zugriffstoken, API-Schlüssel, Geolocation-Daten, sogar personenbezogene Daten.
Sie können Ihre Daten schützen, indem Sie ein HTTP-Testtool auswählen, das offline oder lokal funktioniert, Ihre Daten nicht mit der Cloud synchronisiert und nicht erfordert, dass Sie sich bei einem Onlinekonto anmelden. Einige Tools können Ihre Daten auch vor versehentlicher Gefährdung schützen, indem bestimmte Sicherheitsfeatures implementiert werden.
Vermeiden Sie die Verwendung von Tools, die Ihren HTTP-Anforderungsverlauf (einschließlich vertraulicher Informationen) zentral speichern, keine bewährten Sicherheitsmethoden befolgen, oder nicht auf Datenschutzbedenken achten.
Erwägen Sie die Verwendung eines dieser Tools zum sicheren Senden von HTTP-Anforderungen an Ihre Funktionsendpunkte:
- Visual Studio Code mit einer Erweiterung von Visual Studio Marketplace, z. B. REST Client
- PowerShell Invoke-RestMethod
- Microsoft Edge – Netzwerkkonsolentool
- Bruno
- curl
Lokaler Speicheremulator
Während der lokalen Entwicklung können Sie den lokalen Azurite-Emulator verwenden, um Funktionen mit Azure Storage-Bindungen (Queue Storage, Blob Storage und Table Storage) zu testen, ohne eine Verbindung mit Remotespeicherdiensten herstellen zu müssen. Azurite kann in Visual Studio Code und Visual Studio integriert und auch über die Eingabeaufforderung mithilfe von npm ausgeführt werden. Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für lokale Azure Storage-Entwicklung.
Die folgende Einstellung in der Values-Sammlung der Datei „local.settings.json“ weist den lokalen Functions-Host an, Azurite für die AzureWebJobsStorage-Standardverbindung zu verwenden:
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
Wenn dieser Wert eingestellt ist, stellt jeder Azure Storage-Trigger oder jede Azure Storage-Bindung, der bzw. die AzureWebJobsStorage als Verbindung verwendet, bei lokaler Ausführung eine Verbindung mit Azurite her. Beachten Sie diese Überlegungen bei der Verwendung der Speicheremulation während der lokalen Ausführung:
- Sie müssen Azurite installiert haben und ausführen.
- Sie sollten vor der Veröffentlichung in Azure eine tatsächliche Speicherverbindung mit Azure-Diensten testen.
- Wenn Sie Ihr Projekt veröffentlichen, veröffentlichen Sie die
AzureWebJobsStorage-Einstellung nicht alsUseDevelopmentStorage=true. In Azure muss dieAzureWebJobsStorage-Einstellung immer die Verbindungszeichenfolge des von Ihrer Funktions-App verwendeten Speicherkontos sein. Weitere Informationen finden Sie unterAzureWebJobsStorage.
Verwandte Artikel
- Weitere Informationen zur lokalen Entwicklung von Funktionen mithilfe von Visual Studio finden Sie unter Entwickeln von Azure-Funktionen mit Visual Studio.
- Weitere Informationen zur lokalen Entwicklung von Funktionen mithilfe von Visual Studio Code auf einem Mac-, Linux- oder Windows-Computer finden Sie unter Entwickeln von Azure-Funktionen mithilfe von Visual Studio Code.
- Weitere Informationen zum Entwickeln von Funktionen über die Eingabeaufforderung oder das Terminal finden Sie unter Arbeiten mit Azure Functions Core Tools.