lambda_runtime_api_client

AWS Lambda Runtime interaction API

8 releases (breaking)

0.11.1 May 8, 2024
0.11.0 Mar 28, 2024
0.10.0 Feb 26, 2024
0.9.0 Dec 20, 2023
0.5.0 Feb 20, 2022

#248 in HTTP server

Download history 40061/week @ 2024-06-13 45507/week @ 2024-06-20 44306/week @ 2024-06-27 33401/week @ 2024-07-04 30474/week @ 2024-07-11 31405/week @ 2024-07-18 40181/week @ 2024-07-25 39061/week @ 2024-08-01 34642/week @ 2024-08-08 35642/week @ 2024-08-15 39719/week @ 2024-08-22 41362/week @ 2024-08-29 40223/week @ 2024-09-05 31595/week @ 2024-09-12 28756/week @ 2024-09-19 32762/week @ 2024-09-26

140,961 downloads per month
Used in 56 crates (3 directly)

Apache-2.0

27KB
516 lines

AWS Lambda Runtime API Client

Docs

lambda-runtime-api-client is a library to interact with the AWS Lambda Runtime API.

This crate provides simple building blocks to send REST request to this API. You probably don't need to use this crate directly, look at lambda_runtime and lambda_extension instead.

Example

use http::{Method, Request};
use hyper::Body;
use lambda_runtime_api_client::{build_request, Client, Error};

fn register_request(extension_name: &str, events: &[&str]) -> Result<Request<Body>, Error> {
    let events = serde_json::json!({ "events": events });

    let req = build_request()
        .method(Method::POST)
        .uri("/2020-01-01/extension/register")
        .header("Lambda-Extension-Name", extension_name)
        .body(Body::from(serde_json::to_string(&events)?))?;

    Ok(req)
}

#[tokio::main]
async fn main() -> Result<(), Error> {
    let client = Client::builder().build()?;
    let request = register_request("my_extension", &["INVOKE"])?;

    client.call(request).await
}

Dependencies

~6–15MB
~192K SLoC