#aws-sdk #aws #x-ray #tracing #request-builder

xray-lite-aws-sdk

xray-lite为Rust AWS SDK提供的扩展

1 个不稳定版本

0.0.4 2024年3月30日

#372 in 性能分析

MIT 许可证

82KB
1.5K SLoC

xray-lite-aws-sdk

xray-lite-aws-sdkxray-lite 的扩展,用于 AWS SDK for Rust

安装 xray-lite-aws-sdk

将以下内容添加到您的 Cargo.toml 文件中

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

用法

使用此crate,您可以通过 AWS SDK for Rust 容易地将X-Ray跟踪功能添加到您的AWS服务请求中。它使用 拦截器,该拦截器可以附加到通过任何请求构建器的 CustomizableOperation 方法提供的 customize 方法;例如,aws_sdk_s3::operation::get_object::builders::GetObjectFluentBuilder::customize

以下示例展示了如何为S3 GetObject操作的每次尝试报告一个子分段

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文档

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

依赖关系

~6.5–9MB
~157K SLoC