Пропустите «Установка расширений функций при необходимости».
Я использую для создания приложения-функции Java с настраиваемой привязкой триггера. Пользовательский триггер создается другим проектом .Net и публикует свои артефакты через канал артефактов Azure Devops как универсальный пакет.
Я использую настраиваемый триггер как универсальный пакет, чтобы избавиться от зависимостей .Net во время сборки приложения Java-функции.
Пока я скачиваю пакет и копирую его содержимое в
stagingDirectory
, то
maven-plugin-for-azure-functions
пытается также установить некоторые расширения.
[INFO] Step 8 of 8: Installing function extensions if needed
...
[INFO] Function extension installation done.
Шаг создает
extensions.csproj
с некоторыми расширениями по умолчанию и отменяет файлы моего настраиваемого расширения. Я пытался удалить
PackageReference
элементы, но он возвращается с каждым
package
запустить.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<WarningsAsErrors></WarningsAsErrors>
<DefaultItemExcludes>**</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventGrid" Version="2.1.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.1.3" />
</ItemGroup>
</Project>
Как отключить установку расширений функций ?
2 ответа
В
pom.xml
добавлять
skipInstallExtensions
чтобы избежать запуска шаг в
mvn package
. Проверьте пример ниже:
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<version>1.13.0-SNAPSHOT</version>
<configuration>
<!-- potential configuration property -->
<skipInstallExtensions>true</skipInstallExtensions>
</configuration>
</plugin>
Я нашел способ обхода неявной установки расширения плагина.
В течение
prepare-package
На этапе я заменяю файл фиктивным файлом, который подавляет процесс установки.{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[1.*, 2.0.0)" } }
Поэтому плагин пропускает установку расширения.
[INFO] Step 8 of 8: Installing function extensions if needed [INFO] Extension bundle specified, skip install extension [INFO] Successfully built Azure Functions.
Скрипт для загрузки универсального пакета я переместил в папку
package
фаза, которая выполняется после плагина. Скрипт также восстанавливает, удаляяextensionBundle
свойство и копирует восстановленный файл вstagingDirectory
.
Результирующий архив содержит
bin
папку универсального пакета, наконец, с правильным
host.json
.