diff --git a/conformance-tests-otel/src/main/java/software/amazon/lambda/durable/conformance/otel/Otel20VirtualContext.java b/conformance-tests-otel/src/main/java/software/amazon/lambda/durable/conformance/otel/Otel20VirtualContext.java new file mode 100644 index 000000000..b7fe7d134 --- /dev/null +++ b/conformance-tests-otel/src/main/java/software/amazon/lambda/durable/conformance/otel/Otel20VirtualContext.java @@ -0,0 +1,21 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +package software.amazon.lambda.durable.conformance.otel; + +import java.util.Map; +import software.amazon.lambda.durable.DurableContext; +import software.amazon.lambda.durable.config.RunInChildContextConfig; + +/** Virtual child-context scenario for OTel requirement otel-invocation-20. */ +public final class Otel20VirtualContext extends OtelConformanceHandler { + + @Override + public String handleRequest(Map event, DurableContext context) { + requireScenario(event, "virtual-context"); + return context.runInChildContext( + "otel-virtual-context", + String.class, + child -> "virtual-complete", + RunInChildContextConfig.builder().isVirtual(true).build()); + } +} diff --git a/conformance-tests-otel/template.yaml b/conformance-tests-otel/template.yaml index 0ac9261f9..bdda8a5b0 100644 --- a/conformance-tests-otel/template.yaml +++ b/conformance-tests-otel/template.yaml @@ -305,6 +305,17 @@ Resources: CodeUri: . Handler: software.amazon.lambda.durable.conformance.otel.Otel19ExecutionFailure Role: !Ref LambdaExecutionRoleArn + + Otel20VirtualContext: + Type: AWS::Serverless::Function + TestingMetadata: + TestDescription: + - otel-invocation-20 + Properties: + CodeUri: . + Handler: software.amazon.lambda.durable.conformance.otel.Otel20VirtualContext + Role: !Ref LambdaExecutionRoleArn + OtelExecution1Success: Type: AWS::Serverless::Function TestingMetadata: @@ -576,3 +587,16 @@ Resources: Environment: Variables: OTEL_PLUGIN_MODE: execution + + OtelExecution20VirtualContext: + Type: AWS::Serverless::Function + TestingMetadata: + TestDescription: + - otel-execution-20 + Properties: + CodeUri: . + Handler: software.amazon.lambda.durable.conformance.otel.Otel20VirtualContext + Role: !Ref LambdaExecutionRoleArn + Environment: + Variables: + OTEL_PLUGIN_MODE: execution