8.1.5 AWS Parameter Store Support
Micronaut supports configuration sharing via AWS System Manager Parameter Store. You will need the following dependencies configured:
implementation("io.micronaut.aws:micronaut-aws-parameter-store")
<dependency>
<groupId>io.micronaut.aws</groupId>
<artifactId>micronaut-aws-parameter-store</artifactId>
</dependency>
To enable distributed configuration a src/main/resources/bootstrap.yml
configuration file must be created and configured to use Parameter Store:
bootstrap.yml
micronaut:
application:
name: hello-world
config-client:
enabled: true
See the configuration reference for all configuration options.
You can configure shared properties by going into the AWS Console → System Manager → Parameter Store
Micronaut will use a hierarchy to read the configuration values, and supports String
, StringList
, and SecureString
types.
You can make environment specific configurations as well by including the environment name after an underscore _
. For example if your micronaut.application.name
setting is set to helloworld
then providing configuration values under helloworld_test
will be applied only to the test
environment.
Folder | Description |
---|---|
| Configuration shared by all applications |
| Application specific configuration, example |
| Configuration shared by all applications for the |
| Application specific configuration for an active Environment |
For example, if the configuration name /config/application_test/server.url
is configured in AWS Parameter Store, then any application connecting to that parameter store can retrieve the value using server.url
. If the application has micronaut.application.name
configured to be myapp
, then a value with the name /config/myapp_test/server.url
will override the value just for that application.
Each level of the tree can be composed of key=value pairs. If you want multiple key value pairs, set the type to ‘StringList’.
For special secure information, like keys or passwords, use the type “SecureString”. KMS will be automatically invoked when you add and retrieve values and decrypt them with the default key store for your account. If you set the configuration to not use secure strings, they will be returned to you encrypted and you must manually decrypt them.
The https://github.com/micronaut-projects/micronaut-examples/aws repository showcases a sample application using this feature.