#secrets-manager #secret #client-secret #aws #cache #applications #web-apps

aws_secretsmanager_caching

AWS Secrets Manager Rust缓存客户端允许Rust应用程序在进程内缓存密钥

1个稳定版本

1.0.0 2024年7月31日

834网络编程 中排名

Download history 123/week @ 2024-07-29 9/week @ 2024-08-05

132 每月下载量
aws_secretsmanager_agent 中使用

Apache-2.0

51KB
963

AWS Secrets Manager Rust缓存客户端

AWS Secrets Manager Rust缓存客户端允许Rust应用程序在进程内缓存密钥。

入门

必备条件

要使用此客户端,您必须拥有

  • Rust 2021开发环境。如果您没有,请访问Rust编程语言网站上的 Rust入门,然后下载并安装Rust。
  • 一个AWS账户,以访问存储在AWS Secrets Manager中的密钥。
    • 要创建AWS账户,请访问 登录或创建AWS账户,然后选择 我是一个新用户。 按照说明创建AWS账户。
    • 要在AWS Secrets Manager中创建密钥,请访问 创建密钥 并按照页面上的说明操作。

开始使用

以下代码示例演示了如何开始使用

  1. 实例化缓存客户端。
  2. 请求密钥。
cargo add tokio -F rt-multi-thread,net,macros
cargo add aws_secretsmanager_caching
use aws_secretsmanager_caching::SecretsManagerCachingClient;
use std::num::NonZeroUsize;
use std::time::Duration;

let client = match SecretsManagerCachingClient::default(
    NonZeroUsize::new(1000).unwrap(),
    Duration::from_secs(300),
)
.await
{
    Ok(c) => c,
    Err(_) => panic!("Handle this error"),
};

let secret_string = match client.get_secret_value("MyTest", None, None).await {
    Ok(s) => s.secret_string.unwrap(),
    Err(_) => panic!("Handle this error"),
};

// Your code here

缓存配置

  • max_size: NonZeroUsize:在淘汰最近未访问的密钥之前,维护的最大缓存密钥数量。
  • ttl: Duration:缓存项被视为有效前的持续时间,在此之后需要刷新密钥状态。

使用自定义配置和自定义客户端实例化缓存

cargo add aws_sdk_secretsmanager aws_config
let config = aws_config::load_defaults(BehaviorVersion::latest())
    .await
    .into_builder()
    .region(Region::from_static("us-west-2"))
    .build();

let asm_builder = aws_sdk_secretsmanager::config::Builder::from(&config);

let client = match SecretsManagerCachingClient::from_builder(
    asm_builder,
    NonZeroUsize::new(1000).unwrap(),
    Duration::from_secs(300),
)
.await
{
    Ok(c) => c,
    Err(_) => panic!("Handle this error"),
};

let secret_string = client
    .get_secret_value("MyTest", None, None)
    .await 
    {
        Ok(c) => c.secret_string.unwrap(),
        Err(_) => panic!("Handle this error"),
    };

// Your code here

获取帮助

请使用以下社区资源获取帮助

依赖项

~17MB
~314K SLoC