cdk-factory 0.19.7__tar.gz → 0.19.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/PKG-INFO +1 -1
  2. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/pyproject.toml +1 -1
  3. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +32 -3
  4. cdk_factory-0.19.9/src/cdk_factory/version.py +1 -0
  5. cdk_factory-0.19.7/src/cdk_factory/version.py +0 -1
  6. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/.gitignore +0 -0
  7. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/.windsurfrules +0 -0
  8. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/LICENSE +0 -0
  9. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/README.md +0 -0
  10. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/REFACTORING_PLAN.md +0 -0
  11. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/archive/README.md +0 -0
  12. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/archive/migrate_to_enhanced_ssm.py +0 -0
  13. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/examples/json-imports/README.md +0 -0
  14. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/examples/separate-api-gateway/README.md +0 -0
  15. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
  16. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/examples/separate-api-gateway/config.json +0 -0
  17. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/examples/separate-api-gateway/lambda-stack.json +0 -0
  18. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/mypy.ini +0 -0
  19. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/publish_to_pypi.py +0 -0
  20. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/publish_to_pypi.sh +0 -0
  21. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/pysetup.py +0 -0
  22. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/pysetup.sh +0 -0
  23. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/requirements.dev.txt +0 -0
  24. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/requirements.tests.txt +0 -0
  25. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/requirements.txt +0 -0
  26. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/run-checks.sh +0 -0
  27. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/run-tests-clean-venv.sh +0 -0
  28. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/run-tests.sh +0 -0
  29. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/scripts/cloudfront-cleanup.sh +0 -0
  30. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/__init__.py +0 -0
  31. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/app.py +0 -0
  32. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/builds/README.md +0 -0
  33. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/cdk.json +0 -0
  34. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/cli.py +0 -0
  35. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/commands/command_loader.py +0 -0
  36. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/base_config.py +0 -0
  37. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/cdk_config.py +0 -0
  38. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/deployment.py +0 -0
  39. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/deployment_wave.py +0 -0
  40. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/devops.py +0 -0
  41. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
  42. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
  43. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/management.py +0 -0
  44. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/pipeline.py +0 -0
  45. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
  46. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/_resources.py +0 -0
  47. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/acm.py +0 -0
  48. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
  49. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
  50. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
  51. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
  52. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
  53. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
  54. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
  55. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
  56. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/cognito.py +0 -0
  57. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/docker.py +0 -0
  58. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
  59. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/ecr.py +0 -0
  60. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/ecs_cluster.py +0 -0
  61. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
  62. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
  63. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
  64. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
  65. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
  66. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
  67. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
  68. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
  69. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/rds.py +0 -0
  70. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
  71. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
  72. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
  73. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/route53.py +0 -0
  74. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
  75. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/rum.py +0 -0
  76. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/s3.py +0 -0
  77. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/security_group.py +0 -0
  78. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
  79. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/sqs.py +0 -0
  80. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/resources/vpc.py +0 -0
  81. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/stack.py +0 -0
  82. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/configurations/workload.py +0 -0
  83. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
  84. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
  85. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
  86. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
  87. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
  88. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
  89. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
  90. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
  91. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
  92. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
  93. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
  94. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/interfaces/istack.py +0 -0
  95. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
  96. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/interfaces/networked_stack_mixin.py +0 -0
  97. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/interfaces/standardized_ssm_mixin.py +0 -0
  98. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/interfaces/vpc_provider_mixin.py +0 -0
  99. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
  100. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/lambdas/health_handler.py +0 -0
  101. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/pipeline/path_utils.py +0 -0
  102. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
  103. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/pipeline/security/policies.py +0 -0
  104. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/pipeline/security/roles.py +0 -0
  105. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/pipeline/stage.py +0 -0
  106. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack/istack.py +0 -0
  107. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack/stack_factory.py +0 -0
  108. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack/stack_module_loader.py +0 -0
  109. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack/stack_module_registry.py +0 -0
  110. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack/stack_modules.py +0 -0
  111. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/__init__.py +0 -0
  112. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/acm/__init__.py +0 -0
  113. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/acm/acm_stack.py +0 -0
  114. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
  115. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
  116. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
  117. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
  118. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/buckets/README.md +0 -0
  119. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
  120. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
  121. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
  122. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
  123. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
  124. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
  125. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/ecr/README.md +0 -0
  126. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
  127. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
  128. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/ecs/ecs_cluster_stack.py +0 -0
  129. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
  130. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
  131. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
  132. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
  133. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
  134. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
  135. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
  136. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
  137. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
  138. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
  139. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
  140. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
  141. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
  142. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
  143. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
  144. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
  145. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/stack_base.py +0 -0
  146. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
  147. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
  148. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
  149. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
  150. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/templates/README.md +0 -0
  151. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/templates/app.py.template +0 -0
  152. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/templates/cdk.json.template +0 -0
  153. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
  154. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/commandline_args.py +0 -0
  155. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/configuration_loader.py +0 -0
  156. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/docker_utilities.py +0 -0
  157. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/environment_services.py +0 -0
  158. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/file_operations.py +0 -0
  159. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/git_utilities.py +0 -0
  160. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
  161. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
  162. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utilities/os_execute.py +0 -0
  163. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
  164. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/validation/config_validator.py +0 -0
  165. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/cdk_factory/workload/workload_factory.py +0 -0
  166. {cdk_factory-0.19.7 → cdk_factory-0.19.9}/src/handlers/test/handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdk_factory
