-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Description
Describe the feature
Add a command to AppConfig to retrieve a deployed configuration during CDK synthesize step.
Use Case
I have a CDK application that deploys stacks like this:
const clients = [/*...*/]
clients.forEach( client => new ClientShop(app, `${client.name}-shop`, { client } ) )Problem
For now clients is an array stored in code. The clients information is managed by another team. So, every time they want to modify it, they need to open a ticket.
Goal
I want to give them the ability to edit themselves the information of client using an AWS resource. This will allow me to change the CDK application to this:
// 👇
const clients = new GetClientsFromConfig(app, 'config')
clients.forEach( client => new ClientShop(app, `${client.name}-shop`, { client } ) )This would separate the logic from data with a good user experience.
Proposed Solution
One option would be to implement it similar to the static method SSM fromStringParameterAttributes.
Other Information
Options I considered to deploy the clients and read from GetClientsFromConfig:
- AppConfig: It has the best user experience and allows to validate the configuration. But, I can't find a way to read a deployed configuration in a Stack in my CDK app
const config = deployment.readFromLastVersion(/*...*/)(do not exist) - DynamoDB: Less intuitive and still can't find method to read from within CDK
- SSM Parameter Store: Can read from CDK, but is not so intuitive and error prone to the other team to manage its content
- S3: Easy to setup, hard for users to configure
I am still open to other solutions, if they exist.
But, as far as I gather AppConfig would be the best alternative.
Acknowledgements
- I may be able to implement this feature request
- This feature might incur a breaking change
CDK version used
2.128.0
Environment details (OS name and version, etc.)
MacOS Apple M1 Pro