diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f5bca1cf21..84ff76df5d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ This project follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) fo * **deps:** bump poetry to latest ([#592](https://github.com/awslabs/aws-lambda-powertools-python/issues/592)) * **feature-flags:** bug handling multiple conditions ([#599](https://github.com/awslabs/aws-lambda-powertools-python/issues/599)) * **parser:** API Gateway WebSocket validation under check_message_id; plus some housekeeping ([#553](https://github.com/awslabs/aws-lambda-powertools-python/issues/553)) +* **feature-toggles:** correct cdk example ([#601](https://github.com/awslabs/aws-lambda-powertools-python/issues/601)) ### Code Refactoring @@ -30,6 +31,7 @@ This project follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) fo * **tracer:** update wording that it auto-disables on non-Lambda env * **feature-flags:** fix SAM infra, convert CDK to Python * **feature-flags:** fix sample feature name in evaluate method +* **feature-flags:** add guidance when to use vs env vars vs parameters ### Features * **api-gateway:** add support for custom serializer ([#568](https://github.com/awslabs/aws-lambda-powertools-python/issues/568)) diff --git a/docs/utilities/feature_flags.md b/docs/utilities/feature_flags.md index d955f2ef8c1..556cf9f4925 100644 --- a/docs/utilities/feature_flags.md +++ b/docs/utilities/feature_flags.md @@ -644,3 +644,11 @@ You can unit test your feature flags locally and independently without setting u # THEN assert flag == expected_value ``` + +## Feature flags vs Parameters vs env vars + +Method | When to use | Requires new deployment on changes | Supported services +------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- +**[Environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html){target="_blank"}** | Simple configuration that will rarely if ever change, because changing it requires a Lambda function deployment. | Yes | Lambda +**[Parameters utility](parameters.md)** | Access to secrets, or fetch parameters in different formats from AWS System Manager Parameter Store or Amazon DynamoDB. | No | Parameter Store, DynamoDB, Secrets Manager, AppConfig +**Feature flags utility** | Rule engine to define when one or multiple features should be enabled depending on the input. | No | AppConfig