fix(parameters): refresh AppConfig session token after 24 hrs #1916
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 your changes
As discussed in the linked issue, the AppConfig provider in the Parameters utility stores a session token returned by the service that should be used for the subsequent call. By default the token has a duration of up to 24hrs and if the provider attempts to retrieve a configuration using an expired token it'll result in a bad request exception.
For most Lambda-based workloads this is not an issue since the execution environment is likely to have been recycled before the token has the chance to expire. For those customers who use provisioned concurrency or who decide to use the Parameters utility outside of Lambda (i.e. containers or others) this is an issue.
This PR improves the session token handling by storing the expiration timestamp together with the token. The timestamp is then checked by the
AppConfigProvider
before making a call to the service, and if expired a new session token is requested.With this change customers using the Parameters utility in long lived execution environments should see decreased bad requests exception.
Related issues, RFCs
Issue number: #1798
Checklist
Breaking change checklist
Is it a breaking change?: NO
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.