繁体   English   中英

跳过“如果需要安装功能扩展”

[英]Skip "Installing function extensions if needed"

我使用maven-plugin-for-azure-functions创建一个带有自定义触发器绑定的 Java 函数应用程序。 自定义触发器由另一个 .Net 项目创建,并通过 Azure Devops Artifacts 源作为通用包发布其工件。

我使用自定义触发器作为通用包,以在我的 Java Function App 构建期间摆脱 .Net 依赖项。

当我下载包并将其内容复制到stagingDirectorymaven-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>

如何禁用功能扩展安装

我找到了一些解决插件隐式扩展安装的方法。

  1. prepare-package阶段,我用一些虚拟文件替换了host.json ,这会抑制安装过程。

     { "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.
  2. 我把通用包下载的脚本移到了package阶段,在插件之后执行。 该脚本也将还原host.json通过移除extensionBundle财产和副本归还的文件到stagingDirectory

生成的存档最终包含通用包的bin文件夹和正确的host.json

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM