The AWS Secrets Manager caching client enables in-process caching of secrets for .NET applications.
To use this client, you must have:
A .NET project with one of the following:
An Amazon Web Services (AWS) account to access secrets stored in AWS Secrets Manager and use AWS SDK for .NET.
To create an AWS account, go to Sign In or Create an AWS Account and then choose I am a new user. Follow the instructions to create an AWS account.
To create a secret in AWS Secrets Manager, go to Creating Secrets and follow the instructions on that page.
To download and install the AWS SDK for .NET, go to Installing the AWS SDK for .NET in the AWS SDK for .NET documentation and then follow the instructions on that page.
You can get the latest release from Nuget
:
<ItemGroup>
<PackageReference Include="AWSSDK.SecretsManager.Caching" Version="1.0.6" />
</ItemGroup>
The following code sample demonstrates how to start using the caching client:
using System;
using Amazon.SecretsManager.Extensions.Caching.SecretsManagerCache;
namespace LambdaExample {
public class CachingExample
{
private SecretsManagerCache cache = new SecretsManagerCache();
private const String MySecretName = "MySecret";
public async Task<Response> FunctionHandlerAsync(String input, ILambdaContext context)
{
String MySecret = await cache.GetSecretString(MySecretName);
...
}
}
}
GetSecretString
or GetSecretBinary
. You can configure the SecretCacheConfiguration
object with the following parameters:
CacheItemTTL
- The TTL of a Cache item in milliseconds. The default value is 3600000
ms, or 1 hour.MaxCacheSize
- The maximum number of items the Cache can contain before evicting using LRU. The default value is 1024
.VersionStage
- The Version Stage the Cache will request when retrieving secrets from Secrets Manager. The default value is AWSCURRENT
.Client
- The Secrets Manager client to be used by the Cache. The default value is null
, which causes the Cache to instantiate a new Secrets Manager client.CacheHook
- An implementation of the ISecretCacheHook interface. The default value is null
.We use GitHub issues for tracking bugs and caching library feature requests and have limited bandwidth to address them. Please use these community resources for getting help:
This library is licensed under the Apache 2.0 License.