首页 > 解决方案 > spring-cloud-function-deployer 在运行时以编程方式部署/取消部署函数

问题描述

spring-cloud-function-deployer 示例都显示了在启动时加载的已部署函数,即 ApplicationContext 以必要的属性启动,指向要加载的打包 jar。

有没有办法在运行时以编程方式调用部署程序,而不是依赖自动配置?如果我想在应用程序上下文启动后的某个时间部署该功能,或者如果我想从同一个 jar 部署多个功能等。

还有一种方法可以取消部署任何已加载的功能,还是像从目录中删除该功能一样简单?

标签: spring-cloud-function

解决方案


如 GH 响应中所述,您绝对可以在运行时部署函数。

String[] args = new String[] {
                "--spring.cloud.function.location=target/it/bootapp/target/bootapp-1.0.0.RELEASE-exec.jar",
                "--spring.cloud.function.definition=uppercase" };

ApplicationContext context = SpringApplication.run(DeployerApplication.class, args);
FunctionCatalog catalog = context.getBean(FunctionCatalog.class);
Function<String, String> function = catalog.lookup("uppercase");
// use the function

您可以在此处查看示例部署和相应的测试


推荐阅读