

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Obtenez une valeur secrète de Secrets Manager à l'aide de .NET avec mise en cache côté client
<a name="retrieving-secrets_cache-net"></a>

Lorsque vous récupérez un secret, vous pouvez utiliser le Gestionnaire de Secrets. NET-based composant de mise en cache pour le mettre en cache pour une utilisation future. Il est plus rapide de récupérer un secret mis en cache que de le récupérer à partir de Secrets Manager. Étant donné que l'appel des API Secrets Manager implique des coûts, l'utilisation d'un cache peut réduire vos coûts. Pour connaître toutes les manières dont vous pouvez récupérer des secrets, consultez[Obtenez des secrets](retrieving-secrets.md).

La politique de cache est la moins récemment utilisée (LRU). Ainsi, lorsque le cache doit supprimer un secret, il supprime le secret le moins récemment utilisé. Par défaut, le cache actualise les secrets toutes les heures. Vous pouvez configurer [la fréquence d'actualisation du secret](retrieving-secrets_cache-net-SecretCacheConfiguration.md#retrieving-secrets_cache-net-SecretCacheConfiguration-properties_CacheItemTTL) dans le cache et [utiliser un hook pour la récupération du secret](retrieving-secrets_cache-net-ISecretCacheHook.md) afin d’ajouter plus de fonctionnalités.

Le cache ne force pas le récupérateur de mémoire une fois que les références du cache sont libérées. L'implémentation du cache n'inclut pas l'invalidation du cache. L'implémentation du cache se concentre sur le cache lui-même et n'est pas renforcée ou ciblée sur le plan de la sécurité. Si vous avez besoin d'une sécurité supplémentaire, telle que le chiffrement d'éléments dans le cache, utilisez les interfaces et les méthodes abstraites fournies.

Pour pouvoir utiliser le composant, vous devez disposer des éléments suivants :
+ Framework .NET 4.6.2 ou version ultérieure, ou .NET Standard 2.0 ou version ultérieure. Consultez [Télécharger .NET](https://dotnet.microsoft.com/en-us/download) sur le site web Microsoft .NET.
+ Le AWS SDK pour .NET. Consultez [AWS SDK](asm_access.md#asm-sdks).

Pour télécharger le code source, consultez la section [Client de mise en cache pour .NET](https://github.com/aws/aws-secretsmanager-caching-net ) sur GitHub.

Pour utiliser le cache, instanciez-le d'abord, puis récupérez votre secret en utilisant `GetSecretString` ou `GetSecretBinary`. Lors de récupérations successives, le cache renvoie la copie en cache du secret.

**Pour obtenir le package de mise en cache**
+ Effectuez l’une des actions suivantes :
  + Exécutez la commande .NET CLI suivante dans le répertoire de votre projet.

    ```
    dotnet add package AWSSDK.SecretsManager.Caching --version 1.0.6
    ```
  + Ajoutez la référence de package suivante à votre fichier `.csproj`.

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

**Autorisations requises : **
+ `secretsmanager:DescribeSecret`
+ `secretsmanager:GetSecretValue`

Pour de plus amples informations, veuillez consulter [Référence des autorisations ](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 Récupérer un secret**  
L'exemple de code suivant montre une méthode qui récupère un secret nommé{{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 Configuration de la durée d'actualisation du cache de durée de vie (TTL)**  
L'exemple de code suivant montre une méthode qui récupère un secret nommé {{MySecret}} et définit la durée d'actualisation du cache TTL à 24 heures.  

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