

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Rufen Sie mithilfe von Go mit clientseitigem Caching einen geheimen Wert für Secrets Manager ab
<a name="retrieving-secrets_cache-go"></a>

Wenn Sie ein Secret abrufen, können Sie die Go-basierte Caching-Komponente von Secrets Manager verwenden, um es für zukünftige Verwendung zu cachen. Das Abrufen eines gecacheten Secrets ist schneller als das Abrufen aus Secrets Manager. Da der Aufruf von Secrets Manager mit Kosten verbunden ist APIs, kann die Verwendung eines Caches Ihre Kosten senken. Alle Möglichkeiten, wie Sie Secrets abrufen können, finden Sie unter [Holen Sie sich Geheimnisse](retrieving-secrets.md).

Die Cache-Richtlinie ist Least Recently Used (LRU). Wenn der Cache also ein Secret verwerfen muss, verwirft er das am wenigsten verwendete Secret. Standardmäßig aktualisiert der Cache Secrets jede Stunde. Sie können konfigurieren, [wie oft das Secret im Cache aktualisiert wird](retrieving-secrets_cache-go_CacheConfig.md), und Sie können [den Secret-Abruf anbinden](retrieving-secrets_cache-go_CacheHook.md), um weitere Funktionalität hinzuzufügen.

Der Cache erzwingt keine Garbage Collection, sobald Cache-Referenzen freigegeben wurden. Die Cache-Implementierung beinhaltet keine Cache-Invalidierung. Die Cache-Implementierung konzentriert sich auf den Cache selbst und ist weder sicherheitsgehärtet noch fokussiert. Wenn Sie zusätzliche Sicherheit benötigen, z. B. das Verschlüsseln von Elementen im Cache, verwenden Sie die bereitgestellten Schnittstellen und abstrakten Methoden.

