cdk-factory 0.13.1__tar.gz → 0.13.4__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.13.1 → cdk_factory-0.13.4}/PKG-INFO +1 -1
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/pyproject.toml +1 -1
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/cloudfront/cloudfront_distribution_construct.py +43 -2
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/lambda_edge/lambda_edge_stack.py +39 -7
- cdk_factory-0.13.4/src/cdk_factory/version.py +1 -0
- cdk_factory-0.13.1/src/cdk_factory/version.py +0 -1
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/.gitignore +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/.windsurfrules +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/LICENSE +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/archive/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/archive/migrate_to_enhanced_ssm.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/examples/json-imports/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/examples/separate-api-gateway/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/examples/separate-api-gateway/api-gateway-stack.json +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/examples/separate-api-gateway/config.json +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/examples/separate-api-gateway/lambda-stack.json +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/mypy.ini +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/publish_to_pypi.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/publish_to_pypi.sh +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/pysetup.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/pysetup.sh +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/requirements.dev.txt +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/requirements.tests.txt +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/requirements.txt +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/run-checks.sh +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/run-tests-clean-venv.sh +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/run-tests.sh +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/app.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/builds/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/cdk.json +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/cli.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/commands/command_loader.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/base_config.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/cdk_config.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/deployment.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/deployment_wave.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/devops.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/enhanced_base_config.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/enhanced_ssm_config.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/management.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/pipeline.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/pipeline_stage.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/_resources.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/api_gateway.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/apigateway_route_config.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/auto_scaling.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cloudfront.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cloudwatch_widget.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_artifact.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_artifact_login.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_repository.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cognito.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/docker.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/dynamodb.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/ecr.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/ecs_service.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/exisiting.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_edge.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_function.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_layers.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_triggers.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/load_balancer.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/monitoring.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/rds.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_mapping.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_naming.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_types.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/route53.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/route53_hosted_zone.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/rum.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/s3.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/security_group.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/security_group_full_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/sqs.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/vpc.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/workload.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/ecr/ecr_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/lambda_function_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/lambda_function_docker_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/lambda_function_role_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/policies/policy_statements.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/s3_buckets/s3_bucket_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_destination_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/s3_buckets/s3_bucket_replication_source_construct.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/enhanced_ssm_parameter_mixin.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/istack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/live_ssm_resolver.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/ssm_parameter_mixin.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/lambdas/edge/ip_gate/handler.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/lambdas/health_handler.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/path_utils.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/pipeline_factory.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/security/policies.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/security/roles.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/pipeline/stage.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack/istack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_factory.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_module_loader.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_module_registry.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack/stack_modules.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/api_gateway/api_gateway_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/auto_scaling/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/auto_scaling/auto_scaling_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/buckets/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/buckets/bucket_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cloudfront/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cloudfront/cloudfront_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/code_artifact/code_artifact_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cognito/cognito_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/dynamodb/dynamodb_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecr/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecr/ecr_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecs/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/lambda_edge/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/load_balancer/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/load_balancer/load_balancer_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/monitoring/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/monitoring/monitoring_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rds/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rds/rds_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/route53/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/route53/route53_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rum/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/rum/rum_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/security_group/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/security_group/security_group_full_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/security_group/security_group_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/simple_queue_service/sqs_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/stack_base.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/vpc/__init__.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/vpc/vpc_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/websites/static_website_stack.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stages/websites/static_website_stage.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/templates/README.md +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/templates/app.py.template +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/templates/cdk.json.template +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/api_gateway_integration_utility.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/commandline_args.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/configuration_loader.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/docker_utilities.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/environment_services.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/file_operations.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/git_utilities.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/json_loading_utility.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/lambda_function_utilities.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/os_execute.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utils/api_gateway_utilities.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/workload/workload_factory.py +0 -0
- {cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/handlers/test/handler.py +0 -0
|
@@ -118,11 +118,17 @@ class CloudFrontDistributionConstruct(Construct):
|
|
|
118
118
|
origin_access_identity=self.oai,
|
|
119
119
|
)
|
|
120
120
|
|
|
121
|
+
# Get comment from config, or use default
|
|
122
|
+
comment = "CloudFront Distribution generated via the CDK Factory"
|
|
123
|
+
if self.stack_config and isinstance(self.stack_config, StackConfig):
|
|
124
|
+
cloudfront_config = self.stack_config.dictionary.get("cloudfront", {})
|
|
125
|
+
comment = cloudfront_config.get("comment", comment)
|
|
126
|
+
|
|
121
127
|
distribution = cloudfront.Distribution(
|
|
122
128
|
self,
|
|
123
129
|
"cloudfront-dist",
|
|
124
130
|
domain_names=self.aliases,
|
|
125
|
-
comment=
|
|
131
|
+
comment=comment,
|
|
126
132
|
certificate=self.certificate,
|
|
127
133
|
default_behavior=cloudfront.BehaviorOptions(
|
|
128
134
|
origin=origin,
|
|
@@ -228,6 +234,15 @@ class CloudFrontDistributionConstruct(Construct):
|
|
|
228
234
|
"""
|
|
229
235
|
Get the Lambda@Edge associations for the distribution from config.
|
|
230
236
|
|
|
237
|
+
Supports two configuration methods:
|
|
238
|
+
1. Convenience flag: "enable_ip_gating": true
|
|
239
|
+
- Automatically adds Lambda@Edge IP gating function
|
|
240
|
+
- Uses auto-derived SSM parameter path: /{env}/{workload}/lambda-edge/version-arn
|
|
241
|
+
|
|
242
|
+
2. Manual configuration: "lambda_edge_associations": [...]
|
|
243
|
+
- Full control over Lambda@Edge associations
|
|
244
|
+
- Can specify custom ARNs, event types, etc.
|
|
245
|
+
|
|
231
246
|
Returns:
|
|
232
247
|
List[cloudfront.EdgeLambda] or None: list of Lambda@Edge associations
|
|
233
248
|
"""
|
|
@@ -235,7 +250,33 @@ class CloudFrontDistributionConstruct(Construct):
|
|
|
235
250
|
|
|
236
251
|
if self.stack_config and isinstance(self.stack_config, StackConfig):
|
|
237
252
|
cloudfront_config = self.stack_config.dictionary.get("cloudfront", {})
|
|
238
|
-
|
|
253
|
+
|
|
254
|
+
# Check for convenience IP gating flag
|
|
255
|
+
enable_ip_gating = cloudfront_config.get("enable_ip_gating", False)
|
|
256
|
+
if enable_ip_gating:
|
|
257
|
+
logger.info("IP gating enabled via convenience flag - adding Lambda@Edge association")
|
|
258
|
+
|
|
259
|
+
# Extract environment and workload name from config
|
|
260
|
+
# These come from the workload/deployment configuration
|
|
261
|
+
workload_dict = self.stack_config.workload
|
|
262
|
+
environment = workload_dict.get("deployment", {}).get("environment", "dev")
|
|
263
|
+
workload_name = workload_dict.get("name", "workload")
|
|
264
|
+
|
|
265
|
+
# Auto-derive SSM parameter path or use override
|
|
266
|
+
default_ssm_path = f"/{environment}/{workload_name}/lambda-edge/version-arn"
|
|
267
|
+
ip_gate_ssm_path = cloudfront_config.get("ip_gate_function_ssm_path", default_ssm_path)
|
|
268
|
+
|
|
269
|
+
logger.info(f"Using IP gate Lambda ARN from SSM: {ip_gate_ssm_path}")
|
|
270
|
+
|
|
271
|
+
# Add the IP gating Lambda@Edge association
|
|
272
|
+
lambda_edge_associations = [{
|
|
273
|
+
"event_type": "origin-request",
|
|
274
|
+
"lambda_arn": f"{{{{ssm:{ip_gate_ssm_path}}}}}",
|
|
275
|
+
"include_body": False
|
|
276
|
+
}]
|
|
277
|
+
else:
|
|
278
|
+
# Use manual configuration
|
|
279
|
+
lambda_edge_associations = cloudfront_config.get("lambda_edge_associations", [])
|
|
239
280
|
|
|
240
281
|
for association in lambda_edge_associations:
|
|
241
282
|
event_type_str = association.get("event_type", "origin-request")
|
|
@@ -11,6 +11,7 @@ from pathlib import Path
|
|
|
11
11
|
import json
|
|
12
12
|
import tempfile
|
|
13
13
|
import shutil
|
|
14
|
+
import importlib.resources
|
|
14
15
|
|
|
15
16
|
import aws_cdk as cdk
|
|
16
17
|
from aws_cdk import aws_lambda as _lambda
|
|
@@ -86,7 +87,10 @@ class LambdaEdgeStack(IStack, EnhancedSsmParameterMixin):
|
|
|
86
87
|
deployment
|
|
87
88
|
)
|
|
88
89
|
|
|
89
|
-
|
|
90
|
+
# Use the Lambda function name from config (supports template variables)
|
|
91
|
+
# e.g., "{{WORKLOAD_NAME}}-{{ENVIRONMENT}}-ip-gate" becomes "tech-talk-dev-ip-gate"
|
|
92
|
+
function_name = self.edge_config.name
|
|
93
|
+
logger.info(f"Lambda function name: '{function_name}'")
|
|
90
94
|
|
|
91
95
|
# Create Lambda function
|
|
92
96
|
self._create_lambda_function(function_name)
|
|
@@ -128,11 +132,38 @@ class LambdaEdgeStack(IStack, EnhancedSsmParameterMixin):
|
|
|
128
132
|
def _create_lambda_function(self, function_name: str) -> None:
|
|
129
133
|
"""Create the Lambda function"""
|
|
130
134
|
|
|
131
|
-
# Resolve code path
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
# Resolve code path - support package references (e.g., "cdk_factory:lambdas/edge/ip_gate")
|
|
136
|
+
code_path_str = self.edge_config.code_path
|
|
137
|
+
|
|
138
|
+
if ':' in code_path_str:
|
|
139
|
+
# Package reference format: "package_name:path/within/package"
|
|
140
|
+
package_name, package_path = code_path_str.split(':', 1)
|
|
141
|
+
logger.info(f"Resolving package reference: {package_name}:{package_path}")
|
|
142
|
+
|
|
143
|
+
try:
|
|
144
|
+
# Get the package's installed location
|
|
145
|
+
if hasattr(importlib.resources, 'files'):
|
|
146
|
+
# Python 3.9+
|
|
147
|
+
package_root = importlib.resources.files(package_name)
|
|
148
|
+
code_path = Path(str(package_root / package_path))
|
|
149
|
+
else:
|
|
150
|
+
# Fallback for older Python
|
|
151
|
+
import pkg_resources
|
|
152
|
+
package_root = pkg_resources.resource_filename(package_name, '')
|
|
153
|
+
code_path = Path(package_root) / package_path
|
|
154
|
+
|
|
155
|
+
logger.info(f"Resolved package path to: {code_path}")
|
|
156
|
+
except Exception as e:
|
|
157
|
+
raise FileNotFoundError(
|
|
158
|
+
f"Could not resolve package reference '{code_path_str}': {e}\n"
|
|
159
|
+
f"Make sure package '{package_name}' is installed."
|
|
160
|
+
)
|
|
161
|
+
else:
|
|
162
|
+
# Regular file path
|
|
163
|
+
code_path = Path(code_path_str)
|
|
164
|
+
if not code_path.is_absolute():
|
|
165
|
+
# Assume relative to the project root
|
|
166
|
+
code_path = Path.cwd() / code_path
|
|
136
167
|
|
|
137
168
|
if not code_path.exists():
|
|
138
169
|
raise FileNotFoundError(
|
|
@@ -153,9 +184,10 @@ class LambdaEdgeStack(IStack, EnhancedSsmParameterMixin):
|
|
|
153
184
|
|
|
154
185
|
# Create runtime configuration file for Lambda@Edge
|
|
155
186
|
# Since Lambda@Edge doesn't support environment variables, we bundle a config file
|
|
187
|
+
# Use the full function_name (e.g., "tech-talk-dev-ip-gate") not just the base name
|
|
156
188
|
runtime_config = {
|
|
157
189
|
'environment': self.deployment.environment,
|
|
158
|
-
'function_name':
|
|
190
|
+
'function_name': function_name,
|
|
159
191
|
'region': self.deployment.region
|
|
160
192
|
}
|
|
161
193
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.13.4"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.13.1"
|
|
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.13.1 → cdk_factory-0.13.4}/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
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/enhanced_base_config.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/enhanced_ssm_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/_resources.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/api_gateway.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/auto_scaling.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cloudfront.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/code_artifact.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/cognito.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/docker.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/dynamodb.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/ecs_service.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/exisiting.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_edge.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/lambda_layers.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/load_balancer.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/monitoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/resource_types.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/route53.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/configurations/resources/security_group.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
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/lambdas/policies/policy_docs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/constructs/sqs/policies/sqs_policies.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/interfaces/enhanced_ssm_parameter_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
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/auto_scaling/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/aws_lambdas/lambda_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/buckets/bucket_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cloudfront/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/cognito/cognito_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/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.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/ecs/ecs_service_stack.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/lambda_edge/__init__.py
RENAMED
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/load_balancer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/monitoring/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/stack_library/route53/route53_stack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/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.13.1 → cdk_factory-0.13.4}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cdk_factory-0.13.1 → cdk_factory-0.13.4}/src/cdk_factory/utilities/lambda_function_utilities.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|