xray-lite-aws-sdk

Crates.ioxray-lite-aws-sdk
lib.rsxray-lite-aws-sdk
version0.0.4
sourcesrc
created_at2024-03-30 08:41:27.154275
updated_at2024-03-30 08:41:27.154275
descriptionxray-lite extension for AWS SDK for Rust
homepagehttps://github.com/codemonger-io/xray-lite/tree/main/xray-lite-aws-sdk
repositoryhttps://github.com/codemonger-io/xray-lite
max_upload_size
id1190894
size10,649
Kikuo Emoto (kikuomax)

documentation

https://docs.rs/xray-lite-aws-sdk

README

xray-lite-aws-sdk

xray-lite-aws-sdk is an extension of xray-lite for AWS SDK for Rust.

Installing xray-lite-aws-sdk

Add the following to your Cargo.toml file:

[dependencies]
xray-lite-aws-sdk = "0.0.4"

Usage

With this crate, you can easily add the X-Ray tracing capability to your AWS service requests through AWS SDK for Rust. It utilizes the interceptor which can be attached to CustomizableOperation available via the customize method of any request builder; e.g., aws_sdk_s3::operation::get_object::builders::GetObjectFluentBuilder::customize

The following example shows how to report a subsegment for each attempt of the S3 GetObject operation:

use aws_config::BehaviorVersion;
use xray_lite::{DaemonClient, SubsegmentContext};
use xray_lite_aws_sdk::ContextExt as _;

async fn get_object_from_s3() {
    let xray_client = DaemonClient::from_lambda_env().unwrap();
    let xray_context = SubsegmentContext::from_lambda_env(xray_client).unwrap();

    let config = aws_config::load_defaults(BehaviorVersion::latest()).await;
    let s3_client = aws_sdk_s3::Client::new(&config);
    s3_client
        .get_object()
        .bucket("the-bucket-name")
        .key("the-object-key")
        .customize()
        .interceptor(xray_context.intercept_operation("S3", "GetObject"))
        .send()
        .await
        .unwrap();
}

API Documentation

https://codemonger-io.github.io/xray-lite/api/xray_lite_aws_sdk/

Commit count: 122

cargo fmt