

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 Python dengan caching sisi klien
<a name="retrieving-secrets_cache-python"></a>

Saat Anda mengambil rahasia, Anda dapat menggunakan komponen caching berbasis Secrets Manager Python 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-ref-secretcacheconfig.md) dalam cache, dan Anda dapat [menghubungkan ke pengambilan rahasia](retrieving-secrets_cache-ref-secretcachehook.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: 
+ Python 3.6 atau yang lebih baru.
+ botocore 1.12 atau lebih tinggi. [Lihat [AWS SDK untuk Python](https://aws.amazon.com/sdk-for-python/) dan Botocore.](https://botocore.amazonaws.com/v1/documentation/api/latest/index.html) 
+ setuptools\$1scm 3.2 atau lebih tinggi. Lihat [https://pypi. org/project/setuptools-scm/](https://pypi.org/project/setuptools-scm/).

Untuk mengunduh kode sumber, lihat [Secrets Manager Python berbasis komponen klien caching](https://github.com/aws/aws-secretsmanager-caching-python ) di. GitHub

Untuk menginstal komponen, gunakan perintah berikut.

```
$ pip install aws-secretsmanager-caching
```

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

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

**Topics**
+ [

# SecretCache
](retrieving-secrets_cache-ref-secretcache.md)
+ [

# SecretCacheConfig
](retrieving-secrets_cache-ref-secretcacheconfig.md)
+ [

# SecretCacheHook
](retrieving-secrets_cache-ref-secretcachehook.md)
+ [

# @InjectSecretString
](retrieving-secrets_cache-decor-string.md)
+ [

# @InjectKeywordedSecretString
](retrieving-secrets_cache-decor-keyword.md)

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

```
import botocore 
import botocore.session 
from aws_secretsmanager_caching import SecretCache, SecretCacheConfig 

client = botocore.session.get_session().create_client('secretsmanager')
cache_config = SecretCacheConfig()
cache = SecretCache( config = cache_config, client = client)

secret = cache.get_secret_string('mysecret')
```

# SecretCache
<a name="retrieving-secrets_cache-ref-secretcache"></a>

Cache dalam memori untuk rahasia yang diambil dari Secrets Manager. Anda menggunakan [get\$1secret\$1string](#retrieving-secrets_cache-ref-secretcache_get_secret_string) atau [get\$1secret\$1binary](#retrieving-secrets_cache-ref-secretcache_get_secret_binary) untuk mengambil rahasia dari cache. Anda dapat mengkonfigurasi pengaturan cache dengan meneruskan [SecretCacheConfig](retrieving-secrets_cache-ref-secretcacheconfig.md) objek di konstruktor. 

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

```
cache = SecretCache(
    config = SecretCacheConfig,
    client = [client](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/secretsmanager.html)
)
```

**Topics**
+ [

## get\$1secret\$1string
](#retrieving-secrets_cache-ref-secretcache_get_secret_string)
+ [

## get\$1secret\$1binary
](#retrieving-secrets_cache-ref-secretcache_get_secret_binary)

## get\$1secret\$1string
<a name="retrieving-secrets_cache-ref-secretcache_get_secret_string"></a>

Mengambil nilai string rahasia.

Sintaksis Permintaan  

```
response = cache.get_secret_string(
    secret_id='string',
    version_stage='string' )
```

Parameter  
+ `secret_id`(*string*): [Diperlukan] Nama atau ARN rahasia.
+ `version_stage`(*string*): Versi rahasia yang ingin Anda ambil. Untuk informasi selengkapnya, lihat [versi rahasia](whats-in-a-secret.md). Defaultnya adalah 'AWSCURRENT'. 

Jenis pengembalian  
string

## get\$1secret\$1binary
<a name="retrieving-secrets_cache-ref-secretcache_get_secret_binary"></a>

Mengambil nilai biner rahasia.

Sintaksis Permintaan  

```
response = cache.get_secret_binary(
    secret_id='string',
    version_stage='string'
)
```

Parameter  
+ `secret_id`(*string*): [Diperlukan] Nama atau ARN rahasia.
+ `version_stage`(*string*): Versi rahasia yang ingin Anda ambil. Untuk informasi selengkapnya, lihat [versi rahasia](whats-in-a-secret.md). Defaultnya adalah 'AWSCURRENT'. 

Jenis pengembalian  
string yang dikodekan [base64](https://tools.ietf.org/html/rfc4648#section-4)

# SecretCacheConfig
<a name="retrieving-secrets_cache-ref-secretcacheconfig"></a>

Opsi konfigurasi cache untuk ukuran cache maks dan Time to Live (TTL) untuk rahasia cache. [SecretCache](retrieving-secrets_cache-ref-secretcache.md)Parameter

`max_cache_size`(*int*)  
Ukuran cache maksimum. Defaultnya adalah `1024` rahasia. 

`exception_retry_delay_base`(*int*)  
Jumlah detik untuk menunggu setelah pengecualian ditemui sebelum mencoba kembali permintaan. Nilai default-nya `1`.

`exception_retry_growth_factor`(*int*) pur  
Faktor pertumbuhan yang digunakan untuk menghitung waktu tunggu antara percobaan ulang permintaan yang gagal. Nilai default-nya `2`. 

`exception_retry_delay_max`(*int*)  
Jumlah maksimum waktu dalam hitungan detik untuk menunggu di antara permintaan yang gagal. Nilai default-nya `3600`.

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

`secret_refresh_interval`(*int*)  
Jumlah detik untuk menunggu antara menyegarkan informasi rahasia yang di-cache. Nilai default-nya `3600`.

`secret_cache_hook` (*SecretCacheHook*)  
Implementasi dari kelas `SecretCacheHook` abstrak. Nilai default-nya adalah `None`.

# SecretCacheHook
<a name="retrieving-secrets_cache-ref-secretcachehook"></a>

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

**Topics**
+ [

## menempatkan
](#retrieving-secrets_cache-ref-secretcachehook_put)
+ [

## memperoleh
](#retrieving-secrets_cache-ref-secretcachehook_get)

## menempatkan
<a name="retrieving-secrets_cache-ref-secretcachehook_put"></a>

Mempersiapkan objek untuk disimpan dalam cache.

Sintaksis Permintaan  

```
response = hook.put(
    obj='secret_object'
)
```

Parameter  
+ `obj`(*objek*) -- [Diperlukan] Rahasia atau objek yang berisi rahasia.

Jenis pengembalian  
object

## memperoleh
<a name="retrieving-secrets_cache-ref-secretcachehook_get"></a>

Mendapatkan objek dari objek yang di-cache.

Sintaksis Permintaan  

```
response = hook.get(
    obj='secret_object'
)
```

Parameter  
+ `obj`(*objek*): [Wajib] Rahasia atau objek yang berisi rahasia.

Jenis pengembalian  
object

# @InjectSecretString
<a name="retrieving-secrets_cache-decor-string"></a>

Dekorator ini mengharapkan string ID rahasia dan [SecretCache](retrieving-secrets_cache-ref-secretcache.md) sebagai argumen pertama dan kedua. Dekorator mengembalikan nilai string rahasia. Rahasianya harus berisi string. 

```
from aws_secretsmanager_caching import SecretCache 
from aws_secretsmanager_caching import InjectKeywordedSecretString,  InjectSecretString 

cache = SecretCache()

@InjectSecretString ( 'mysecret' ,  cache ) 
def function_to_be_decorated( arg1,  arg2,  arg3):
```

# @InjectKeywordedSecretString
<a name="retrieving-secrets_cache-decor-keyword"></a>

Dekorator ini mengharapkan string ID rahasia dan [SecretCache](retrieving-secrets_cache-ref-secretcache.md) sebagai argumen pertama dan kedua. Argumen yang tersisa memetakan parameter dari fungsi yang dibungkus ke kunci JSON dalam rahasia. Rahasianya harus berisi string dalam struktur JSON. 

Untuk rahasia yang berisi JSON ini:

```
{
  "username": "saanvi",
  "password": "EXAMPLE-PASSWORD"
}
```

Contoh berikut menunjukkan cara mengekstrak nilai JSON untuk `username` dan `password` dari rahasia.

```
from aws_secretsmanager_caching import SecretCache 
  from aws_secretsmanager_caching import InjectKeywordedSecretString,  InjectSecretString 
  
  cache = SecretCache()
  
  @InjectKeywordedSecretString ( secret_id = 'mysecret' ,  cache = cache ,  func_username = 'username' ,  func_password = 'password' ) 
  def function_to_be_decorated( func_username,  func_password):
       print( 'Do something with the func_username and func_password parameters')
```