109. 部署打包 Function

Spring Cloud Function 提供了一个“deployer”library,它允许您使用隔离的 class 加载器启动 jar 文件(或展开的存档或 jar files 集合)并公开其中定义的函数。这是一个非常强大的工具,可以让您在不更改目标 jar 文件的情况下,将 function 调整为一系列不同的 input-output 适配器。无服务器平台通常具有内置的这种 feature,因此您可以在这样的平台中将其视为 function 调用者的 building 块(事实上里夫 Java function 调用者使用此 library)。

API 的标准入口点是 Spring configuration annotation @EnableFunctionDeployer。如果在 Spring Boot application 中使用它,那么部署者会启动并查找一些 configuration 来告诉它在哪里找到 function jar。用户必须至少提供function.location,它是包含这些功能的存档的 URL 或资源位置。它可以选择使用maven:前缀通过依赖项查找来定位 artifact(有关完整的详细信息,请参阅FunctionProperties)。 Spring Boot application 是从 jar 文件引导的,使用MANIFEST.MF来定位一个 start class,这样对于 example,标准 Spring Boot fat jar 效果很好。如果目标 jar 可以成功启动,那么结果是在主 application 的FunctionCatalog中注册的 function。注册的 function 可以在主 application 中通过 code 应用,即使它是在一个隔离的 class 加载器中创建的(通过 deault)。

首页