I
- The request body typeO
- The response body typepublic abstract class MicronautRequestHandler<I,O> extends io.micronaut.function.executor.AbstractFunctionExecutor<I,O,com.amazonaws.services.lambda.runtime.Context> implements com.amazonaws.services.lambda.runtime.RequestHandler<I,O>, MicronautLambdaContext
An Amazon Lambda RequestHandler
implementation for Micronaut FunctionBean
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ENV_X_AMZN_TRACE_ID |
static java.lang.String |
MDC_DEFAULT_AWS_REQUEST_ID |
static java.lang.String |
MDC_DEFAULT_FUNCTION_ARN |
static java.lang.String |
MDC_DEFAULT_FUNCTION_MEMORY_SIZE |
static java.lang.String |
MDC_DEFAULT_FUNCTION_NAME |
static java.lang.String |
MDC_DEFAULT_FUNCTION_REMAINING_TIME |
static java.lang.String |
MDC_DEFAULT_FUNCTION_VERSION |
static java.lang.String |
MDC_DEFAULT_XRAY_TRACE_ID |
ENVIRONMENT_LAMBDA
Constructor and Description |
---|
MicronautRequestHandler()
Default constructor; will initialize a suitable
ApplicationContext for
Lambda deployment. |
MicronautRequestHandler(io.micronaut.context.ApplicationContext applicationContext)
Constructor used to inject a preexisting
ApplicationContext . |
Modifier and Type | Method and Description |
---|---|
protected io.micronaut.context.ApplicationContext |
buildApplicationContext(com.amazonaws.services.lambda.runtime.Context context) |
protected I |
convertInput(java.lang.Object input)
Converts the input the required type.
|
O |
handleRequest(I input,
com.amazonaws.services.lambda.runtime.Context context) |
protected void |
mdcput(java.lang.String key,
java.lang.String val)
Put a diagnostic context value.
|
protected io.micronaut.context.ApplicationContextBuilder |
newApplicationContextBuilder() |
protected static java.util.Optional<java.lang.String> |
parseXrayTraceId()
Parses XRay Trace ID from _X_AMZN_TRACE_ID environment variable.
|
protected void |
populateMappingDiagnosticContextValues(com.amazonaws.services.lambda.runtime.Context context) |
protected void |
populateMappingDiagnosticContextWithXrayTraceId()
Populate MDC with XRay Trace ID if is able to parse it.
|
close, getApplicationContext, resolveFunction, resolveFunctionName, startEnvironment
public static final java.lang.String ENV_X_AMZN_TRACE_ID
public static final java.lang.String MDC_DEFAULT_AWS_REQUEST_ID
public static final java.lang.String MDC_DEFAULT_FUNCTION_NAME
public static final java.lang.String MDC_DEFAULT_FUNCTION_VERSION
public static final java.lang.String MDC_DEFAULT_FUNCTION_ARN
public static final java.lang.String MDC_DEFAULT_FUNCTION_MEMORY_SIZE
public static final java.lang.String MDC_DEFAULT_FUNCTION_REMAINING_TIME
public static final java.lang.String MDC_DEFAULT_XRAY_TRACE_ID
public MicronautRequestHandler()
ApplicationContext
for
Lambda deployment.public MicronautRequestHandler(io.micronaut.context.ApplicationContext applicationContext)
ApplicationContext
.applicationContext
- the application contextpublic final O handleRequest(I input, com.amazonaws.services.lambda.runtime.Context context)
protected void populateMappingDiagnosticContextValues(@NonNull com.amazonaws.services.lambda.runtime.Context context)
context
- The Lambda execution environment context object.protected void mdcput(@NonNull java.lang.String key, @NonNull java.lang.String val) throws java.lang.IllegalArgumentException
key
- non-null keyval
- value to put in the mapjava.lang.IllegalArgumentException
- in case the "key" parameter is nullprotected void populateMappingDiagnosticContextWithXrayTraceId()
@NonNull protected static java.util.Optional<java.lang.String> parseXrayTraceId()
protected I convertInput(java.lang.Object input)
input
- The inputjava.lang.IllegalArgumentException
- If input cannot be convertedprotected io.micronaut.context.ApplicationContext buildApplicationContext(com.amazonaws.services.lambda.runtime.Context context)
buildApplicationContext
in class io.micronaut.function.executor.AbstractExecutor<com.amazonaws.services.lambda.runtime.Context>
@Nonnull protected io.micronaut.context.ApplicationContextBuilder newApplicationContextBuilder()
newApplicationContextBuilder
in class io.micronaut.function.executor.AbstractExecutor<com.amazonaws.services.lambda.runtime.Context>