Ausführen Ihrer Azure Functions aus einem PaketRun your Azure Functions from a package file

In Azure können Sie Ihre Functions direkt aus der Bereitstellungspaketdatei in Ihrer Funktions-App ausführen.In Azure, you can run your functions directly from a deployment package file in your function app. Die andere Option ist die Bereitstellung Ihrer Dateien im Verzeichnis d:\home\site\wwwroot Ihrer Funktions-App.The other option is to deploy your files in the d:\home\site\wwwroot directory of your function app.

Dieser Artikel beschreibt die Vorteile einer Ausführung Ihrer Functions aus einem Paket.This article describes the benefits of running your functions from a package. Außerdem wir erläutert, wie Sie diese Funktionalität in Ihrer Funktions-App aktivieren.It also shows how to enable this functionality in your function app.

Wichtig

Wenn Sie Ihre Funktionen in einer Linux-Funktions-App in einem Premium-Tarif bereitstellen, sollte die Ausführung immer über die Paketdatei erfolgen, und Sie sollten Ihre App unter Verwendung von Azure Functions Core Tools veröffentlichen.When deploying your functions to a Linux function app in a Premium plan, you should always run from the package file and publish your app using the Azure Functions Core Tools.

Vorteile der Ausführung aus einer PaketdateiBenefits of running from a package file

Es gibt mehrere Vorteile bei der Ausführung aus einer Paketdatei:There are several benefits to running from a package file:

  • Reduziert das Risiko von Sperrungen beim Kopieren von Dateien.Reduces the risk of file copy locking issues.
  • Kann in einer Produktions-App (mit Neustart) bereitgestellt werden.Can be deployed to a production app (with restart).
  • Sie können sich sicher sein, dass die Dateien, die in Ihrer App ausgeführt werden, sicher sind.You can be certain of the files that are running in your app.
  • Verbessert die Leistung von Azure Resource Manager-Bereitstellungen.Improves the performance of Azure Resource Manager deployments.
  • Kann Kaltstartzeiten verringern, insbesondere für JavaScript-Funktionen mit großen npm-Paketstrukturen.May reduce cold-start times, particularly for JavaScript functions with large npm package trees.

Weitere Informationen dazu finden Sie in dieser Ankündigung.For more information, see this announcement.

Aktivieren von Funktionen zum Ausführen aus einem PaketEnabling functions to run from a package

Damit Ihre Funktions-App aus einem Paket ausgeführt werden kann, müssen Sie nur eine Einstellung WEBSITE_RUN_FROM_PACKAGE zu Ihren Einstellungen in der Funktions-App hinzufügen.To enable your function app to run from a package, you just add a WEBSITE_RUN_FROM_PACKAGE setting to your function app settings. Die Einstellung WEBSITE_RUN_FROM_PACKAGE kann einen der folgenden Werte aufweisen:The WEBSITE_RUN_FROM_PACKAGE setting can have one of the following values:

WertValue BESCHREIBUNGDescription
1 Für unter Windows ausgeführte Funktions-Apps empfohlen.Recommended for function apps running on Windows. Ausführen aus einer Paketdatei im Ordner d:\home\data\SitePackages der Funktions-App.Run from a package file in the d:\home\data\SitePackages folder of your function app. Wenn Sie nicht mit ZIP Deploy bereitstellen, muss der Ordner für diese Option außerdem eine Datei namens packagename.txt enthalten.If not deploying with zip deploy, this option requires the folder to also have a file named packagename.txt. Diese Datei enthält nur den Namen der Paketdatei im Ordner ohne Leerzeichen.This file contains only the name of the package file in folder, without any whitespace.
<url> Speicherort der spezifischen Paketdatei, die Sie ausführen möchten.Location of a specific package file you want to run. Wenn Sie Blob Storage müssen Sie einen privaten Container mit einer Shared Access Signature (SAS) verwenden, um die Functions-Laufzeit für den Zugriff auf das Paket zu aktivieren.When using Blob storage, you should use a private container with a Shared Access Signature (SAS) to enable the Functions runtime to access to the package. Sie können den Azure Storage-Explorer zum Hochladen von Dateien in Ihr Blob Storage-Konto verwenden.You can use the Azure Storage Explorer to upload package files to your Blob storage account.

