Fetches configuration from AWS Parameter Store
MIT License
This library reads parameters from AWS Parameter Store. It supports a path prefix, an optional shared context and multiple profiles. Returns an multi dimensional array of string|int|float|bool. Integrates directly with zendframework/zend-config-aggregator.
use Aws\Ssm\SsmClient;
use PFlorek\AwsParameterStore\ConfigProvider;
// Provide bootstrap options
$options = [
'prefix' => '/path/with/prefix', // required
'name' => 'application-name', // required
'profileSeparator' => '_', // default => '_'
'sharedContext' => 'shared-context', // default => ''
];
// Configure AWS Systems Manager Client
$client = new SsmClient([
'version' => 'latest',
'region' => 'eu-central-1',
]);
// Or just pass AWS Client options
$client = [
'version' => 'latest',
'region' => 'eu-central-1',
];
// Get provided config with active profiles
$environments = ['test'];
// Create AWS Parameter Store Config Provider
$provider = new ConfigProvider($client, $options, $environments);
$config = $provider();
// e.g. returns
//
//array(1) {
// ["service"]=>
// array(3) {
// ["host"]=>
// string(5) "mysql"
// ["port"]=>
// int(3306)
// ["enabled"]=>
// bool(true)
// }
//}
parameter | required | default | description |
---|---|---|---|
prefix | yes | none | The path prefix of the parameters |
name | yes | none | The application name |
profileSeparator | no | '_' | The separator between application name and profile |
sharedContext | no | '' | The shared context for application with parameters under the same path prefix |
Given options:
Will search for parameters with path beginning with:
Use Composer to install the package:
composer require pflorek/aws-paramstore
Contributions are always welcome!
All contents of this package are licensed under the MIT license.