[POC] feature: manage stack mappings to unblock api expansion over time #1430
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes
Thinking about how we can mitigate some of the
Multiple resolvers cannot be attached to a single field
issue, I was thinking about whether we may want to provide additional utilities to help customers manage stack mappings.In my head the problems basically fall into this category.
AWS::AppSync::FunctionConfigurations
resources is causing me to hit my stack limit.ConnectionStack
to swell based on new tables, resolvers, and functions.In light of those three use-cases, I'd propose we vend a new utility (or set of utilities, as this is modelled right now) which make looking into my
#current-deployed-backend
and current proposed changes and freezing or assigning new resources in theStackMapping
section of thetransform.conf.json
file.In my mind, the flow could go something like:
amplify pull
(ensure I have the latest view of the world).amplify api snapshot-stack-mappings
(freeze the current state of stack mappings into my transform file.amplify api assign-stack-mappings --stack-name <Blah>
amplify push
This is a pretty involved flow, and in reality we can probably just consolidate the snapshot/assign separation, I'd just POC'ed them up separately initially.
Ultimately, if we allow consistently and correctly migration functions between stack, but not resolvers, then we might actually just want to change this functionality to be focused on that, but during my investigation it did not appear that the StackMappings correctly work on the FunctionConfiguration objects today, so that'll need to be something we fix as well I think.
CDK / CloudFormation Parameters Changed
N/A
Issue #, if available
#32
Description of how you validated changes
Currently just testing manually in a test app. Need to add unit and E2E tests.
Checklist
yarn test
passesBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.