public class SSMProvider extends BaseProvider
SSMProvider provider = ParamManager.getSsmProvider();
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);
// Get a decrypted value, and store it in the cache
String value = provider.withDecryption().get("key");
// Get multiple parameter values starting with the same path
Map params = provider.getMultiple("/path/to/paramters");
>>> /path/to/parameters/key1 -> value1
>>> /path/to/parameters/key2 -> value2
// Get multiple parameter values starting with the same path and recursively
Map params = provider.recursive().getMultiple("/path/to/paramters");
>>> /path/to/parameters/key1 -> value1
>>> /path/to/parameters/key2 -> value2
>>> /path/to/parameters/others/key3 -> value3
cacheManager| Modifier and Type | Method and Description |
|---|---|
static software.amazon.lambda.powertools.parameters.SSMProvider.Builder |
builder()
Create a builder that can be used to configure and create a
SSMProvider. |
SSMProvider |
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 AWS System Manager Parameter Store.
Retrieve all parameters starting with the path provided in parameter. eg. |
java.lang.String |
getValue(java.lang.String key)
Retrieve the parameter value from the AWS System Manager Parameter Store.
|
SSMProvider |
recursive()
Tells System Manager Parameter Store to retrieve all parameters starting with a path (all levels)
Only used with BaseProvider.getMultiple(String). |
protected void |
resetToDefaults() |
SSMProvider |
withDecryption()
Tells System Manager Parameter Store to decrypt the parameter value.
By default, parameter values are not decrypted. Valid both for get and getMultiple. |
SSMProvider |
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. |
SSMProvider |
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, setTransformationManagerpublic java.lang.String getValue(java.lang.String key)
getValue in class BaseProviderkey - key of the parameterpublic SSMProvider 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 BaseProvidermaxAge - Maximum time to cache the parameter, before calling the underlying parameter store.unit - Unit of timeprovider.defaultMaxAge(10, SECONDS).get("key")).public SSMProvider 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 BaseProvidermaxAge - Maximum time to cache the parameter, before calling the underlying parameter store.unit - Unit of timeprovider.withMaxAge(10, SECONDS).get("key")).public SSMProvider 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 BaseProvidertransformerClass - 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 SSMProvider withDecryption()
provider.withDecryption().get("key")).public SSMProvider recursive()
BaseProvider.getMultiple(String).provider.recursive().getMultiple("key")).protected java.util.Map<java.lang.String,java.lang.String> getMultipleValues(java.lang.String path)
recursive(), getMultiple("/foo/bar") will retrieve /foo/bar/baz, foo/bar/biz and foo/bar/buz/bozBaseProvider.get(String) a single value latergetMultipleValues in class BaseProviderpath - path of the parameterprotected void resetToDefaults()
resetToDefaults in class BaseProviderpublic static software.amazon.lambda.powertools.parameters.SSMProvider.Builder builder()
SSMProvider.SSMProvider.BuilderCopyright © 2023. All rights reserved.