mirror of
https://github.com/swift-server/swift-aws-lambda-runtime.git
synced 2026-06-02 07:27:33 +00:00
54fd25bdad
* add streaming example and doc * add streaming example to CI * fix soundness * remove unused files * correct usage of zsh env var * typo Co-authored-by: Tim Condon <0xTim@users.noreply.github.com> * typo Co-authored-by: Tim Condon <0xTim@users.noreply.github.com> * add comments Co-authored-by: Tim Condon <0xTim@users.noreply.github.com> * typo Co-authored-by: Tim Condon <0xTim@users.noreply.github.com> * add an example README with common sections + link to each example --------- Co-authored-by: Tim Condon <0xTim@users.noreply.github.com>
37 lines
1.2 KiB
Swift
37 lines
1.2 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// 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()
|