Skip to content

Commit 8c24cff

Browse files
authored
fix context members to follow swift APi guidelines (#88)
motivation: nicer API changes: * requestID -> requestID * traceId -> traceID * invokedFunctionArn -> invokedFunctionARN * adjust examples
1 parent fe60959 commit 8c24cff

File tree

9 files changed

+68
-68
lines changed

9 files changed

+68
-68
lines changed

Examples/LambdaFunctions/Sources/ErrorHandling/main.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ Lambda.run { (context: Lambda.Context, request: Request, callback: (Result<Respo
2121
switch request.error {
2222
// no error here!
2323
case .none:
24-
callback(.success(Response(awsRequestId: context.requestId, requestId: request.requestId, status: .ok)))
24+
callback(.success(Response(awsRequestID: context.requestID, requestID: request.requestID, status: .ok)))
2525
// trigger a "managed" error - domain specific business logic failure
2626
case .managed:
27-
callback(.success(Response(awsRequestId: context.requestId, requestId: request.requestId, status: .error)))
27+
callback(.success(Response(awsRequestID: context.requestID, requestID: request.requestID, status: .error)))
2828
// trigger an "unmanaged" error - an unexpected Swift Error triggered while processing the request
2929
case .unmanaged(let error):
3030
callback(.failure(UnmanagedError(description: error)))
@@ -37,11 +37,11 @@ Lambda.run { (context: Lambda.Context, request: Request, callback: (Result<Respo
3737
// MARK: - Request and Response
3838

3939
struct Request: Codable {
40-
let requestId: String
40+
let requestID: String
4141
let error: Error
4242

43-
public init(requestId: String, error: Error? = nil) {
44-
self.requestId = requestId
43+
public init(requestID: String, error: Error? = nil) {
44+
self.requestID = requestID
4545
self.error = error ?? .none
4646
}
4747

@@ -80,13 +80,13 @@ struct Request: Codable {
8080
}
8181

8282
struct Response: Codable {
83-
let awsRequestId: String
84-
let requestId: String
83+
let awsRequestID: String
84+
let requestID: String
8585
let status: Status
8686

87-
public init(awsRequestId: String, requestId: String, status: Status) {
88-
self.awsRequestId = awsRequestId
89-
self.requestId = requestId
87+
public init(awsRequestID: String, requestID: String, status: Status) {
88+
self.awsRequestID = awsRequestID
89+
self.requestID = requestID
9090
self.status = status
9191
}
9292

Sources/AWSLambdaRuntimeCore/LambdaContext.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ extension Lambda {
2121
/// The Lambda runtime generates and passes the `Context` to the Lambda handler as an argument.
2222
public final class Context: CustomDebugStringConvertible {
2323
/// The request ID, which identifies the request that triggered the function invocation.
24-
public let requestId: String
24+
public let requestID: String
2525

2626
/// The AWS X-Ray tracing header.
27-
public let traceId: String
27+
public let traceID: String
2828

2929
/// The ARN of the Lambda function, version, or alias that's specified in the invocation.
30-
public let invokedFunctionArn: String
30+
public let invokedFunctionARN: String
3131

3232
/// The timestamp that the function times out
3333
public let deadline: DispatchWallTime
@@ -54,17 +54,17 @@ extension Lambda {
5454
/// This is useful when implementing `EventLoopLambdaHandler`
5555
public let allocator: ByteBufferAllocator
5656

57-
internal init(requestId: String,
58-
traceId: String,
59-
invokedFunctionArn: String,
57+
internal init(requestID: String,
58+
traceID: String,
59+
invokedFunctionARN: String,
6060
deadline: DispatchWallTime,
6161
cognitoIdentity: String? = nil,
6262
clientContext: String? = nil,
6363
logger: Logger,
6464
eventLoop: EventLoop) {
65-
self.requestId = requestId
66-
self.traceId = traceId
67-
self.invokedFunctionArn = invokedFunctionArn
65+
self.requestID = requestID
66+
self.traceID = traceID
67+
self.invokedFunctionARN = invokedFunctionARN
6868
self.cognitoIdentity = cognitoIdentity
6969
self.clientContext = clientContext
7070
self.deadline = deadline
@@ -73,8 +73,8 @@ extension Lambda {
7373
self.allocator = ByteBufferAllocator()
7474
// mutate logger with context
7575
var logger = logger
76-
logger[metadataKey: "awsRequestId"] = .string(requestId)
77-
logger[metadataKey: "awsTraceId"] = .string(traceId)
76+
logger[metadataKey: "awsRequestID"] = .string(requestID)
77+
logger[metadataKey: "awsTraceID"] = .string(traceID)
7878
self.logger = logger
7979
}
8080

@@ -87,7 +87,7 @@ extension Lambda {
8787
}
8888

8989
public var debugDescription: String {
90-
"\(Self.self)(requestId: \(self.requestId), traceId: \(self.traceId), invokedFunctionArn: \(self.invokedFunctionArn), cognitoIdentity: \(self.cognitoIdentity ?? "nil"), clientContext: \(self.clientContext ?? "nil"), deadline: \(self.deadline))"
90+
"\(Self.self)(requestID: \(self.requestID), traceID: \(self.traceID), invokedFunctionARN: \(self.invokedFunctionARN), cognitoIdentity: \(self.cognitoIdentity ?? "nil"), clientContext: \(self.clientContext ?? "nil"), deadline: \(self.deadline))"
9191
}
9292
}
9393
}

Sources/AWSLambdaRuntimeCore/LambdaRunner.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ extension Lambda {
8383

8484
private extension Lambda.Context {
8585
convenience init(logger: Logger, eventLoop: EventLoop, invocation: Lambda.Invocation) {
86-
self.init(requestId: invocation.requestId,
87-
traceId: invocation.traceId,
88-
invokedFunctionArn: invocation.invokedFunctionArn,
86+
self.init(requestID: invocation.requestID,
87+
traceID: invocation.traceID,
88+
invokedFunctionARN: invocation.invokedFunctionARN,
8989
deadline: DispatchWallTime(millisSinceEpoch: invocation.deadlineInMillisSinceEpoch),
9090
cognitoIdentity: invocation.cognitoIdentity,
9191
clientContext: invocation.clientContext,

Sources/AWSLambdaRuntimeCore/LambdaRuntimeClient.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ extension Lambda {
5959

6060
/// Reports a result to the Runtime Engine.
6161
func reportResults(logger: Logger, invocation: Invocation, result: Result<ByteBuffer?, Error>) -> EventLoopFuture<Void> {
62-
var url = Consts.invocationURLPrefix + "/" + invocation.requestId
62+
var url = Consts.invocationURLPrefix + "/" + invocation.requestID
6363
var body: ByteBuffer?
6464
switch result {
6565
case .success(let buffer):
@@ -152,15 +152,15 @@ internal extension ErrorResponse {
152152

153153
extension Lambda {
154154
internal struct Invocation {
155-
let requestId: String
155+
let requestID: String
156156
let deadlineInMillisSinceEpoch: Int64
157-
let invokedFunctionArn: String
158-
let traceId: String
157+
let invokedFunctionARN: String
158+
let traceID: String
159159
let clientContext: String?
160160
let cognitoIdentity: String?
161161

162162
init(headers: HTTPHeaders) throws {
163-
guard let requestId = headers.first(name: AmazonHeaders.requestID), !requestId.isEmpty else {
163+
guard let requestID = headers.first(name: AmazonHeaders.requestID), !requestID.isEmpty else {
164164
throw RuntimeError.invocationMissingHeader(AmazonHeaders.requestID)
165165
}
166166

@@ -169,18 +169,18 @@ extension Lambda {
169169
throw RuntimeError.invocationMissingHeader(AmazonHeaders.deadline)
170170
}
171171

172-
guard let invokedFunctionArn = headers.first(name: AmazonHeaders.invokedFunctionARN) else {
172+
guard let invokedFunctionARN = headers.first(name: AmazonHeaders.invokedFunctionARN) else {
173173
throw RuntimeError.invocationMissingHeader(AmazonHeaders.invokedFunctionARN)
174174
}
175175

176-
guard let traceId = headers.first(name: AmazonHeaders.traceID) else {
176+
guard let traceID = headers.first(name: AmazonHeaders.traceID) else {
177177
throw RuntimeError.invocationMissingHeader(AmazonHeaders.traceID)
178178
}
179179

180-
self.requestId = requestId
180+
self.requestID = requestID
181181
self.deadlineInMillisSinceEpoch = unixTimeInMilliseconds
182-
self.invokedFunctionArn = invokedFunctionArn
183-
self.traceId = traceId
182+
self.invokedFunctionARN = invokedFunctionARN
183+
self.traceID = traceID
184184
self.clientContext = headers["Lambda-Runtime-Client-Context"].first
185185
self.cognitoIdentity = headers["Lambda-Runtime-Cognito-Identity"].first
186186
}

Sources/AWSLambdaTesting/Lambda+Testing.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,18 @@ import NIO
4242

4343
extension Lambda {
4444
public struct TestConfig {
45-
public var requestId: String
46-
public var traceId: String
47-
public var invokedFunctionArn: String
45+
public var requestID: String
46+
public var traceID: String
47+
public var invokedFunctionARN: String
4848
public var timeout: DispatchTimeInterval
4949

50-
public init(requestId: String = "\(DispatchTime.now().uptimeNanoseconds)",
51-
traceId: String = "Root=\(DispatchTime.now().uptimeNanoseconds);Parent=\(DispatchTime.now().uptimeNanoseconds);Sampled=1",
52-
invokedFunctionArn: String = "arn:aws:lambda:us-west-1:\(DispatchTime.now().uptimeNanoseconds):function:custom-runtime",
50+
public init(requestID: String = "\(DispatchTime.now().uptimeNanoseconds)",
51+
traceID: String = "Root=\(DispatchTime.now().uptimeNanoseconds);Parent=\(DispatchTime.now().uptimeNanoseconds);Sampled=1",
52+
invokedFunctionARN: String = "arn:aws:lambda:us-west-1:\(DispatchTime.now().uptimeNanoseconds):function:custom-runtime",
5353
timeout: DispatchTimeInterval = .seconds(5)) {
54-
self.requestId = requestId
55-
self.traceId = traceId
56-
self.invokedFunctionArn = invokedFunctionArn
54+
self.requestID = requestID
55+
self.traceID = traceID
56+
self.invokedFunctionARN = invokedFunctionARN
5757
self.timeout = timeout
5858
}
5959
}
@@ -97,9 +97,9 @@ extension Lambda {
9797
try! eventLoopGroup.syncShutdownGracefully()
9898
}
9999
let eventLoop = eventLoopGroup.next()
100-
let context = Context(requestId: config.requestId,
101-
traceId: config.traceId,
102-
invokedFunctionArn: config.invokedFunctionArn,
100+
let context = Context(requestID: config.requestID,
101+
traceID: config.traceID,
102+
invokedFunctionARN: config.invokedFunctionARN,
103103
deadline: .now() + config.timeout,
104104
logger: logger,
105105
eventLoop: eventLoop)

Tests/AWSLambdaRuntimeCoreTests/LambdaTest.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -256,19 +256,19 @@ class LambdaTest: XCTestCase {
256256
let past2 = DispatchWallTime(millisSinceEpoch: Date(timeIntervalSinceNow: Double(-delta)).millisSinceEpoch)
257257
XCTAssertEqual(Double(past1.rawValue), Double(past2.rawValue), accuracy: 2_000_000.0)
258258

259-
let context = Lambda.Context(requestId: UUID().uuidString,
260-
traceId: UUID().uuidString,
261-
invokedFunctionArn: UUID().uuidString,
259+
let context = Lambda.Context(requestID: UUID().uuidString,
260+
traceID: UUID().uuidString,
261+
invokedFunctionARN: UUID().uuidString,
262262
deadline: .now() + .seconds(1),
263263
cognitoIdentity: nil,
264264
clientContext: nil,
265265
logger: Logger(label: "test"),
266266
eventLoop: MultiThreadedEventLoopGroup(numberOfThreads: 1).next())
267267
XCTAssertGreaterThan(context.deadline, .now())
268268

269-
let expiredContext = Lambda.Context(requestId: context.requestId,
270-
traceId: context.traceId,
271-
invokedFunctionArn: context.invokedFunctionArn,
269+
let expiredContext = Lambda.Context(requestID: context.requestID,
270+
traceID: context.traceID,
271+
invokedFunctionARN: context.invokedFunctionARN,
272272
deadline: .now() - .seconds(1),
273273
cognitoIdentity: context.cognitoIdentity,
274274
clientContext: context.clientContext,
@@ -278,9 +278,9 @@ class LambdaTest: XCTestCase {
278278
}
279279

280280
func testGetRemainingTime() {
281-
let context = Lambda.Context(requestId: UUID().uuidString,
282-
traceId: UUID().uuidString,
283-
invokedFunctionArn: UUID().uuidString,
281+
let context = Lambda.Context(requestID: UUID().uuidString,
282+
traceID: UUID().uuidString,
283+
invokedFunctionARN: UUID().uuidString,
284284
deadline: .now() + .seconds(1),
285285
cognitoIdentity: nil,
286286
clientContext: nil,

Tests/AWSLambdaRuntimeTests/Lambda+CodeableTest.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ class CodableLambdaTest: XCTestCase {
6565

6666
// convencience method
6767
func newContext() -> Lambda.Context {
68-
Lambda.Context(requestId: UUID().uuidString,
69-
traceId: "abc123",
70-
invokedFunctionArn: "aws:arn:",
68+
Lambda.Context(requestID: UUID().uuidString,
69+
traceID: "abc123",
70+
invokedFunctionARN: "aws:arn:",
7171
deadline: .now() + .seconds(3),
7272
cognitoIdentity: nil,
7373
clientContext: nil,

Tests/AWSLambdaTestingTests/Tests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,16 @@ class LambdaTestingTests: XCTestCase {
125125
func testConfigValues() {
126126
let timeout: TimeInterval = 4
127127
let config = Lambda.TestConfig(
128-
requestId: UUID().uuidString,
129-
traceId: UUID().uuidString,
130-
invokedFunctionArn: "arn:\(UUID().uuidString)",
128+
requestID: UUID().uuidString,
129+
traceID: UUID().uuidString,
130+
invokedFunctionARN: "arn:\(UUID().uuidString)",
131131
timeout: .seconds(4)
132132
)
133133

134134
let myLambda = { (ctx: Lambda.Context, _: String, callback: @escaping (Result<Void, Error>) -> Void) in
135-
XCTAssertEqual(ctx.requestId, config.requestId)
136-
XCTAssertEqual(ctx.traceId, config.traceId)
137-
XCTAssertEqual(ctx.invokedFunctionArn, config.invokedFunctionArn)
135+
XCTAssertEqual(ctx.requestID, config.requestID)
136+
XCTAssertEqual(ctx.traceID, config.traceID)
137+
XCTAssertEqual(ctx.invokedFunctionARN, config.invokedFunctionARN)
138138

139139
let secondsSinceEpoch = Double(Int64(bitPattern: ctx.deadline.rawValue)) / -1_000_000_000
140140
XCTAssertEqual(Date(timeIntervalSince1970: secondsSinceEpoch).timeIntervalSinceNow, timeout, accuracy: 0.1)

readme.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,13 @@ When calling the user provided Lambda function, the library provides a `Context`
235235
```swift
236236
public final class Context {
237237
/// The request ID, which identifies the request that triggered the function invocation.
238-
public let requestId: String
238+
public let requestID: String
239239

240240
/// The AWS X-Ray tracing header.
241-
public let traceId: String
241+
public let traceID: String
242242

243243
/// The ARN of the Lambda function, version, or alias that's specified in the invocation.
244-
public let invokedFunctionArn: String
244+
public let invokedFunctionARN: String
245245

246246
/// The timestamp that the function times out
247247
public let deadline: DispatchWallTime

0 commit comments

Comments
 (0)