//===----------------------------------------------------------------------===// // // This source file is part of the SwiftAWSLambdaRuntime open source project // // Copyright (c) 2024 Apple Inc. and the SwiftAWSLambdaRuntime project authors // Licensed under Apache License v2.0 // // See LICENSE.txt for license information // See CONTRIBUTORS.txt for the list of SwiftAWSLambdaRuntime project authors // // SPDX-License-Identifier: Apache-2.0 // //===----------------------------------------------------------------------===// import AWSLambdaRuntime import NIOCore struct SendNumbersWithPause: StreamingLambdaHandler { func handle( _ event: ByteBuffer, responseWriter: some LambdaResponseStreamWriter, context: LambdaContext ) async throws { for i in 1...10 { // Send partial data try await responseWriter.write(ByteBuffer(string: "\(i)\n")) // Perform some long asynchronous work try await Task.sleep(for: .milliseconds(1000)) } // All data has been sent. Close off the response stream. try await responseWriter.finish() } } let runtime = LambdaRuntime.init(handler: SendNumbersWithPause()) try await runtime.run()