Запуск функций 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.

Преимущества запуска из файла пакета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.

Примечание

Когда происходит развертывание, запускается перезапуск приложения-функции.When a deployment occurs, a restart of the function app is triggered. Перед перезапуском все существующие функции могут завершаться или исполняться. Дополнительные сведения см. в разделе варианты поведения развертывания.Before a restart, all existing function executions are allowed to complete or time out. To learn more, see Deployment behaviors.

Добавление параметра 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).
  • Выполнение из пакета несовместимо с параметром настройки развертывания ( SCM_DO_BUILD_DURING_DEPLOYMENT=true ). во время развертывания шаг сборки будет пропущен.Run From Package is incompatible with deployment customization option (SCM_DO_BUILD_DURING_DEPLOYMENT=true), the build step will be ignored during deployment.

Дальнейшие действияNext steps