Crate lamedh_runtime[−][src]
The official Rust runtime for AWS Lambda.
There are two mechanisms available for defining a Lambda function:
-
The
lambda
attribute macro, which generates the boilerplate to launch and run a Lambda function.The [
#[lambda]
] attribute must be placed on an asynchronous main function. However, as asynchronous main functions are not legal valid Rust this means that the main function must also be decorated using a [#[tokio::main]
] attribute macro. This is available from the [Tokio] crate. -
A type that conforms to the
Handler
trait. This type can then be passed to the thelamedh_runtime::run
function, which launches and runs the Lambda runtime.
An asynchronous function annotated with the #[lambda]
attribute must
accept an argument of type A
which implements serde::Deserialize
, a lambda::Context
and
return a Result<B, E>
, where B
implements [serde::Serializable
]. E
is
any type that implements Into<Box<dyn std::error::Error + Send + Sync + 'static>>
.
use lamedh_runtime::{lambda, Context, Error}; use serde_json::Value; #[lambda] #[tokio::main] async fn main(event: Value, _: Context) -> Result<Value, Error> { Ok(event) }
[#[tokio::main]
]: https://docs.rs/tokio/0.2.21/tokio/attr.main.html
[Tokio]: https://docs.rs/tokio/
Structs
Config | Configuration derived from environment variables. |
Context | The Lambda function execution context. The values in this struct are populated using the Lambda environment variables and the headers returned by the poll request to the Runtime APIs. |
HandlerFn | A |
Traits
Handler | A trait describing an asynchronous function |
Functions
handler_fn | Returns a new |
run | Starts the Lambda Rust runtime and begins polling for events on the Lambda Runtime APIs. |
run_simulated | Runs the lambda function almost entirely in-memory. This is meant for testing. |
Type Definitions
Error | Error type that lambdas may result in |
Attribute Macros
lambda | Wrap an async function into the lambda constructs |