Запуск функций Azure из файла пакетаRun your Azure Functions from a package file

В Azure можно запустить функции непосредственно из файла пакета развертывания в приложении-функции.In Azure, you can run your functions directly from a deployment package file in your function app. Другой вариант — развернуть файлы в каталоге d:\home\site\wwwroot приложения-функции.The other option is to deploy your files in the d:\home\site\wwwroot directory of your function app.

В этой статье описываются преимущества запуска функций из пакета.This article describes the benefits of running your functions from a package. Здесь также показано, как включить эту функцию в приложении-функции.It also shows how to enable this functionality in your function app.

Важно!

При развертывании функций в приложении-функции Linux в плане Premiumследует всегда запускать из файла пакета и публиковать приложение с помощью Azure functions Core Tools.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.

Преимущества запуска из файла пакетаBenefits of running from a package file

Запуск функции из файла пакета обеспечивает несколько преимуществ:There are several benefits to running from a package file:

  • Снижается риск возникновения проблем из-за блокировки копирования файлов.Reduces the risk of file copy locking issues.
  • Можно выполнить развертывание в рабочее приложение (с помощью перезапуска).Can be deployed to a production app (with restart).
  • Обеспечивается надежность файлов, выполняемых в приложении.You can be certain of the files that are running in your app.
  • Повышается производительность развертываний Azure Resource Manager.Improves the performance of Azure Resource Manager deployments.
  • Может сократиться время "холодного запуска", особенно для функций JavaScript с большими деревьями пакетов npm.May reduce cold-start times, particularly for JavaScript functions with large npm package trees.

Дополнительные сведения см. в этом объявлении.For more information, see this announcement.

Настройка запуска функций из пакетаEnabling functions to run from a package

Чтобы настроить запуск приложения-функции из пакета, нужно просто добавить WEBSITE_RUN_FROM_PACKAGE в параметрах приложения-функции.To enable your function app to run from a package, you just add a WEBSITE_RUN_FROM_PACKAGE setting to your function app settings. Параметр WEBSITE_RUN_FROM_PACKAGE может иметь одно из следующих значений:The WEBSITE_RUN_FROM_PACKAGE setting can have one of the following values:

ЗначениеValue ОПИСАНИЕDescription
1 Рекомендуется для приложений функций, работающих в Windows.Recommended for function apps running on Windows. Запуск из файла пакета в папке d:\home\data\SitePackages приложения-функции.Run from a package file in the d:\home\data\SitePackages folder of your function app. Если развертывание не выполняется с помощью ZIP-развертывания, для этого параметра требуется, чтобы папка также соимела файл с именем packagename.txt.If not deploying with zip deploy, this option requires the folder to also have a file named packagename.txt. Этот файл содержит только имя файла пакета в папке без каких-либо пробелов.This file contains only the name of the package file in folder, without any whitespace.
<URL> Расположение определенного файла пакета, который вы хотите запустить.Location of a specific package file you want to run. При использовании хранилища BLOB-объектов следует использовать закрытый контейнер с подписанным URL-адресом (SAS), чтобы настроить доступ к пакету в среде выполнения функций.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. Можно использовать Обозреватель службы хранилища Azure для передачи файлов пакета в учетную запись хранения больших двоичных объектов.You can use the Azure Storage Explorer to upload package files to your Blob storage account. При указании URL-адреса необходимо также синхронизировать триггеры после публикации обновленного пакета.When you specify a URL, you must also sync triggers after you publish an updated package.

Внимание!

При запуске приложения-функции в Windows параметр External URL дает более серьезную производительность холодного запуска.When running a function app on Windows, the external URL option yields worse cold-start performance. При развертывании приложения-функции в Windows необходимо задать WEBSITE_RUN_FROM_PACKAGE для 1 и публикации с помощью ZIP-развертывания.When deploying your function app to Windows, you should set WEBSITE_RUN_FROM_PACKAGE to 1 and publish with zip deployment.

Далее показано приложение-функция, настроенное для запуска из ZIP-файла, размещенного в хранилище BLOB-объектов Azure:The following shows a function app configured to run from a .zip file hosted in Azure Blob storage:

Параметр приложения WEBSITE_RUN_FROM_ZIP

Примечание

В настоящее время поддерживаются только ZIP-файлы пакета.Currently, only .zip package files are supported.

Интеграция с помощью развертывания из ZIP-файлаIntegration with zip deployment

Развертывание ZIP — это функция службы приложений Azure, которая позволяет развертывать проект приложения-функции в каталоге wwwroot.Zip deployment is a feature of Azure App Service that lets you deploy your function app project to the wwwroot directory. Проект упакован как ZIP-файл развертывания.The project is packaged as a .zip deployment file. Те же API можно использовать для развертывания пакета в папку d:\home\data\SitePackages.The same APIs can be used to deploy your package to the d:\home\data\SitePackages folder. Если для параметра приложения WEBSITE_RUN_FROM_PACKAGE задано значение 1, API-интерфейсы развертывания из ZIP-файла копируют пакет в папку d:\home\data\SitePackages, а не извлекают файлы в d:\home\site\wwwroot.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. Также создается файл packagename.txt.It also creates the packagename.txt file. После перезагрузки пакет монтируется в wwwroot как файловая система только для чтения.After a restart, the package is mounted to wwwroot as a read-only filesystem. Дополнительные сведения о развертывании из ZIP-файла см. в статье Непрерывное развертывание Функций Azure из ZIP-файла.For more information about zip deployment, see Zip deployment for Azure Functions.

Добавление параметра WEBSITE_RUN_FROM_PACKAGEAdding the WEBSITE_RUN_FROM_PACKAGE setting

Существует несколько способов для добавления, обновления и удаления параметров приложения-функции.There are several ways that you can add, update, and delete function app settings:

Устранение неполадокTroubleshooting

  • Запуск из пакета делает wwwroot только для чтения, поэтому при записи файлов в этот каталог возникнет ошибка.Run From Package makes wwwroot read-only, so you will receive an error when writing files to this directory.
  • Форматы tar и gzip не поддерживаются.Tar and gzip formats are not supported.
  • Эта функция не сопоставлена с локальным кэшем.This feature does not compose with local cache.
  • Для повышения производительности холодного запуска используйте параметр local ZIP (WEBSITE_RUN_FROM_PACKAGE= 1).For improved cold-start performance, use the local Zip option (WEBSITE_RUN_FROM_PACKAGE=1).

Дополнительная информацияNext steps