

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.NET mit clientseitigem Caching einen geheimen Wert von Secrets Manager ab
<a name="retrieving-secrets_cache-net"></a>

Wenn Sie ein Secret abrufen, können Sie die .NET-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-net-SecretCacheConfiguration.md#retrieving-secrets_cache-net-SecretCacheConfiguration-properties_CacheItemTTL), und Sie können [den Secret-Abruf anbinden](retrieving-secrets_cache-net-ISecretCacheHook.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:
+ .NET Framework ab Version 4.6.2 oder .NET Standard aber Version 2.0. Siehe [Download von .NET](https://dotnet.microsoft.com/en-us/download) auf der Microsoft-Website.
+ Das AWS SDK for .NET. Siehe [AWS SDKs](asm_access.md#asm-sdks).

Informationen zum Herunterladen des Quellcodes finden Sie unter [Caching-Client für .NET](https://github.com/aws/aws-secretsmanager-caching-net ) auf GitHub.

Um den Cache zu verwenden, instanziieren Sie ihn zuerst und rufen Sie dann Ihr Secret mit `GetSecretString` oder `GetSecretBinary` auf. Bei aufeinanderfolgenden Abrufen gibt der Cache die gecachete Kopie des Secrets zurück.

**Tun Sie Folgendes, um das Caching-Paket zu erhalten**
+ Führen Sie eine der folgenden Aktionen aus:
  + Führen Sie den folgenden .NET-CLI-Befehl in Ihrem Projektverzeichnis aus.

    ```
    dotnet add package AWSSDK.SecretsManager.Caching --version 1.0.6
    ```
  + Fügen Sie die folgende Paketreferenz zu Ihrer `.csproj`-Datei hinzu.

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

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

Weitere Informationen finden Sie unter [Berechtigungsreferenz](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 Ein Secret abrufen**  
Das folgende Codebeispiel zeigt eine Methode, die ein Geheimnis mit dem Namen abruft. *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 Konfigurieren der Aktualisierungsdauer von Time to Live (TTL)-Caches**  
Das folgende Codebeispiel zeigt eine Methode, die ein Geheimnis mit dem Namen abruft *MySecret* und die Aktualisierungsdauer des TTL-Caches auf 24 Stunden festlegt.  

```
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>

Ein In-Memory-Cache für von Secrets Manager angeforderte Secrets. Sie verwenden [GetSecretString](#retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretString) oder [GetSecretBinary](#retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretBinary), um ein Secret aus dem Cache abzurufen. Sie können die Cache-Einstellungen konfigurieren, indem Sie ein [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md)-Objekt im Konstruktor übergeben. 

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

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

`public SecretsManagerCache()`  
Standardkonstruktor für ein `SecretsManagerCache`-Objekt.

`public SecretsManagerCache(IAmazonSecretsManager secretsManager)`  
Konstruiert einen neuen Cache mit einem Secrets-Manager-Manager-Client, der mit dem bereitgestellten [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html) erstellt wurde. Verwenden Sie diesen Konstruktor, um den Secrets-Manager-Manager-Client anzupassen, z. B. um eine bestimmte Region oder einen bestimmten Endpunkt zu verwenden.  
**Parameters**    
secretsManager  
Die [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html), aus der Geheimnisse abgerufen werden sollen.

`public SecretsManagerCache(SecretCacheConfiguration config)`  
Konstruiert einen neuen Secret-Cache mit dem bereitgestellten [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md). Verwenden Sie diesen Konstruktor, um den Cache zu konfigurieren, z. B. die Anzahl der zu cachenden Secrets und wie oft er aktualisiert wird.  
**Parameters**    
config  
Eine [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md), die Konfigurationsinformationen für den Cache enthält.

`public SecretsManagerCache(IAmazonSecretsManager secretsManager, SecretCacheConfiguration config)`  
Konstruiert einen neuen Cache mit einem Secrets Manager Manager-Client, der mit dem bereitgestellten [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)und einem [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) erstellt wurde. Verwenden Sie diesen Konstruktor, um den Secrets-Manager-Manager-Client anzupassen, z. B. um eine bestimmte Region oder einen bestimmten Endpunkt zu verwenden und den Cache zu konfigurieren, z. B. die Anzahl der zu cachenden Secrets und wie oft er aktualisiert wird.  
**Parameters**    
secretsManager  
Der [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html), aus dem Geheimnisse abgerufen werden sollen.  
config  
Eine [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md), die Konfigurationsinformationen für den Cache enthält.

## Methoden
<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)`

Ruft ein String-Secret von Secrets Manager ab.Parameters

secretId  
Der ARN oder Name des abzurufenden Secrets.

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

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

Ruft ein binäres Secret von Secrets Manager ab.Parameters

secretId  
Der ARN oder Name des abzurufenden Secrets.

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

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

Fordert den Secret-Wert von Secrets Manager an und aktualisiert den Cache mit allen Änderungen. Wenn kein Cache-Eintrag vorhanden ist, wird ein neuer erstellt. Gibt `true` zurück, wenn die Aktualisierung erfolgreich ist.Parameters

secretId  
Der ARN oder Name des abzurufenden Secrets.

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

`public SecretCacheItem GetCachedSecret(string secretId)`

Gibt den Cache-Eintrag für das angegebene Secrets zurück, falls er im Cache vorhanden ist. Andernfalls wird das Secret aus Secrets Manager abgerufen und ein neuer Cache-Eintrag erstellt.Parameters

secretId  
Der ARN oder Name des abzurufenden Secrets.

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

Cache-Konfigurationsoptionen für einen [SecretsManagerCache](retrieving-secrets_cache-net-SecretsManagerCache.md), z. B. maximale Cachegröße und Time to Live (TTL) für gecachete Secrets.

## Eigenschaften
<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; }`

Die TTL eines Cache-Elements in Millisekunden. Die Standardeinstellung ist `3600000` ms oder 1 Stunde. Das Maximum ist `4294967295` ms, was ungefähr 49,7 Tagen entspricht.

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

`public ushort MaxCacheSize { get; set; }`

Die maximale Cachegröße. Der Standardwert ist 1 024 Secrets. Der Höchstwert ist 65,535.

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

`public string VersionStage { get; set; }`

Die Version der Secrets, das Sie cachen möchten. Weitere Informationen hierzu finden Sie unter [Secret-Versionen](whats-in-a-secret.md#term_version). Der Standardwert ist `"AWSCURRENT"`.

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

`public IAmazonSecretsManager Client { get; set; }`

Das [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html), aus dem Geheimnisse abgerufen werden sollen. Wenn er `null` ist, instanziiert der Cache einen neuen Client. Der Standardwert ist `null`.

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

`public ISecretCacheHook CacheHook { get; set; }`

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

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

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

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

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

`object Put(object o);`

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

Gibt das Objekt zurück, das im Cache gespeichert werden soll.

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

`object Get(object cachedObject);`

Leitet das Objekt aus dem gecacheten Objekt ab.

Gibt das Objekt zurück, das vom Cache zurückgegeben werden soll.