Achtung

Bei der Ausführung einer Funktions-App unter Windows ergibt die Option mit externer URL ein schlechteres Startverhalten.When running a function app on Windows, the external URL option yields worse cold-start performance. Beim Bereitstellen Ihrer Funktions-App unter Windows sollten Sie WEBSITE_RUN_FROM_PACKAGE auf 1 festlegen und per ZIP-Bereitstellung veröffentlichen.When deploying your function app to Windows, you should set WEBSITE_RUN_FROM_PACKAGE to 1 and publish with zip deployment.

Das folgende Beispiel zeigt eine Funktions-App, die so konfiguriert ist, dass Sie über eine ZIP-Datei ausgeführt wird, die im Azure Blob Storage gehostet wird:The following shows a function app configured to run from a .zip file hosted in Azure Blob storage:

WEBSITE_RUN_FROM_ZIP-Appeinstellung

Hinweis

Derzeit werden nur ZIP-Paketdateien unterstützt.Currently, only .zip package files are supported.

Integration mit einer ZIP-BereitstellungIntegration with zip deployment

ZIP-Bereitstellung ist eine Funktion von Azure App Service, mit der Sie Ihr Funktions-App-Projekt im Verzeichnis wwwroot bereitstellen können.Zip deployment is a feature of Azure App Service that lets you deploy your function app project to the wwwroot directory. Das Projekt ist als ZIP-Bereitstellungsdatei verpackt.The project is packaged as a .zip deployment file. Mit derselben API können Sie Ihr Paket im Ordner d:\home\data\SitePackages bereitstellen.The same APIs can be used to deploy your package to the d:\home\data\SitePackages folder. Mit dem WEBSITE_RUN_FROM_PACKAGE-App-Einstellungswert von 1 kopieren die ZIP-Bereitstellungs-APIs Ihr Paket in den Ordner d:\home\data\SitePackages, anstatt die Dateien nach d:\home\site\wwwroot zu extrahieren.With the WEBSITE_RUN_FROM_PACKAGE app setting value of 1, the zip deployment APIs copy your package to the d:\home\data\SitePackages folder instead of extracting the files to d:\home\site\wwwroot. Außerdem wird die Datei packagename.txt erstellt.It also creates the packagename.txt file. Nach einem Neustart wird das Paket in wwwroot als schreibgeschütztes Dateisystem bereitgestellt.After a restart, the package is mounted to wwwroot as a read-only filesystem. Weitere Informationen zur ZIP-Bereitstellung finden Sie unter ZIP-Bereitstellung für Azure Functions.For more information about zip deployment, see Zip deployment for Azure Functions.

Hinzufügen der Einstellung WEBSITE_RUN_FROM_PACKAGEAdding the WEBSITE_RUN_FROM_PACKAGE setting

Es gibt mehrere Möglichkeiten zum Hinzufügen, Aktualisieren und Löschen von Funktionen-App-Einstellungen:There are several ways that you can add, update, and delete function app settings:

ProblembehandlungTroubleshooting

  • Durch Ausführen aus Paket wird wwwroot schreibgeschützt, sodass Sie einen Fehler erhalten, wenn Sie Dateien in dieses Verzeichnis schreiben möchten.Run From Package makes wwwroot read-only, so you will receive an error when writing files to this directory.
  • Das TAR- und das GZIP-Format werden nicht unterstützt.Tar and gzip formats are not supported.
  • Diese Funktionalität funktioniert nicht mit lokalem Cache.This feature does not compose with local cache.
  • Um die Kaltstartleistung zu verbessern, verwenden Sie die lokale ZIP-Option (WEBSITE_RUN_FROM_PACKAGE=1).For improved cold-start performance, use the local Zip option (WEBSITE_RUN_FROM_PACKAGE=1).

Nächste SchritteNext steps