

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Dapatkan nilai rahasia Secrets Manager menggunakan Rust
<a name="retrieving-secrets-rust"></a>

Dalam aplikasi, Anda dapat mengambil rahasia Anda dengan menelepon `GetSecretValue` atau `BatchGetSecretValue` di salah satu file. AWS SDKs Namun, kami menyarankan Anda menyimpan nilai rahasia Anda dengan menggunakan caching sisi klien. Rahasia caching meningkatkan kecepatan dan mengurangi biaya Anda.

**Topics**
+ [Dapatkan nilai rahasia Secrets Manager menggunakan Rust dengan caching sisi klien](retrieving-secrets_cache-rust.md)
+ [Dapatkan nilai rahasia Secrets Manager menggunakan Rust AWS SDK](retrieving-secrets-rust-sdk.md)

# Dapatkan nilai rahasia Secrets Manager menggunakan Rust dengan caching sisi klien
<a name="retrieving-secrets_cache-rust"></a>

Saat Anda mengambil rahasia, Anda dapat menggunakan komponen caching berbasis Secrets Manager Rust untuk men-cache untuk digunakan di masa mendatang. Mengambil rahasia yang di-cache lebih cepat daripada mengambilnya dari Secrets Manager. Karena ada biaya untuk memanggil Secrets Manager APIs, menggunakan cache dapat mengurangi biaya Anda. Untuk semua cara Anda dapat mengambil rahasia, lihat[Dapatkan rahasia](retrieving-secrets.md).

Kebijakan cache adalah First In First Out (FIFO), jadi ketika cache harus membuang rahasia, ia membuang rahasia tertua. Secara default, cache menyegarkan rahasia setiap jam. Anda dapat mengonfigurasi yang berikut ini:
+ `max_size`— Jumlah maksimum rahasia cache yang harus disimpan sebelum mengusir rahasia yang belum diakses baru-baru ini.
+ `ttl`— Durasi item yang di-cache dianggap valid sebelum memerlukan penyegaran keadaan rahasia.

Implementasi cache tidak termasuk pembatalan cache. Implementasi cache difokuskan di sekitar cache itu sendiri, dan tidak dikeraskan atau difokuskan keamanan. Jika Anda memerlukan keamanan tambahan seperti mengenkripsi item dalam cache, gunakan sifat yang disediakan untuk memodifikasi cache.

Untuk menggunakan komponen, Anda harus memiliki lingkungan pengembangan Rust 2021 dengan`tokio`. Untuk informasi selengkapnya, lihat [Memulai](https://www.rust-lang.org/learn/get-started) situs web Rust Programming Language.

Untuk mengunduh kode sumber, lihat [Secrets Manager Rust-based caching client](https://github.com/aws/aws-secretsmanager-agent/tree/main/aws_secretsmanager_caching) component on. GitHub

Untuk menginstal komponen caching, gunakan perintah berikut.

```
cargo add aws_secretsmanager_caching
```

**Izin yang diperlukan:**
+ `secretsmanager:DescribeSecret`
+ `secretsmanager:GetSecretValue`

Untuk informasi selengkapnya, lihat [Referensi izin](auth-and-access.md#reference_iam-permissions).

**Example Ambil rahasia**  
Contoh berikut menunjukkan bagaimana untuk mendapatkan nilai rahasia untuk rahasia bernama*MyTest*.  

```
use aws_secretsmanager_caching::SecretsManagerCachingClient;
use std::num::NonZeroUsize;
use std::time::Duration;

let client = match SecretsManagerCachingClient::default(
    NonZeroUsize::new(10).unwrap(),
    Duration::from_secs(60),
)
.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
```

**Example Membuat Instantiasi Cache dengan konfigurasi khusus dan klien khusus**  
Contoh berikut menunjukkan cara mengkonfigurasi cache dan kemudian mendapatkan nilai rahasia untuk rahasia bernama*MyTest*.  

```
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(10).unwrap(),
    Duration::from_secs(60),
)
.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
```
```

# Dapatkan nilai rahasia Secrets Manager menggunakan Rust AWS SDK
<a name="retrieving-secrets-rust-sdk"></a>

Dalam aplikasi, Anda dapat mengambil rahasia Anda dengan menelepon `GetSecretValue` atau `BatchGetSecretValue` di salah satu file. AWS SDKs Namun, kami menyarankan Anda menyimpan nilai rahasia Anda dengan menggunakan caching sisi klien. Rahasia caching meningkatkan kecepatan dan mengurangi biaya Anda.

Untuk aplikasi Rust, gunakan [komponen caching berbasis Secrets Manager Rust](retrieving-secrets_cache-rust.md) atau panggil [SDK](https://docs.rs/releases/search?query=aws-sdk-secretsmanager) secara langsung dengan atau. GetSecretValue BatchGetSecretValue

Contoh kode berikut menunjukkan cara mendapatkan nilai rahasia Secrets Manager.

**Izin yang diperlukan:** `secretsmanager:GetSecretValue`

```
async fn show_secret(client: &Client, name: &str) -> Result<(), Error> {
    let resp = client.get_secret_value().secret_id(name).send().await?;

    println!("Value: {}", resp.secret_string().unwrap_or("No value!"));

    Ok(())
}
```