130. 部署打包功能

Spring Cloud Function 提供了一个“部署程序”库,通过该库,您可以使用隔离的类加载器启动 jar 文件(或爆炸存档或 jar 文件集),并公开其中定义的功能。这是一个非常强大的工具,例如,您可以在不更改目标 jar 文件的情况下,使函数适应各种不同的 Importing 输出适配器。无服务器平台通常内置有此类功能,因此您可以将其视为此类平台中函数调用程序的构建块(实际上Riff Java 函数调用程序使用此库)。

API 的标准入口点是 Spring 配置 Comments@EnableFunctionDeployer。如果在 Spring Boot 应用程序中使用了该功能,则部署程序将启动并寻找一些配置以告知其在何处找到功能 jar。至少,用户必须提供function.location,它是包含函数的存档的 URL 或资源位置。它可以选择使用maven:前缀通过依赖关系查找来定位工件(有关完整的详细信息,请参见FunctionProperties)。例如,使用MANIFEST.MF从 jar 文件中引导 Spring Boot 应用程序从 jar 文件中引导,以便标准 Spring Boot 胖 jar 可以很好地工作。如果目标 jar 可以成功启动,则结果是在主应用程序的FunctionCatalog中注册的函数。已注册的函数可以通过主应用程序中的代码来应用,即使它是在隔离的类加载器中创建的(通过 deault 实现)。