Files
spring-cloud-function/spring-cloud-function-samples/function-sample-aws-native
Oleg Zhurakousky 1753020fe4 Polish sample
2023-11-06 11:41:49 +01:00
..
2023-11-06 11:41:49 +01:00
2023-01-30 16:21:05 +01:00
2023-11-06 09:30:53 +01:00
2023-01-30 16:21:05 +01:00
2023-01-30 16:21:05 +01:00
2023-11-06 10:12:41 +01:00

Introduction

This example shows GraaalVM native spring-cloud-function application. The application itself is very simple and contains two functions - uppercase & lowercase. Unless specific value is specified as handler, the application will fall back on RoutingFunction where you can pass the routing instruction via spring.cloud.function.definition Message header. If using API Gateway you can pass such header as HTTP header.

To run

If you are on OSX Apple M1 Pro (arch64)

You first need to build a Docker image where you will actually build project. To do that execute the following command form [project directory

$ docker build -t "al2-graalvm19:native-uppercase" .

Start the container

$ docker run -dit -v `pwd`:`pwd` -w `pwd` -v ~/.m2:/root/.m2 al2-graalvm19:native-uppercase

Now navigate to the image terminal. Your working directory is alredy set for the root of the project. You can verify it by executing ls.

Build the project:

./mvnw clean -Pnative native:compile -DskipTests

Once the build finishes, you can deploy it.

Deploying to AWS LAmbda

Start AWS Dashboard and navigate to AWS Lambda Services

Click on Create Function. Enter uppercase for function name. For the runtime select Provide your own bootstrap on Amazon Linux 2. Make sure you select the proper architecture (x86_64 or arm64).

Click on Create Function again.

Next you need to upload your project, so click on Upload From and point to the ZIP file that was created by the build process (in the target directory).

Once the file is uploaded navigate to the Test tab. You can change the input data or use the default. Basically you need to pas a String in a JSON format such as "hello" and you should see the output "HELLO".