Skip to content

Commit 434185b

Browse files
M-ElsaeedMohammed Ehab
andauthored
Make Trace ID accessible through Context & aws-lambda-java-core version bump to 1.4 (#563)
Co-authored-by: Mohammed Ehab <moehabe@amazon.com>
1 parent 640b766 commit 434185b

File tree

16 files changed

+43
-3
lines changed

16 files changed

+43
-3
lines changed

.github/workflows/runtime-interface-client_pr.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ jobs:
2222
with:
2323
java-version: 8
2424
distribution: corretto
25+
26+
- name: Build and install core dependency locally
27+
working-directory: ./aws-lambda-java-core
28+
run: mvn clean install
2529

2630
- name: Build and install serialization dependency locally
2731
working-directory: ./aws-lambda-java-serialization
@@ -54,6 +58,10 @@ jobs:
5458

5559
- name: Available buildx platforms
5660
run: echo ${{ steps.buildx.outputs.platforms }}
61+
62+
- name: Build and install core dependency locally
63+
working-directory: ./aws-lambda-java-core
64+
run: mvn clean install
5765

5866
- name: Build and install serialization dependency locally
5967
working-directory: ./aws-lambda-java-serialization

aws-lambda-java-core/RELEASE.CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
### September 3, 2025
2+
`1.4.0`
3+
- Getter support for x-ray trace ID through the Context object
4+
15
### May 26, 2025
26
`1.3.0`
37
- Adding support for multi tenancy ([#545](https://github.com/aws/aws-lambda-java-libs/pull/545))

aws-lambda-java-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.amazonaws</groupId>
77
<artifactId>aws-lambda-java-core</artifactId>
8-
<version>1.3.0</version>
8+
<version>1.4.0</version>
99
<packaging>jar</packaging>
1010

1111
<name>AWS Lambda Java Core Library</name>

aws-lambda-java-core/src/main/java/com/amazonaws/services/lambda/runtime/Context.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,14 @@ public interface Context {
109109
default String getTenantId() {
110110
return null;
111111
}
112+
113+
/**
114+
*
115+
* Returns the X-Ray trace ID associated with the request.
116+
*
117+
* @return null by default
118+
*/
119+
default String getXrayTraceId() {
120+
return null;
121+
}
112122
}

aws-lambda-java-runtime-interface-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
<dependency>
6262
<groupId>com.amazonaws</groupId>
6363
<artifactId>aws-lambda-java-core</artifactId>
64-
<version>1.3.0</version>
64+
<version>1.4.0</version>
6565
</dependency>
6666
<dependency>
6767
<groupId>com.amazonaws</groupId>

aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/EventHandlerLoader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,7 @@ public ByteArrayOutputStream call(InvocationRequest request) throws Error, Excep
582582
LambdaEnvironment.FUNCTION_VERSION,
583583
request.getInvokedFunctionArn(),
584584
request.getTenantId(),
585+
request.getXrayTraceId(),
585586
clientContext
586587
);
587588

aws-lambda-java-runtime-interface-client/src/main/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class LambdaContext implements Context {
2323
private final CognitoIdentity cognitoIdentity;
2424
private final ClientContext clientContext;
2525
private final String tenantId;
26+
private final String xrayTraceId;
2627
private final LambdaLogger logger;
2728

2829
public LambdaContext(
@@ -36,6 +37,7 @@ public LambdaContext(
3637
String functionVersion,
3738
String invokedFunctionArn,
3839
String tenantId,
40+
String xrayTraceId,
3941
ClientContext clientContext
4042
) {
4143
this.memoryLimit = memoryLimit;
@@ -49,6 +51,7 @@ public LambdaContext(
4951
this.functionVersion = functionVersion;
5052
this.invokedFunctionArn = invokedFunctionArn;
5153
this.tenantId = tenantId;
54+
this.xrayTraceId = xrayTraceId;
5255
this.logger = com.amazonaws.services.lambda.runtime.LambdaRuntime.getLogger();
5356
}
5457

@@ -98,6 +101,10 @@ public String getTenantId() {
98101
return tenantId;
99102
}
100103

104+
public String getXrayTraceId() {
105+
return xrayTraceId;
106+
}
107+
101108
public LambdaLogger getLogger() {
102109
return logger;
103110
}

aws-lambda-java-runtime-interface-client/src/test/java/com/amazonaws/services/lambda/runtime/api/client/api/LambdaContextTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class LambdaContextTest {
1919
private static final LambdaClientContext CLIENT_CONTEXT = new LambdaClientContext();
2020
public static final int MEMORY_LIMIT = 128;
2121
public static final String TENANT_ID = "tenant-id";
22+
public static final String X_RAY_TRACE_ID = "x-ray-trace-id";
2223

2324
@Test
2425
public void getRemainingTimeInMillis() {
@@ -55,6 +56,6 @@ public void getRemainingTimeInMillis_Deadline() throws InterruptedException {
5556

5657
private LambdaContext createContextWithDeadline(long deadlineTimeInMs) {
5758
return new LambdaContext(MEMORY_LIMIT, deadlineTimeInMs, REQUEST_ID, LOG_GROUP_NAME, LOG_STREAM_NAME,
58-
FUNCTION_NAME, IDENTITY, FUNCTION_VERSION, INVOKED_FUNCTION_ARN, TENANT_ID, CLIENT_CONTEXT);
59+
FUNCTION_NAME, IDENTITY, FUNCTION_VERSION, INVOKED_FUNCTION_ARN, TENANT_ID, X_RAY_TRACE_ID, CLIENT_CONTEXT);
5960
}
6061
}

aws-lambda-java-runtime-interface-client/src/test/java/com/amazonaws/services/lambda/runtime/api/client/logging/JsonLogFormatterTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ void testFormattingWithLambdaContext() {
3030
null,
3131
"function-arn",
3232
null,
33+
null,
3334
null
3435
);
3536
assertFormatsString("test log", LogLevel.WARN, context);
@@ -48,6 +49,7 @@ void testFormattingWithTenantIdInLambdaContext() {
4849
null,
4950
"function-arn",
5051
"tenant-id",
52+
"xray-trace-id",
5153
null
5254
);
5355
assertFormatsString("test log", LogLevel.WARN, context);

aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.alpine.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ phases:
4343
# Install events (dependency of serialization)
4444
- (cd aws-lambda-java-events && mvn install)
4545
# Install serialization (dependency of RIC)
46+
- (cd aws-lambda-java-core && mvn install)
4647
- (cd aws-lambda-java-serialization && mvn install)
4748
- (cd aws-lambda-java-runtime-interface-client && mvn install -DargLineForReflectionTestOnly="")
4849
- (cd aws-lambda-java-runtime-interface-client/test/integration/test-handler && mvn install)

0 commit comments

Comments
 (0)