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 f4e4c8277..5881be6fd 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 @@ -21,4 +21,14 @@ public class FunctionConfiguration { public Function uppercase() { return value -> value.toUpperCase(); } + + @Bean + public Function uppercaseApiGateway() { + return value -> { + APIGatewayV2HTTPResponse response = new APIGatewayV2HTTPResponse(); + response.setStatusCode(404); + response.setBody("Resource not found"); + return response; + }; + } }