public class SecretsProvider extends BaseProvider
SecretsProvider provider = ParamManager.getSecretsProvider(); String value = provider.get("key"); System.out.println(value); >>> "value" // Get a value and cache it for 30 seconds (all others values will now be cached for 30 seconds) String value = provider.defaultMaxAge(30, ChronoUnit.SECONDS).get("key"); // Get a value and cache it for 1 minute (all others values are cached for 5 seconds by default) String value = provider.withMaxAge(1, ChronoUnit.MINUTES).get("key"); // Get a base64 encoded value, decoded into a String, and store it in the cache String value = provider.withTransformation(Transformer.base64).get("key"); // Get a json value, transform it into an Object, and store it in the cache TargetObject = provider.withTransformation(Transformer.json).get("key", TargetObject.class);
cacheManager
Modifier and Type | Method and Description |
---|---|
static software.amazon.lambda.powertools.parameters.SecretsProvider.Builder |
builder()
Create a builder that can be used to configure and create a
SecretsProvider . |
SecretsProvider |
defaultMaxAge(int maxAge,
java.time.temporal.ChronoUnit unit)
(Optional) Set the default max age for the cache of all parameters.
|
protected java.util.Map<java.lang.String,java.lang.String> |
getMultipleValues(java.lang.String path)
Retrieve multiple parameter values from the underlying parameter store.
Abstract: Implement this method in a child class of BaseProvider |
protected java.lang.String |
getValue(java.lang.String key)
Retrieve the parameter value from the AWS Secrets Manager.
|
SecretsProvider |
withMaxAge(int maxAge,
java.time.temporal.ChronoUnit unit)
(Optional) Builder method to call before
BaseProvider.get(String) or BaseProvider.get(String, Class)
to set cache max age for the parameter to get.The max age is reset to default (either 5 or a custom value set with BaseProvider.defaultMaxAge(int, java.time.temporal.ChronoUnit) ) after each get,
so you need to use this method for each parameter to cache with non-default max age.Not Thread Safe: calling this method simultaneously by several threads can lead to unwanted cache time for some parameters. |
SecretsProvider |
withTransformation(java.lang.Class<? extends Transformer> transformerClass)
Builder method to call before
BaseProvider.get(String) (Optional) or BaseProvider.get(String, Class) (Mandatory). |
get, get, getMultiple, now, resetToDefaults, setTransformationManager
protected java.lang.String getValue(java.lang.String key)
getValue
in class BaseProvider
key
- key of the parameterprotected java.util.Map<java.lang.String,java.lang.String> getMultipleValues(java.lang.String path)
BaseProvider
BaseProvider
getMultipleValues
in class BaseProvider
path
- Parameter store pathjava.lang.UnsupportedOperationException
- as it is not possible to get multiple values simultaneously from Secrets Managerpublic SecretsProvider defaultMaxAge(int maxAge, java.time.temporal.ChronoUnit unit)
BaseProvider.withMaxAge(int, ChronoUnit)
.BaseProvider.withMaxAge(int, ChronoUnit)
after {#defaultMaxAge(int, ChronoUnit)} in the chain.defaultMaxAge
in class BaseProvider
maxAge
- Maximum time to cache the parameter, before calling the underlying parameter store.unit
- Unit of timeprovider.defaultMaxAge(10, SECONDS).get("key")).
public SecretsProvider withMaxAge(int maxAge, java.time.temporal.ChronoUnit unit)
BaseProvider.get(String)
or BaseProvider.get(String, Class)
to set cache max age for the parameter to get.BaseProvider.defaultMaxAge(int, java.time.temporal.ChronoUnit)
) after each get,
so you need to use this method for each parameter to cache with non-default max age.withMaxAge
in class BaseProvider
maxAge
- Maximum time to cache the parameter, before calling the underlying parameter store.unit
- Unit of timeprovider.withMaxAge(10, SECONDS).get("key")).
public SecretsProvider withTransformation(java.lang.Class<? extends Transformer> transformerClass)
BaseProvider.get(String)
(Optional) or BaseProvider.get(String, Class)
(Mandatory).
to provide a Transformer
that will transform the String parameter into something else (String, Object, ...)
Base64Transformer
and JsonTransformer
are provided for respectively base64 and json content. You can also write your own (see Transformer
).
Not Thread Safe: calling this method simultaneously by several threads
can lead to errors (one Transformer for the wrong target type)
withTransformation
in class BaseProvider
transformerClass
- Class of the transformer to apply. For convenience, you can use Transformer.json
or Transformer.base64
shortcuts.provider.withTransformation(json).get("key", MyObject.class)).
public static software.amazon.lambda.powertools.parameters.SecretsProvider.Builder builder()
SecretsProvider
.SecretsProvider.Builder
Copyright © 2021. All rights reserved.