diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java index af2c5c37f..49fa1866a 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java @@ -711,7 +711,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect if (functionInvocationHelper != null && CloudEventMessageUtils.isCloudEvent(((Message) input))) { result = functionInvocationHelper.postProcessResult(result, (Message) input); } - else { + else if (!FunctionTypeUtils.isCollectionOfMessage(this.outputType)) { result = MessageBuilder.withPayload(result).copyHeaders(this.sanitizeHeaders(((Message) input).getHeaders())).build(); } } diff --git a/spring-cloud-function-samples/function-sample-aws/src/main/java/example/FunctionConfiguration.java b/spring-cloud-function-samples/function-sample-aws/src/main/java/example/FunctionConfiguration.java index 125a1dd77..bb64793b1 100644 --- a/spring-cloud-function-samples/function-sample-aws/src/main/java/example/FunctionConfiguration.java +++ b/spring-cloud-function-samples/function-sample-aws/src/main/java/example/FunctionConfiguration.java @@ -31,4 +31,14 @@ public class FunctionConfiguration { } }; } + + @Bean + public Function uppercaseApiGateway() { + return value -> { + APIGatewayV2HTTPResponse response = new APIGatewayV2HTTPResponse(); + response.setStatusCode(404); + response.setBody("Resource not found"); + return response; + }; + } }