

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.NET dengan caching sisi klien
<a name="retrieving-secrets_cache-net"></a>

Saat Anda mengambil rahasia, Anda dapat menggunakan komponen caching berbasis Secrets Manager .net 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 Least Recently Used (LRU), jadi ketika cache harus membuang rahasia, ia membuang rahasia yang paling jarang digunakan. Secara default, cache menyegarkan rahasia setiap jam. Anda dapat mengonfigurasi [seberapa sering rahasia disegarkan](retrieving-secrets_cache-net-SecretCacheConfiguration.md#retrieving-secrets_cache-net-SecretCacheConfiguration-properties_CacheItemTTL) dalam cache, dan Anda dapat [menghubungkan ke pengambilan rahasia](retrieving-secrets_cache-net-ISecretCacheHook.md) untuk menambahkan lebih banyak fungsionalitas.

Cache tidak memaksa pengumpulan sampah setelah referensi cache dibebaskan. 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 antarmuka dan metode abstrak yang disediakan.

Untuk menggunakan komponen, Anda harus memiliki yang berikut:
+ .NET Framework 4.6.2 atau lebih tinggi, atau.NET Standard 2.0 atau lebih tinggi. Lihat [Mengunduh.NET](https://dotnet.microsoft.com/en-us/download) di situs web Microsoft .NET.
+  AWS SDK for .NET. Lihat [AWS SDKs](asm_access.md#asm-sdks).

Untuk mengunduh kode sumber, lihat [Caching client untuk.NET](https://github.com/aws/aws-secretsmanager-caching-net ) di GitHub.

Untuk menggunakan cache, pertama buat instance, lalu ambil rahasia Anda dengan menggunakan atau. `GetSecretString` `GetSecretBinary` Pada pengambilan berturut-turut, cache mengembalikan salinan rahasia yang di-cache.

**Untuk mendapatkan paket caching**
+ Lakukan salah satu tindakan berikut:
  + Jalankan perintah.NET CLI berikut di direktori proyek Anda.

    ```
    dotnet add package AWSSDK.SecretsManager.Caching --version 1.0.6
    ```
  + Tambahkan referensi paket berikut ke `.csproj` file Anda.

    ```
    <ItemGroup>
        <PackageReference Include="AWSSDK.SecretsManager.Caching" Version="1.0.6" />
    </ItemGroup>
    ```

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

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

**Topics**
+ [SecretsManagerCache](retrieving-secrets_cache-net-SecretsManagerCache.md)
+ [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md)
+ [ISecretCacheHook](retrieving-secrets_cache-net-ISecretCacheHook.md)

**Example Ambil rahasia**  
Contoh kode berikut menunjukkan metode yang mengambil rahasia bernama*MySecret*.  

```
using Amazon.SecretsManager.Extensions.Caching;

namespace LambdaExample 
{
    public class CachingExample 
    {
        private const string MySecretName ="MySecret";

        private SecretsManagerCache cache = new SecretsManagerCache();

        public async Task<Response>  FunctionHandlerAsync(string input, ILambdaContext context)
        {
            string MySecret = await cache.GetSecretString(MySecretName);
            
            // Use the secret, return success
            
        }
    }
}
```

**Example Konfigurasikan durasi penyegaran cache time to live (TTL)**  
Contoh kode berikut menunjukkan metode yang mengambil rahasia bernama *MySecret* dan menetapkan durasi penyegaran cache TTL menjadi 24 jam.  

```
using Amazon.SecretsManager.Extensions.Caching;

namespace LambdaExample
{
    public class CachingExample
    {
        private const string MySecretName = "MySecret";
        
        private static SecretCacheConfiguration cacheConfiguration = new SecretCacheConfiguration
        {
            CacheItemTTL = 86400000
        };
        private SecretsManagerCache cache = new SecretsManagerCache(cacheConfiguration);
        public async Task<Response> FunctionHandlerAsync(string input, ILambdaContext context)
        {
            string mySecret = await cache.GetSecretString(MySecretName);

            // Use the secret, return success
        }
    }
}
```

# SecretsManagerCache
<a name="retrieving-secrets_cache-net-SecretsManagerCache"></a>

Cache dalam memori untuk rahasia yang diminta dari Secrets Manager. Anda menggunakan [GetSecretString](#retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretString) atau [GetSecretBinary](#retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretBinary) untuk mengambil rahasia dari cache. Anda dapat mengkonfigurasi pengaturan cache dengan meneruskan [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) objek di konstruktor. 

Untuk informasi selengkapnya, termasuk contoh, lihat[Dapatkan nilai rahasia Secrets Manager menggunakan.NET dengan caching sisi klien](retrieving-secrets_cache-net.md).

## Konstruktor
<a name="retrieving-secrets_cache-net-SecretsManagerCache-constructors"></a>

`public SecretsManagerCache()`  
Konstruktor default untuk `SecretsManagerCache` objek.

`public SecretsManagerCache(IAmazonSecretsManager secretsManager)`  
Membangun cache baru menggunakan klien Secrets Manager yang dibuat menggunakan yang disediakan [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html). Gunakan konstruktor ini untuk menyesuaikan klien Secrets Manager, misalnya untuk menggunakan wilayah atau titik akhir tertentu.  
**Parameter**    
Rahasia Manajer  
[AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)Untuk mengambil rahasia dari.

`public SecretsManagerCache(SecretCacheConfiguration config)`  
Membangun cache rahasia baru menggunakan yang disediakan[SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md). Gunakan konstruktor ini untuk mengkonfigurasi cache, misalnya jumlah rahasia untuk cache dan seberapa sering itu menyegarkan.  
**Parameter**    
config  
A [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) yang berisi informasi konfigurasi untuk cache.

`public SecretsManagerCache(IAmazonSecretsManager secretsManager, SecretCacheConfiguration config)`  
Membangun cache baru menggunakan klien Secrets Manager yang dibuat menggunakan yang disediakan [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)dan file. [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) Gunakan konstruktor ini untuk menyesuaikan klien Secrets Manager, misalnya untuk menggunakan wilayah atau titik akhir tertentu serta mengkonfigurasi cache, misalnya jumlah rahasia untuk cache dan seberapa sering itu menyegarkan.  
**Parameter**    
Rahasia Manajer  
[AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)Untuk mengambil rahasia dari.  
config  
A [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) yang berisi informasi konfigurasi untuk cache.

## Metode
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods"></a>

### GetSecretString
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretString"></a>

 `public async Task<String> GetSecretString(String secretId)`

Mengambil rahasia string dari Secrets Manager.Parameter

secretId  
ARN atau nama rahasia untuk diambil.

### GetSecretBinary
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretBinary"></a>

`public async Task<byte[]> GetSecretBinary(String secretId)`

Mengambil rahasia biner dari Secrets Manager.Parameter

secretId  
ARN atau nama rahasia untuk diambil.

### RefreshNowAsync
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-RefreshNowAsync"></a>

`public async Task<bool> RefreshNowAsync(String secretId)`

Meminta nilai rahasia dari Secrets Manager dan memperbarui cache dengan perubahan apa pun. Jika tidak ada entri cache yang ada, buat yang baru. Kembali `true` jika penyegaran berhasil.Parameter

secretId  
ARN atau nama rahasia untuk diambil.

### GetCachedSecret
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-GetCachedSecret"></a>

`public SecretCacheItem GetCachedSecret(string secretId)`

Mengembalikan entri cache untuk rahasia tertentu jika ada dalam cache. Jika tidak, mengambil rahasia dari Secrets Manager dan membuat entri cache baru.Parameter

secretId  
ARN atau nama rahasia untuk diambil.

# SecretCacheConfiguration
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration"></a>

Opsi konfigurasi cache untuk[SecretsManagerCache](retrieving-secrets_cache-net-SecretsManagerCache.md), seperti ukuran cache maksimum dan Time to Live (TTL) untuk rahasia cache.

## Sifat-sifat
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration-properties"></a>

### CacheItemTTL
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration-properties_CacheItemTTL"></a>

`public uint CacheItemTTL { get; set; }`

TTL dari item cache dalam milidetik. Defaultnya adalah `3600000` ms atau 1 jam. Maksimumnya adalah `4294967295` ms, yaitu sekitar 49,7 hari.

### MaxCacheSize
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration-properties_MaxCacheSize"></a>

`public ushort MaxCacheSize { get; set; }`

Ukuran cache maksimum. Defaultnya adalah 1024 rahasia. Maksimum adalah 65.535.

### VersionStage
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration-properties_VersionStage"></a>

`public string VersionStage { get; set; }`

Versi rahasia yang ingin Anda cache. Untuk informasi selengkapnya, lihat [Versi rahasia](whats-in-a-secret.md#term_version). Nilai default-nya `"AWSCURRENT"`.

### Klien
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration-properties_Client"></a>

`public IAmazonSecretsManager Client { get; set; }`

[AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)Untuk mengambil rahasia dari. Jika ya`null`, cache membuat instance klien baru. Nilai default-nya `null`.

### CacheHook
<a name="retrieving-secrets_cache-net-SecretCacheConfiguration-properties_CacheHook"></a>

`public ISecretCacheHook CacheHook { get; set; }`

A[ISecretCacheHook](retrieving-secrets_cache-net-ISecretCacheHook.md).

# ISecretCacheHook
<a name="retrieving-secrets_cache-net-ISecretCacheHook"></a>

Antarmuka untuk menghubungkan [SecretsManagerCache](retrieving-secrets_cache-net-SecretsManagerCache.md) ke dalam untuk melakukan tindakan pada rahasia yang disimpan dalam cache. 

## Metode
<a name="retrieving-secrets_cache-net-ISecretCacheHook-methods"></a>

### Masukan
<a name="retrieving-secrets_cache-net-ISecretCacheHook-methods-Put"></a>

`object Put(object o);`

Siapkan objek untuk disimpan dalam cache.

Mengembalikan objek untuk menyimpan dalam cache.

### Dapatkan
<a name="retrieving-secrets_cache-net-ISecretCacheHook-methods-Get"></a>

`object Get(object cachedObject);`

Turunkan objek dari objek yang di-cache.

Mengembalikan objek untuk kembali dari cache