Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обновите приложение-функцию с помощью веб-приложений на основе .NET, Python, JavaScript, PowerShell и Java.
Syntax
# Azure Functions Deploy v2
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@2
inputs:
connectedServiceNameARM: # string. Alias: azureSubscription. Required. Azure Resource Manager connection.
appType: # 'functionApp' | 'functionAppLinux'. Required. App type.
#isFlexConsumption: false # boolean. Is Function App on Flex Consumption Plan. Default: false.
appName: # string. Required. Azure Functions App name.
#deployToSlotOrASE: false # boolean. Optional. Use when appType != "" && isFlexConsumption = false. Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#runtimeStack: # 'DOTNET|6.0' | 'DOTNET-ISOLATED|6.0' | 'DOTNET-ISOLATED|7.0' | 'DOTNET-ISOLATED|8.0' | 'DOTNET-ISOLATED|9.0' | 'JAVA|8' | 'JAVA|11' | 'JAVA|17' | 'JAVA|21' | 'NODE|14' | 'NODE|16' | 'NODE|18' | 'NODE|20' | 'PYTHON|3.8' | 'PYTHON|3.9' | 'PYTHON|3.10' | 'PYTHON|3.11'. Optional. Use when appType = functionAppLinux && isFlexConsumption = false. Runtime stack.
# Application and Configuration Settings
#appSettings: # string. App settings.
# Additional Deployment Options
#deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != "" && isFlexConsumption = false && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Functions Deploy v2
# Update a function app with .NET, Python, JavaScript, PowerShell, Java based web applications.
- task: AzureFunctionApp@2
inputs:
connectedServiceNameARM: # string. Alias: azureSubscription. Required. Azure Resource Manager connection.
appType: # 'functionApp' | 'functionAppLinux'. Required. App type.
appName: # string. Required. Azure Functions App name.
#deployToSlotOrASE: false # boolean. Optional. Use when appType != "". Deploy to Slot or App Service Environment. Default: false.
#resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group.
#slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#runtimeStack: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'DOTNET|6.0' | 'DOTNET-ISOLATED|7.0' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'NODE|16' | 'NODE|18' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8' | 'PYTHON|3.9' | 'PYTHON|3.10'. Optional. Use when appType = functionAppLinux. Runtime stack.
# Application and Configuration Settings
#appSettings: # string. App settings.
# Additional Deployment Options
#deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != "" && package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: auto.
Inputs
connectedServiceNameARM
-
Подключение Azure Resource Manager
Input alias: azureSubscription
.
string
. Required.
Выберите подписку Azure Resource Manager для развертывания.
appType
-
App type
string
. Required. Допустимые значения: functionApp
(приложение-функция в Windows), functionAppLinux
(приложение-функция в Linux).
Выберите тип приложения-функции Azure для развертывания.
isFlexConsumption
-
Приложение-функция в плане потребления Flex
boolean
. Значение по умолчанию: false
.
Установите значение true
, если приложение-функция находится в плане потребления Flex.
appName
-
Имя приложения Функций Azure
string
. Required.
Укажите имя существующего приложения функций Azure. Перечисленные приложения-функции будут основаны на выбранном типе приложения.
deployToSlotOrASE
-
Развертывание в слоте или среде службы приложений
boolean
. Optional. Используется при appType != "" && isFlexConsumption = false
. Значение по умолчанию: false
.
Развертывается в существующем слоте развертывания или среде службы приложений Azure. Для обоих целевых объектов задача должна иметь имя группы ресурсов.
If the deployment target is a slot, it will default to the production slot. Можно также указать любое другое существующее имя слота.
If the deployment target is an Azure App Service Environment, leave the slot name as production and specify the Resource group name.
deployToSlotOrASE
-
Развертывание в слоте или среде службы приложений
boolean
. Optional. Используется при appType != ""
. Значение по умолчанию: false
.
Развертывается в существующем слоте развертывания или среде службы приложений Azure. Для обоих целевых объектов задача должна иметь имя группы ресурсов.
If the deployment target is a slot, it will default to the production slot. Можно также указать любое другое существующее имя слота.
If the deployment target is an Azure App Service Environment, leave the slot name as production and specify the Resource group name.
resourceGroupName
-
Resource group
string
. Требуется, если deployToSlotOrASE = true
.
Имя группы ресурсов требуется, если целевой объект развертывания является слотом развертывания или средой службы приложений.
Введите или выбирает группу ресурсов Azure, содержащую указанную выше службу приложений Azure.
slotName
-
Slot
string
. Требуется, если deployToSlotOrASE = true
. Значение по умолчанию: production
.
Введите или выбирает существующий слот, за исключением рабочего слота.
slotName
-
Slot
string
. Требуется, если deployToSlotOrASE = true
. Значение по умолчанию: production
.
Введите или выберите существующий слот, отличный от рабочего слота.
package
-
Пакет или папка
string
. Required. Значение по умолчанию: $(System.DefaultWorkingDirectory)/**/*.zip
.
Путь к пакету или папке, содержащей содержимое службы приложений, созданное MSBuild или сжатым ZIP-файлом. Variables ( Build | Release) and wildcards are supported. Например, $(System.DefaultWorkingDirectory)/**/*.zip
.
runtimeStack
-
Runtime stack
string
. Optional. Используется при appType = functionAppLinux && isFlexConsumption = false
. Допустимые значения: DOTNET|6.0
, DOTNET-ISOLATED|6.0
, DOTNET-ISOLATED|7.0
, DOTNET-ISOLATED|8.0
JAVA|17
PYTHON|3.10
PYTHON|3.8
PYTHON|3.11
PYTHON|3.9
NODE|20
NODE|18
NODE|14
JAVA|11
NODE|16
DOTNET-ISOLATED|9.0
JAVA|8
JAVA|21
.
Укажите платформу и версию приложения-функции. Вы можете использовать любую из поддерживаемых версий среды выполнения . Устаревшие значения, такие как DOCKER|microsoft/azure-functions-*
, устарели. New values are listed in the drop-down list in the task assistant. Если в поддерживаемых версиях среды выполнения есть более новая версия платформы, ее можно указать, даже если она отсутствует в списке.
Note
This value currently doesn't update the linuxFxVersion that the site is running on. Это означает, что вы не можете обновить стек с узла 18 до узла 20. В настоящее время задача обновляет только параметры приложения.
runtimeStack
-
Runtime stack
string
. Optional. Используется при appType = functionAppLinux
. Допустимые значения:
Укажите платформу и версию приложения-функции. Вы можете использовать любую из поддерживаемых версий среды выполнения . Устаревшие значения, такие как DOCKER|microsoft/azure-functions-*
, устарели. New values are listed in the drop-down list in the task assistant. Если в поддерживаемых версиях среды выполнения есть более новая версия платформы, ее можно указать, даже если она отсутствует в списке.
appSettings
-
App settings
string
.
Введите параметры приложения с помощью синтаксиса -key value
(например, -Port 5000
-RequestTimeout 5000
-WEBSITE_TIME_ZONE
). Заключайте значения, содержащие пробелы в двойных кавычках (например, "Eastern Standard Time"
).
Дополнительные сведения о параметрах приложения см. в разделе "Переменные среды" и "Параметры приложения" в Службе приложений Azure.
deploymentMethod
-
Deployment method
string
. Требуется, если appType != "" && isFlexConsumption = false && package NotEndsWith .war && Package NotEndsWith .jar
. Допустимые значения: auto
(автоматическое обнаружение), zipDeploy
(ZIP-развертывание), runFromPackage
(ZIP-развертывание с пакетом). Значение по умолчанию: auto
.
Specifies the deployment method for the app. Приложения потребления Linux не поддерживают эту конфигурацию.
Параметры приложения хранилища веб-заданий Azure необходимо задать для zip-развертываний, когда SKU используется Linux. Развертывания ZIP используют учетную запись хранения для отправки и подключения кода приложения в приложение.
deploymentMethod
-
Deployment method
string
. Требуется, если appType != "" && package NotEndsWith .war && Package NotEndsWith .jar
. Допустимые значения: auto
(автоматическое обнаружение), zipDeploy
(ZIP-развертывание), runFromPackage
(ZIP-развертывание с пакетом). Значение по умолчанию: auto
.
Specifies the deployment method for the app. Приложения потребления Linux не поддерживают эту конфигурацию.
Параметры приложения хранилища веб-заданий Azure необходимо задать для zip-развертываний, когда SKU используется Linux. Развертывания ZIP используют учетную запись хранения для отправки и подключения кода приложения в приложение.
deploymentMethod
-
Deployment method
string
. Требуется, если appType != "" && package NotEndsWith .war && Package NotEndsWith .jar
. Допустимые значения: auto
(автоматическое обнаружение), zipDeploy
(ZIP-развертывание), runFromPackage
(ZIP-развертывание с пакетом). Значение по умолчанию: auto
.
Chooses the deployment method for the app. Приложения потребления Linux не поддерживают эту конфигурацию.
Параметры приложения хранилища веб-заданий Azure необходимо задать для zip-развертываний, когда SKU используется Linux. Развертывания ZIP используют учетную запись хранения для отправки и подключения кода приложения в приложение.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе "Параметры управления" и общие свойства задачи.
Output variables
This task defines the following output variables, which you can consume in downstream steps, jobs, and stages.
AppServiceApplicationUrl
URL-адрес приложения для выбранного приложения-функции Azure.
Remarks
The Azure Function Deployment task is used to update Azure Functions to deploy Functions to Azure. Задача работает на кроссплатформенных агентах Azure Pipelines под управлением Windows, Linux или Mac и использует базовые технологии развертывания RunFromPackage, Zip Deploy и Kudu REST API.
The task works for the Azure Functions supported languages.
Предварительные требования для задачи
Для правильной работы задачи необходимо настроить следующие предварительные требования.
Azure Function
Задача используется для развертывания проекта Функций Azure в существующей функции Azure. Приложение-функция Azure должно существовать перед выполнением задачи. The Azure Function App can be created from the Azure portal. Кроме того, задачи Azure PowerShell
The task can be used to deploy Azure Functions (Windows/Linux).
Azure Subscription
Чтобы развернуть в Azure, подписка Azure должна быть связана с Azure Pipelines с помощью вкладки "Службы" в разделе "Администрирование учетной записи". Добавьте подписку Azure для использования в определении "Управление сборкой или выпуском", открыв экран администрирования учетной записи (значок шестеренки в правом верхнем углу экрана), а затем щелкните вкладку "Службы".
Create the ARM service endpoint and use Azure Resource Manager endpoint type. For more details, follow the steps listed in the link here.
Задача не работает с конечной точкой классической службы Azure, и она не будет перечислять эти подключения в параметрах задачи.
Deployment methods
В этой задаче доступны несколько методов развертывания.
Чтобы изменить параметр развертывания на основе пакета в задаче конструктора, разверните дополнительные параметры развертывания и включите метод выбора развертывания.
В зависимости от типа службы приложений Azure и агента Azure Pipelines задача использует подходящую технологию развертывания. Технологии развертывания, используемые задачами, приведены ниже.
По умолчанию задача пытается выбрать соответствующую технологию развертывания на основе входного пакета, типа службы приложений и операционной системы агента.
- Если предоставляется скрипт после развертывания, используйте ZIP-развертывание.
- Если тип службы приложений является веб-приложением в Linux, используйте ZIP-развертывание.
- Если предоставляется WAR-файл, используйте War Deploy.
- Если указан файл .jar, используйте run-From-Zip.
- Для всех остальных задач используйте пакет запуска из пакета (с помощью zip-развертывания).
В агенте, отличном от Windows (для любого типа службы приложений), задача зависит от REST API Kudu для развертывания веб-приложения.
Kudu REST API
Zip Deploy
Zip Deploy создает пакет развертывания .zip из выбранного пакета или папки. Затем он развертывает содержимое файла в папку wwwroot приложения-функции службы приложений в Azure. Этот параметр перезаписывает все существующее содержимое в папке wwwroot. Дополнительные сведения см. в статье о развертывании Zip для Функций Azure.
Запуск из пакета
Запуск из пакета создает тот же пакет развертывания, что и Zip Deploy. Вместо развертывания файлов в папку wwwroot среда выполнения Функций подключает весь пакет. При использовании этого параметра файлы в папке wwwroot становятся доступны только для чтения. Дополнительные сведения см. в разделе "Запуск функций Azure" из файла пакета.
Troubleshooting
Ошибка. Не удалось получить маркер доступа для Azure. Убедитесь, что используемый субъект-служба действителен и не истек.
Задача использует субъект-службу в подключении службы для проверки подлинности в Azure. Если субъект-служба истек или не имеет разрешений для службы приложений, задача завершается ошибкой. Проверьте допустимость используемого субъекта-службы и ее наличие в регистрации приложения. Дополнительные сведения см. в статье "Использование управления доступом на основе ролей для управления доступом к ресурсам подписки Azure". Эта запись блога также содержит дополнительные сведения об использовании проверки подлинности субъекта-службы.
SSL error
Если вы хотите использовать сертификат в службе приложений, сертификат должен быть подписан доверенным центром сертификации. Если веб-приложение дает ошибки проверки сертификатов, вероятно, вы используете самозаверяющий сертификат. Задайте переменную с именем VSTS_ARM_REST_IGNORE_SSL_ERRORS
значением, true
в конвейере сборки или выпуска, чтобы устранить ошибку.
Выпуск зависает в течение длительного времени, а затем завершается сбоем
Эта проблема может быть результатом нехватки емкости в плане службы приложений. Чтобы устранить эту проблему, можно увеличить масштаб экземпляра службы приложений, чтобы увеличить доступное количество ЦП, ОЗУ и дискового пространства или попробовать использовать другой план службы приложений.
5xx error codes
If you're seeing a 5xx error, check the status of your Azure service.
Функция Azure внезапно перестала работать
Функции Azure могут внезапно перестать работать, если с момента последнего развертывания прошло более одного года. При развертывании с помощью RunFromPackage в deploymentMethod создается SAS с датой окончания срока действия 1 года и задает значение "WEBSITE_RUN_FROM_PACKAGE" в конфигурации приложения. Функции Azure используют этот SAS для ссылки на файл пакета для выполнения функции, поэтому если истек срок действия SAS, функция не будет выполнена. Чтобы устранить эту проблему, разверните еще раз, чтобы создать SAS с датой окончания срока действия в течение одного года.
Ошибка: пакет не найден с указанным шаблоном
Проверьте, публикуется ли пакет, упомянутый в задаче, как артефакт в сборке или предыдущем этапе и скачан в текущем задании.
Ошибка. Публикация с помощью параметра zip-развертывания не поддерживается для типа пакета msBuild
Веб-пакеты, созданные с помощью задачи MSBuild (с аргументами по умолчанию), имеют вложенную структуру папок, которая может быть развернута правильно только с помощью веб-развертывания. Параметр развертывания публикации в ZIP не может использоваться для развертывания этих пакетов. Чтобы преобразовать структуру упаковки, выполните следующие действия.
In the Build solution task, change the MSBuild Arguments to
/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent"
:Добавьте задачу "Архив" и измените значения следующим образом:
Измените корневую папку или файл на архив
$(System.DefaultWorkingDirectory)\\WebAppContent
.Снимите имя корневой папки предварительной версии для архивации путей :
Развертывание приложения-функции в Windows завершается успешно, но приложение не работает
Эта проблема может возникнуть, если файл web.config отсутствует в приложении. Вы можете добавить файл web.config в источник или автоматически создать его с помощью параметров приложения и конфигурации задачи.
Выберите задачу и выберите параметры создания web.config для приложений Python, Node.js, Go и Java:
Нажмите кнопку "Дополнительно" (...) в разделе "Создание web.config параметров" для Python, Node.js, "Go" и "Java", чтобы изменить параметры:
Select your application type in the Application framework list.
Select OK. Это приведет к заполнению параметров web.config, необходимых для создания файла web.config.
FAQs
Как настроить подключение службы?
Для этой задачи требуется подключение службы Azure Resource Manager.
Как настроить развертывание веб-заданий с помощью Application Insights?
When you're deploying to an App Service, if you have Application Insights configured and you've enabled Remove additional files at destination
, you also need to enable Exclude files from the App_Data folder
. Включение этого параметра сохраняет расширение Application Insights в безопасном состоянии. Этот шаг необходим, так как приложение Application Insights постоянного веб-задания устанавливается в папку App_Data.
Как настроить агент, если он находится за прокси-сервером во время развертывания в Службе приложений?
Если для локального агента требуется веб-прокси, можно сообщить агенту о прокси-сервере во время настройки. Это позволяет агенту подключаться к Azure Pipelines или Azure DevOps Server через прокси-сервер. Дополнительные сведения о запуске локального агента за веб-прокси.
Не удается развернуть в внутренней среде службы приложений с помощью подключения службы Azure Resource Manager и агента, размещенного корпорацией Майкрософт
По проектированию агент, размещенный корпорацией Майкрософт, не будет работать с средой службы приложений. Вместо этого необходимо настроить частный агент на виртуальной машине, которая находится в той же виртуальной сети, что и среда службы приложений. Кроме того, задайте частную зону DNS, чтобы включить обмен данными между ресурсами.
Examples
Ниже приведен пример фрагмента кода YAML, который развертывает функции Azure в Windows:
variables:
azureSubscription: Contoso
# To ignore SSL error, uncomment the below variable
# VSTS_ARM_REST_IGNORE_SSL_ERRORS: true
steps:
- task: AzureFunctionApp@2
displayName: Azure Function App Deploy
inputs:
azureSubscription: $(azureSubscription)
appName: samplefunctionapp
appType: functionApp
package: $(System.DefaultWorkingDirectory)/**/*.zip
Чтобы развернуть функцию в Linux, добавьте параметр appType
и задайте для него значение appType: functionAppLinux
. Если значение не указано, functionApp
используется по умолчанию.
Чтобы явно указать метод развертывания в качестве Zip Deploy, добавьте параметр deploymentMethod: zipDeploy
. Другим поддерживаемым значением этого параметра является runFromPackage
.
Если значение не указано, auto
используется по умолчанию.
Пошаговое руководство по созданию конвейера CI/CD см. в статье "Сборка и развертывание Java в Функциях Azure".
Requirements
Requirement | Description |
---|---|
Pipeline types | YAML, классическая сборка, классический выпуск |
Runs on | Agent, DeploymentGroup |
Demands | None |
Capabilities | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
Command restrictions | Any |
Settable variables | Any |
Agent version | 2.104.1 или более поздней версии |
Task category | Deploy |