Files
spring-cloud-function/spring-cloud-function-samples/function-sample-aws-native/src/main/java/com/example/demo/NativeFunctionApplication.java
Oleg Zhurakousky 26ef1fa76e GH-1187 Fix AWS Context initialization for Custom Runtime
Updated sample to show that Context is not null

Resolves #1187
2025-01-13 13:27:28 +01:00

57 lines
1.7 KiB
Java

package com.example.demo;
import java.util.Locale;
import java.util.function.Function;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.function.adapter.aws.AWSLambdaUtils;
import org.springframework.context.annotation.Bean;
// import org.springframework.cloud.function.context.DefaultMessageRoutingHandler;
// import org.springframework.cloud.function.context.MessageRoutingCallback;
// import org.springframework.messaging.Message;
import org.springframework.messaging.Message;
import com.amazonaws.services.lambda.runtime.Context;
@SpringBootApplication
public class NativeFunctionApplication {
Log logger = LogFactory.getLog(NativeFunctionApplication.class);
public static void main(String[] args) {
SpringApplication.run(NativeFunctionApplication.class, args);
}
// @Bean
// public MessageRoutingCallback customRouter() {
// return new MessageRoutingCallback() {
// @Override
// public String routingResult(Message<?> message) {
// logger.info("Received message: " + message);
// return (String) message.getHeaders().get("spring.cloud.function.definition");
// }
// };
// }
@Bean
public Function<Message<String>, String> uppercase() {
return message -> {
System.out.println("AWS Context: " + message.getHeaders().get(AWSLambdaUtils.AWS_CONTEXT));
System.out.println("Uppercasing " + message.getPayload());
return message.getPayload().toUpperCase(Locale.ROOT);
};
}
@Bean
public Function<String, String> reverse() {
return v -> {
System.out.println("Reversing " + v);
return new StringBuilder(v).reverse().toString();
};
}
}