Zum Verwenden der Komponente ist Folgendes erforderlich:
+ AWS SDK for Go. Siehe [AWS SDKs](asm_access.md#asm-sdks).

Um den Quellcode herunterzuladen, siehe [Secrets Manager Go Caching-Client](https://github.com/aws/aws-secretsmanager-caching-go ) auf GitHub.

Informationen zum Einrichten einer Go-Entwicklungsumgebung finden Sie unter [Golang – Erste Schritte](https://golang.org/doc/install) auf der Website der Go-Programmiersprache.

**Erforderliche Berechtigungen: **
+ `secretsmanager:DescribeSecret`
+ `secretsmanager:GetSecretValue`

Weitere Informationen finden Sie unter [Berechtigungsreferenz](auth-and-access.md#reference_iam-permissions).

**Topics**
+ [type Cache](retrieving-secrets_cache-go_cache.md)
+ [Typ CacheConfig](retrieving-secrets_cache-go_CacheConfig.md)
+ [Typ CacheHook](retrieving-secrets_cache-go_CacheHook.md)

**Example Ein Secret abrufen**  
Das folgende Codebeispiel zeigt eine Lambda-Funktion, die ein Secret abruft.  

```
package main

import (
	 "github.com/aws/aws-lambda-go/lambda"
	 "github.com/aws/aws-secretsmanager-caching-go/secretcache"
)

var (
	 secretCache, _ = secretcache.New()
)

func HandleRequest(secretId string) string {
	 result, _ := secretCache.GetSecretString(secretId)
	 
	 // Use the secret, return success
}

 func main() {
	 lambda. Start( HandleRequest)
}
```

# type Cache
<a name="retrieving-secrets_cache-go_cache"></a>

Ein In-Memory-Cache für von Secrets Manager angeforderte Secrets. Sie verwenden [GetSecretString](#retrieving-secrets_cache-go_cache_operations_GetCachedSecret) oder [GetSecretBinary](#retrieving-secrets_cache-go_cache_operations_GetSecretBinary), um ein Secret aus dem Cache abzurufen. 

Im folgenden Beispiel wird veranschaulicht, wie Sie die Cache-Einstellungen konfigurieren.

```
// Create a custom secretsmanager client
client := getCustomClient()

// Create a custom CacheConfig struct 
config := secretcache. CacheConfig{
    MaxCacheSize:  secretcache.DefaultMaxCacheSize + 10,
    VersionStage:  secretcache.DefaultVersionStage,
    CacheItemTTL:  secretcache.DefaultCacheItemTTL,
}
	
// Instantiate the cache 
cache, _ := secretcache.New(
    func( c *secretcache.Cache) {  c. CacheConfig = config },
    func( c *secretcache.Cache) {  c. Client = client },
)
```

Weitere Informationen hierzu einschließlich Beispielen finden Sie unter [Rufen Sie mithilfe von Go mit clientseitigem Caching einen geheimen Wert für Secrets Manager ab](retrieving-secrets_cache-go.md).

## Methoden
<a name="retrieving-secrets_cache-go_cache_operations"></a>

### Neu
<a name="retrieving-secrets_cache-go_cache_operations_New"></a>

`func New(optFns ...func(*Cache)) (*Cache, error)`

„Neu“ konstruiert einen Secret-Cache mit Funktionsoptionen, verwendet ansonsten Standardwerte. Initialisiert einen SecretsManager Client aus einer neuen Sitzung. Initialisiert CacheConfig auf Standardwerte. Initialisiert LRU-Cache mit einer maximalen Standardgröße.

### GetSecretString
<a name="retrieving-secrets_cache-go_cache_operations_GetCachedSecret"></a>

`func (c *Cache) GetSecretString(secretId string) (string, error)`

GetSecretString ruft den geheimen Zeichenkettenwert aus dem Cache für die angegebene geheime ID ab. Gibt die geheime Zeichenfolge und einen Fehler zurück, wenn der Vorgang fehlgeschlagen ist.

### GetSecretStringWithStage
<a name="retrieving-secrets_cache-go_cache_operations_GetSecretStringWithStage"></a>

`func (c *Cache) GetSecretStringWithStage(secretId string, versionStage string) (string, error)`

GetSecretStringWithStage ruft den geheimen Zeichenkettenwert aus dem Cache für die angegebene geheime ID und die angegebene [Versionsstufe](whats-in-a-secret.md#term_version) ab. Gibt die geheime Zeichenfolge und einen Fehler zurück, wenn der Vorgang fehlgeschlagen ist.

### GetSecretBinary
<a name="retrieving-secrets_cache-go_cache_operations_GetSecretBinary"></a>

`func (c *Cache) GetSecretBinary(secretId string) ([]byte, error) {`

GetSecretBinary ruft den geheimen Binärwert aus dem Cache für die angegebene geheime ID ab. Gibt den Secret-Binärwert und einen Fehler zurück, wenn der Vorgang fehlgeschlagen ist.

### GetSecretBinaryWithStage
<a name="retrieving-secrets_cache-go_cache_operations_GetSecretBinaryWithStage"></a>

`func (c *Cache) GetSecretBinaryWithStage(secretId string, versionStage string) ([]byte, error)`

GetSecretBinaryWithStage ruft den geheimen Binärwert aus dem Cache für die angegebene geheime ID und [Versionsstufe](whats-in-a-secret.md#term_version) ab. Gibt den Secret-Binärwert und einen Fehler zurück, wenn der Vorgang fehlgeschlagen ist. 

# Typ CacheConfig
<a name="retrieving-secrets_cache-go_CacheConfig"></a>

Cache-Konfigurationsoptionen für ein [Cache](retrieving-secrets_cache-go_cache.md), z. B. maximale Cachegröße, Standard-[Versionsstufe](whats-in-a-secret.md#term_version) und Time to Live (TTL) für gecachete Secrets.

```
type CacheConfig struct {

    // The maximum cache size. The default is 1024 secrets.
    MaxCacheSize int
            
    // The TTL of a cache item in nanoseconds. The default is 
    // 3.6e10^12 ns or 1 hour.
    CacheItemTTL int64
            
    // The version of secrets that you want to cache. The default 
    // is "AWSCURRENT".
    VersionStage string
            
    // Used to hook in-memory cache updates.
    Hook CacheHook
}
```

# Typ CacheHook
<a name="retrieving-secrets_cache-go_CacheHook"></a>

Eine Schnittstelle für das Anbinden eines [Cache](retrieving-secrets_cache-go_cache.md), um Aktionen mit dem im Cache gespeicherten Secret durchzuführen.

## Methoden
<a name="retrieving-secrets_cache-go_CacheHook_operations"></a>

### Put
<a name="retrieving-secrets_cache-go_CacheHook_operations_Put"></a>

`Put(data interface{}) interface{}`

Bereitet das Objekt für das Speichern im Cache vor.

### Get
<a name="retrieving-secrets_cache-go_CacheHook_operations_Get"></a>

`Get(data interface{}) interface{}`

Leitet das Objekt aus dem gecacheten Objekt ab.