cdk-factory 0.19.14__tar.gz → 0.19.18__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.
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/PKG-INFO +1 -1
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/pyproject.toml +1 -1
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +42 -98
- cdk_factory-0.19.18/src/cdk_factory/version.py +1 -0
- cdk_factory-0.19.14/src/cdk_factory/version.py +0 -1
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/.gitignore +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/.windsurfrules +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/LICENSE +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/REFACTORING_PLAN.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/archive/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/archive/migrate_to_enhanced_ssm.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/examples/json-imports/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/examples/separate-api-gateway/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/examples/separate-api-gateway/config.json +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/examples/separate-api-gateway/lambda-stack.json +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/mypy.ini +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/publish_to_pypi.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/publish_to_pypi.sh +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/pysetup.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/pysetup.sh +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/requirements.dev.txt +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/requirements.tests.txt +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/requirements.txt +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/run-checks.sh +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/run-tests-clean-venv.sh +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/run-tests.sh +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/scripts/cloudfront-cleanup.sh +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/app.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/builds/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/cdk.json +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/cli.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/commands/command_loader.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/base_config.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/cdk_config.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/deployment.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/deployment_wave.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/devops.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/management.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/pipeline.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/_resources.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/acm.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/cognito.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/docker.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/ecr.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/ecs_cluster.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/rds.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/route53.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/rum.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/s3.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/security_group.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/sqs.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/vpc.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/workload.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/istack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/networked_stack_mixin.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/standardized_ssm_mixin.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/vpc_provider_mixin.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/lambdas/health_handler.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/pipeline/path_utils.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/pipeline/security/policies.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/pipeline/security/roles.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/pipeline/stage.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack/istack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack/stack_factory.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack/stack_module_loader.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack/stack_module_registry.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack/stack_modules.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/acm/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/acm/acm_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/buckets/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecr/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecs/ecs_cluster_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/stack_base.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/templates/README.md +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/templates/app.py.template +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/templates/cdk.json.template +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/commandline_args.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/configuration_loader.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/docker_utilities.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/environment_services.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/file_operations.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/git_utilities.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/os_execute.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/validation/config_validator.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/workload/workload_factory.py +0 -0
- {cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/handlers/test/handler.py +0 -0
|
@@ -290,8 +290,21 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
290
290
|
]
|
|
291
291
|
)
|
|
292
292
|
)
|
|
293
|
-
|
|
294
293
|
|
|
294
|
+
# Add Secrets Manager permissions for origin secret access
|
|
295
|
+
execution_role.add_to_policy(
|
|
296
|
+
iam.PolicyStatement(
|
|
297
|
+
effect=iam.Effect.ALLOW,
|
|
298
|
+
actions=[
|
|
299
|
+
"secretsmanager:GetSecretValue",
|
|
300
|
+
"secretsmanager:DescribeSecret"
|
|
301
|
+
],
|
|
302
|
+
resources=[
|
|
303
|
+
f"arn:aws:secretsmanager:*:{cdk.Aws.ACCOUNT_ID}:secret:{self.deployment.environment}/{self.workload.name}/origin-secret*"
|
|
304
|
+
]
|
|
305
|
+
)
|
|
306
|
+
)
|
|
307
|
+
|
|
295
308
|
self.function = _lambda.Function(
|
|
296
309
|
self,
|
|
297
310
|
function_name,
|
|
@@ -359,10 +372,7 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
359
372
|
|
|
360
373
|
def _configure_edge_log_retention(self, function_name: str) -> None:
|
|
361
374
|
"""
|
|
362
|
-
Configure log retention for Lambda@Edge
|
|
363
|
-
|
|
364
|
-
Lambda@Edge creates log groups in multiple regions that need
|
|
365
|
-
separate retention configuration from the primary log group.
|
|
375
|
+
Configure log retention for Lambda@Edge log groups in all edge regions
|
|
366
376
|
"""
|
|
367
377
|
from aws_cdk import custom_resources as cr
|
|
368
378
|
|
|
@@ -377,15 +387,18 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
377
387
|
'ca-central-1', 'sa-east-1'
|
|
378
388
|
]
|
|
379
389
|
|
|
380
|
-
#
|
|
381
|
-
|
|
382
|
-
|
|
390
|
+
# Lambda@Edge log groups are created in us-east-1 with region prefix
|
|
391
|
+
# Pattern: /aws/lambda/{edge-region}.{function-name}
|
|
392
|
+
# But they're all located in us-east-1
|
|
393
|
+
|
|
394
|
+
for edge_region in edge_regions:
|
|
395
|
+
log_group_name = f"/aws/lambda/{edge_region}.{function_name}"
|
|
383
396
|
|
|
384
397
|
# Use AwsCustomResource to set log retention
|
|
385
398
|
cr.AwsCustomResource(
|
|
386
|
-
self, f"EdgeLogRetention-{
|
|
399
|
+
self, f"EdgeLogRetention-{edge_region}",
|
|
387
400
|
on_update={
|
|
388
|
-
"service": "
|
|
401
|
+
"service": "CloudWatchLogs",
|
|
389
402
|
"action": "putRetentionPolicy",
|
|
390
403
|
"parameters": {
|
|
391
404
|
"logGroupName": log_group_name,
|
|
@@ -394,16 +407,26 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
394
407
|
"physical_resource_id": cr.PhysicalResourceId.from_response("logGroupName")
|
|
395
408
|
},
|
|
396
409
|
on_delete={
|
|
397
|
-
"service": "
|
|
410
|
+
"service": "CloudWatchLogs",
|
|
398
411
|
"action": "deleteRetentionPolicy",
|
|
399
412
|
"parameters": {
|
|
400
413
|
"logGroupName": log_group_name
|
|
401
414
|
},
|
|
402
415
|
"physical_resource_id": cr.PhysicalResourceId.from_response("logGroupName")
|
|
403
416
|
},
|
|
404
|
-
policy=cr.AwsCustomResourcePolicy.
|
|
405
|
-
|
|
406
|
-
|
|
417
|
+
policy=cr.AwsCustomResourcePolicy.from_statements([
|
|
418
|
+
iam.PolicyStatement(
|
|
419
|
+
effect=iam.Effect.ALLOW,
|
|
420
|
+
actions=[
|
|
421
|
+
"logs:PutRetentionPolicy",
|
|
422
|
+
"logs:DeleteRetentionPolicy",
|
|
423
|
+
"logs:DescribeLogGroups",
|
|
424
|
+
"logs:DescribeLogStreams"
|
|
425
|
+
],
|
|
426
|
+
# All Lambda@Edge log groups are in us-east-1
|
|
427
|
+
resources=[f"arn:aws:logs:us-east-1:*:log-group:{log_group_name}*"]
|
|
428
|
+
)
|
|
429
|
+
])
|
|
407
430
|
)
|
|
408
431
|
|
|
409
432
|
logger.info(f"Configured edge log retention to {edge_retention_days} days for {len(edge_regions)} regions")
|
|
@@ -411,8 +434,6 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
411
434
|
def _add_outputs(self, function_name: str) -> None:
|
|
412
435
|
"""Add CloudFormation outputs and SSM exports"""
|
|
413
436
|
|
|
414
|
-
|
|
415
|
-
|
|
416
437
|
# SSM Parameter Store exports (if configured)
|
|
417
438
|
ssm_exports = self.edge_config.dictionary.get("ssm", {}).get("exports", {})
|
|
418
439
|
if ssm_exports:
|
|
@@ -434,35 +455,13 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
434
455
|
description=f"{key} for Lambda@Edge function {function_name}"
|
|
435
456
|
)
|
|
436
457
|
|
|
437
|
-
# Export
|
|
438
|
-
# Since Lambda@Edge doesn't support environment variables, we export them
|
|
439
|
-
# to SSM so the Lambda function can fetch them at runtime
|
|
440
|
-
if self.edge_config.environment:
|
|
441
|
-
logger.info("Exporting Lambda@Edge environment variables as SSM parameters")
|
|
442
|
-
env_ssm_exports = self.edge_config.dictionary.get("environment_ssm_exports", {})
|
|
443
|
-
|
|
444
|
-
# If no explicit environment_ssm_exports, create default SSM paths
|
|
445
|
-
if not env_ssm_exports:
|
|
446
|
-
env_ssm_exports = {
|
|
447
|
-
key: f"/{self.deployment.environment}/{self.workload.name}/lambda-edge/{key.lower()}"
|
|
448
|
-
for key in self.edge_config.environment.keys()
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
# Export each environment variable to SSM
|
|
452
|
-
for var_name, var_value in self.edge_config.environment.items():
|
|
453
|
-
ssm_path = env_ssm_exports.get(var_name, f"/{self.deployment.environment}/{self.workload.name}/lambda-edge/{var_name.lower()}")
|
|
454
|
-
self.export_ssm_parameter(
|
|
455
|
-
self,
|
|
456
|
-
f"{var_name}-env-param",
|
|
457
|
-
var_value,
|
|
458
|
-
ssm_path,
|
|
459
|
-
description=f"Lambda@Edge environment variable: {var_name} for {function_name}"
|
|
460
|
-
)
|
|
461
|
-
|
|
462
|
-
# Export the complete configuration as a single SSM parameter for dynamic updates
|
|
458
|
+
# Export the complete configuration as a single SSM parameter
|
|
463
459
|
config_ssm_path = f"/{self.deployment.environment}/{self.workload.name}/lambda-edge/config"
|
|
460
|
+
configuration = self.edge_config.dictionary.get("configuration", {})
|
|
461
|
+
environment_variables = configuration.get("environment_variables", {})
|
|
462
|
+
|
|
464
463
|
full_config = {
|
|
465
|
-
"environment_variables":
|
|
464
|
+
"environment_variables": environment_variables
|
|
466
465
|
}
|
|
467
466
|
|
|
468
467
|
self.export_ssm_parameter(
|
|
@@ -484,58 +483,3 @@ class LambdaEdgeStack(IStack, StandardizedSsmMixin):
|
|
|
484
483
|
cache_ttl_ssm_path,
|
|
485
484
|
description=f"Lambda@Edge configuration cache TTL in seconds for {function_name} - adjust for maintenance windows (30-3600)"
|
|
486
485
|
)
|
|
487
|
-
|
|
488
|
-
# Create additional default parameters if configured
|
|
489
|
-
default_params = self.edge_config.dictionary.get("default_parameters", {})
|
|
490
|
-
if default_params:
|
|
491
|
-
logger.info(f"Creating {len(default_params)} default SSM parameters")
|
|
492
|
-
|
|
493
|
-
for param_name, param_value in default_params.items():
|
|
494
|
-
param_path = f"/{self.deployment.environment}/{self.workload.name}/lambda-edge/defaults/{param_name}"
|
|
495
|
-
|
|
496
|
-
# Create descriptive parameter description
|
|
497
|
-
descriptions = {
|
|
498
|
-
"CACHE_TTL": f"Configuration cache TTL in seconds for {function_name}",
|
|
499
|
-
"HEALTH_CHECK_TIMEOUT": f"ALB health check timeout in seconds for {function_name}",
|
|
500
|
-
"HEALTH_CHECK_CACHE_TTL": f"Health check result cache TTL in seconds for {function_name}",
|
|
501
|
-
"MAINTENANCE_MODE": f"Maintenance mode toggle for {function_name}",
|
|
502
|
-
"GATE_ENABLED": f"IP gate toggle for {function_name}",
|
|
503
|
-
"ALLOW_CIDRS": f"Allowed CIDR blocks for {function_name}",
|
|
504
|
-
"HEALTH_CHECK_PATH": f"Health check endpoint path for {function_name}",
|
|
505
|
-
"ALB_DOMAIN": f"ALB DNS name for {function_name}",
|
|
506
|
-
"DEBUG_MODE": f"Debug mode toggle for {function_name}",
|
|
507
|
-
"CIRCUIT_BREAKER_THRESHOLD": f"Circuit breaker failure threshold for {function_name}",
|
|
508
|
-
"CIRCUIT_BREAKER_TIMEOUT": f"Circuit breaker timeout in seconds for {function_name}"
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
description = descriptions.get(param_name, f"Default parameter '{param_name}' for Lambda@Edge function {function_name}")
|
|
512
|
-
|
|
513
|
-
self.export_ssm_parameter(
|
|
514
|
-
scope=self,
|
|
515
|
-
id=f"default-{param_name.lower()}-param",
|
|
516
|
-
value=str(param_value),
|
|
517
|
-
parameter_name=param_path,
|
|
518
|
-
description=description
|
|
519
|
-
)
|
|
520
|
-
|
|
521
|
-
# Resolve and export environment variables to SSM
|
|
522
|
-
resolved_env = self._resolve_environment_variables()
|
|
523
|
-
for env_key, env_value in resolved_env.items():
|
|
524
|
-
if env_key in resolved_env:
|
|
525
|
-
env_value = resolved_env[env_key]
|
|
526
|
-
# Handle empty values - SSM doesn't allow empty strings
|
|
527
|
-
# Use sentinel value "NONE" to indicate explicitly unset
|
|
528
|
-
if not env_value or (isinstance(env_value, str) and env_value.strip() == ""):
|
|
529
|
-
env_value = "NONE"
|
|
530
|
-
logger.info(
|
|
531
|
-
f"Environment variable {env_key} is empty - setting SSM parameter to 'NONE'. "
|
|
532
|
-
f"Lambda function should treat 'NONE' as unset/disabled."
|
|
533
|
-
)
|
|
534
|
-
|
|
535
|
-
self.export_ssm_parameter(
|
|
536
|
-
scope=self,
|
|
537
|
-
id=f"env-{env_key}-param",
|
|
538
|
-
value=env_value,
|
|
539
|
-
parameter_name=ssm_path,
|
|
540
|
-
description=f"Configuration for Lambda@Edge: {env_key}"
|
|
541
|
-
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.19.18"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.19.14"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/examples/separate-api-gateway/api-gateway-stack.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/deployment_wave.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/enhanced_base_config.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/enhanced_ssm_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/pipeline_stage.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/_resources.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/api_gateway.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/auto_scaling.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/cloudfront.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/cognito.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/docker.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/dynamodb.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/ecs_cluster.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/ecs_service.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/exisiting.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/lambda_edge.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/monitoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/configurations/resources/route53.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/networked_stack_mixin.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/standardized_ssm_mixin.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/interfaces/vpc_provider_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/auto_scaling/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/buckets/bucket_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/cloudfront/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/cognito/cognito_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecs/ecs_cluster_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/lambda_edge/__init__.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/load_balancer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/monitoring/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/route53/__init__.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/route53/route53_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stack_library/security_group/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/stages/websites/static_website_stage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/configuration_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/environment_services.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/json_loading_utility.py
RENAMED
|
File without changes
|
{cdk_factory-0.19.14 → cdk_factory-0.19.18}/src/cdk_factory/utilities/lambda_function_utilities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|