3
- Version: 0.19.7
3
+ Version: 0.19.9
4
4
  Summary: CDK Factory. A QuickStarter and best practices setup for CDK projects
5
5
  Author-email: Eric Wilson <eric.wilson@geekcafe.com>
6
6
  License: MIT License
@@ -33,7 +33,7 @@ markers = [
33
33
  [project]
34
34
 
35
35
  name = "cdk_factory"
36
- version = "0.19.7"
36
+ version = "0.19.9"
37
37
  authors = [
38
38
  { name="Eric Wilson", email="eric.wilson@geekcafe.com" }
39
39
  ]
@@ -53,6 +53,8 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
53
53
  self.workload: Optional[WorkloadConfig] = None
54
54
  self.function: Optional[_lambda.Function] = None
55
55
  self.function_version: Optional[_lambda.Version] = None
56
+ # Cache for resolved environment variables to prevent duplicate construct creation
57
+ self._resolved_env_cache: Optional[Dict[str, str]] = None
56
58
 
57
59
  def build(
58
60
  self,
@@ -101,12 +103,32 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
101
103
  # Add outputs
102
104
  self._add_outputs(function_name)
103
105
 
106
+ def _sanitize_construct_name(self, name: str) -> str:
107
+ """
108
+ Create a deterministic, valid CDK construct name from any string.
109
+ Replaces non-alphanumeric characters with dashes and limits length.
110
+ """
111
+ # Replace non-alphanumeric characters with dashes
112
+ sanitized = ''.join(c if c.isalnum() else '-' for c in name)
113
+ # Remove consecutive dashes
114
+ while '--' in sanitized:
115
+ sanitized = sanitized.replace('--', '-')
116
+ # Remove leading/trailing dashes
117
+ sanitized = sanitized.strip('-')
118
+ # Limit to 255 characters (CDK limit)
119
+ return sanitized[:255]
120
+
104
121
  def _resolve_environment_variables(self) -> Dict[str, str]:
105
122
  """
106
123
  Resolve environment variables, including SSM parameter references.
107
124
  Supports {{ssm:parameter-path}} syntax for dynamic SSM lookups.
108
125
  Uses CDK tokens that resolve at deployment time, not synthesis time.
126
+ Caches results to prevent duplicate construct creation.
109
127
  """
128
+ # Return cached result if available
129
+ if self._resolved_env_cache is not None:
130
+ return self._resolved_env_cache
131
+
110
132
  resolved_env = {}
111
133
 
112
134
  for key, value in self.edge_config.environment.items():
@@ -115,18 +137,23 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
115
137
  # Extract SSM parameter path
116
138
  ssm_param_path = value[6:-2] # Remove {{ssm: and }}
117
139
 
140
+ # Create deterministic construct name from parameter path
141
+ construct_name = self._sanitize_construct_name(f"env-{key}-{ssm_param_path}")
142
+
118
143
  # Import SSM parameter - this creates a token that resolves at deployment time
119
144
  param = ssm.StringParameter.from_string_parameter_name(
120
145
  self,
121
- f"env-{key}-{hash(ssm_param_path) % 10000}",
146
+ construct_name,
122
147
  ssm_param_path
123
148
  )
124
149
  resolved_value = param.string_value
125
- logger.info(f"Resolved environment variable {key} from SSM {ssm_param_path}")
150
+ logger.info(f"Resolved environment variable {key} from SSM {ssm_param_path} as {construct_name}")
126
151
  resolved_env[key] = resolved_value
127
152
  else:
128
153
  resolved_env[key] = value
129
154
 
155
+ # Cache the result
156
+ self._resolved_env_cache = resolved_env
130
157
  return resolved_env
131
158
 
132
159
  def _create_lambda_function(self, function_name: str) -> None:
@@ -185,10 +212,12 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
185
212
  # Create runtime configuration file for Lambda@Edge
186
213
  # Since Lambda@Edge doesn't support environment variables, we bundle a config file
187
214
  # Use the full function_name (e.g., "tech-talk-dev-ip-gate") not just the base name
215
+ resolved_env = self._resolve_environment_variables()
188
216
  runtime_config = {
189
217
  'environment': self.deployment.environment,
190
218
  'function_name': function_name,
191
- 'region': self.deployment.region
219
+ 'region': self.deployment.region,
220
+ 'environment_variables': resolved_env # Add actual environment variables
192
221
  }
193
222
 
194
223
  runtime_config_path = temp_code_dir / 'runtime_config.json'
@@ -0,0 +1 @@
1
+ __version__ = "0.19.9"
@@ -1 +0,0 @@
1
- __version__ = "0.19.7"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes