It tends to pop back into function apps where it is not needed otherwise. Users that want to use the library need to import the FunctionConfiguration directly using the @EnableFunctionDeployer convenience annotation..
22 lines
1.4 KiB
Markdown
22 lines
1.4 KiB
Markdown
Spring Cloud Function Deployer is an library for building apps that can deploy functions packaged as jars. It can deploy a basic Spring Cloud Function app from a jar with locally cached dependencies in about 500ms (compared to 1500ms for the same application launched from cold). It can be used in a pool as a "warm" JVM to deploy functions quicker than they could be started from scratch. Example usage:
|
|
|
|
```java
|
|
@SpringBootApplication
|
|
@EnableFunctionDeployer
|
|
public class FunctionApplication {
|
|
|
|
public static void main(String[] args) throws IOException {
|
|
new ApplicationBootstrap().run(FunctionApplication.class, args);
|
|
}
|
|
|
|
}
|
|
```
|
|
|
|
There is a main class in the jar that alread looks like this. You can use it like that or you can create your own copy if you want to customize it. The `ApplicationBootstrap` is a utility that replaces `SpringApplication`, creating a class loader hierarchy that works with the function configuration. It needs to be launched with configuration for the `FunctionProperties`:
|
|
|
|
| Option | Description |
|
|
|--------|----------------------|
|
|
| `function.location` | Mandatory archive location(s) for building the classpath of the function. |
|
|
| `function.bean` | Mandatory bean class or name (if `function.main` is provided) to create the function. If multi-valued, the function is composed (outputs piped to inputs) |
|
|
| `function.main` | The main `@SpringBootApplication` to launch (optional). |
|