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 Mapparams = 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, setTransformationManager
public java.lang.String getValue(java.lang.String key)
getValue
in class BaseProvider
key
- 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 BaseProvider
maxAge
- 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 BaseProvider
maxAge
- 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 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 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 BaseProvider
path
- path of the parameterprotected void resetToDefaults()
resetToDefaults
in class BaseProvider
public static software.amazon.lambda.powertools.parameters.SSMProvider.Builder builder()
SSMProvider
.SSMProvider.Builder
Copyright © 2020. All rights reserved.