konokenj.cdk-api-mcp-server 0.31.0__py3-none-any.whl → 0.57.0__py3-none-any.whl
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_api_mcp_server/__about__.py +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +12 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-agentcore-alpha/README.md +1979 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-bedrock-alpha/README.md +946 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-eks-v2-alpha/README.md +160 -75
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-elasticache-alpha/README.md +421 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-glue-alpha/README.md +39 -9
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-imagebuilder-alpha/README.md +656 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-iot-alpha/README.md +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-go-alpha/README.md +102 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-lambda-python-alpha/README.md +6 -6
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-msk-alpha/README.md +38 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-s3tables-alpha/README.md +82 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-sagemaker-alpha/README.md +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/mixins-preview/README.md +182 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/README.md/README.md +367 -17
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/README.md +34 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.api-with-authorizer-and-proxy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-api.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.lambda-permission-consolidation.ts +55 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigateway/integ.spec-restapi.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/README.md +224 -60
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +3 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +5 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +10 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.usage-plan.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +34 -38
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.lambda.ts +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.user-pool.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/README.md +35 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.add-subroute-integration.ts +7 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.http-proxy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-connect-disconnect-trigger.ts +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-permission-consolidation.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda-proxy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.lambda.ts +4 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +58 -71
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.graphql-lambda-permission.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-appsync/integ.js-resolver.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/README.md +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-autoscaling/integ.asg-lt.ts +7 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/README.md +49 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.ecs-exec-batch-job.ts +148 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-batch/integ.managed-compute-environment-default-instance-class.ts +20 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-certificatemanager/README.md +11 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-node-18.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudformation/integ.core-custom-resources-service-timeout.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +292 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md +83 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.function-url-origin-ip-address-type.ts +84 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.http-origin.ts +5 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/integ.origin-response-completion-timeout.ts +50 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudtrail/integ.cloudtrail-data-events-only.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +104 -12
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +12 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.anomaly-detection-alarm.ts +44 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-graphwidget-with-labels-visible.ts +92 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.dashboard-with-metric-id-and-visible.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.search-expression.ts +51 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/README.md +143 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-docker-server.ts +44 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-attribute-based-compute.ts +59 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-custom-instance-type.ts +130 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-fleet-overflow-behavior.ts +61 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-s3-cache.ts +71 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codebuild/integ.project-windows-image.ts +1 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +26 -17
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/README.md +13 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cognito/integ.user-pool-client-explicit-props.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/README.md +24 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-docdb/integ.cluster-serverless.ts +34 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/README.md +225 -15
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/TABLE_V1_API.md +45 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb-v2.cci.ts +49 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.add-to-resource-policy.ts +97 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.cci.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.compound.ts +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.contirubtor-insights-for-gsi.ts +6 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.dynamodb.policy.ts +21 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-global.ts +9 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2-mrsc.ts +31 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-dynamodb/integ.table-v2.compound.ts +43 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +28 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-disconnect-on-session-timeout.ts +65 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-endpoint.lit.ts +6 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.vpc-flow-logs.ts +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/README.md +41 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr/integ.tag-mutability-exclusion.ts +30 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/README.md +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecr-assets/integ.assets-docker.ts +6 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/README.md +189 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.availability-zone-rebalancing.ts +14 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.blue-green-deployment-strategy.ts +147 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.cluster-windows-server-ami.ts +5 -6
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.ebs-volume-initialization-rate.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.enable-execute-command.ts +35 -29
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.exec-command.ts +16 -22
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.lb-awsvpc-nw.ts +26 -16
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-capacity-provider.ts +114 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.managedinstances-no-default-capacity-provider.ts +107 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.placement-strategies.ts +32 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs/integ.pseudo-terminal.ts +18 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/README.md +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-public-private-switch.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ecs-patterns/integ.alb-fargate-service-smart-defaults.ts +143 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +103 -83
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-cluster-removal-policy.ts +31 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +55 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-lambda-multi-value-headers.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb-target-group-attributes.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.alb.oidc.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb-target-group-attributes.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2/integ.nlb.security-group.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-elasticloadbalancingv2-actions/integ.cognito.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/README.md +41 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.api-destination.ts +42 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.archive-customer-managed-key.ts +23 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events/integ.eventbus.ts +13 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/README.md +93 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.firehose-delivery-stream.ts +51 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.custom-permissions-boundary-aspect.ts +50 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.managed-policy.ts +9 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-iam/integ.policy.ts +9 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/README.md +42 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesis/integ.stream-shard-level-monitoring.ts +47 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/README.md +159 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.cloudwatch-logs-processors.ts +45 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion-schema.ts +154 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.record-format-conversion.ts +178 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kinesisfirehose/integ.s3-bucket.lit.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +41 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.binary-payload.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.lambda-policy-with-token-resolution.ts +46 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.logging-config.ts +8 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.multi-tenancy.ts +24 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.params-and-secrets.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime-management.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.fromasset.ts +19 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.runtime.inlinecode.ts +11 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/README.md +3 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-bun-lock.ts +50 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.dependencies-pnpm.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.function-exclude-smithy-models.ts +2 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-nodejs/integ.nodejs.build.images.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/README.md +69 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.loggroup-transformer.ts +37 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.metricfilter-apply-on-transformed-logs.ts +29 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.save-logs-insights-query-definition.ts +7 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.subscriptionfilter.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.transformer.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.ebs.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-opensearchservice/integ.opensearch.min.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +72 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-cloudwatch-logs-exports.ts +56 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api-to-imported-cluster.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-data-api.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-lookup.ts +100 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-database-insights.ts +43 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-lookup.ts +77 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.proxy-endpoint.ts +36 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/README.md +68 -31
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.delete-existing-record-set.ts +0 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.private-hosted-zone-from-attributes.ts +41 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.route53.ts +51 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53/integ.zone-delegation-iam-stack.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.cloudfront-alias-target.ts +16 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-route53-targets/integ.elastic-beanstalk-hostedzoneid.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/integ.bucket.notifications-scoped-permissions.ts +71 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-assets/integ.assets.bundling.docker-opts.ts +4 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/README.md +83 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-big-response.ts +17 -6
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cloudfront.ts +20 -18
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-nested-stack-source.ts +64 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-source.ts +53 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-cross-stack-ssm-source.ts +97 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-data.ts +99 -59
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-deployed-bucket.ts +10 -4
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-large-file.ts +23 -12
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-loggroup.ts +7 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-efs.ts +77 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-empty.ts +69 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-multiple.ts +89 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-security-groups-single.ts +77 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.ts +11 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-destination-key.ts +15 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution-with-role.ts +29 -14
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-substitution.ts +16 -8
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-basic.ts +65 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-config.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-custom-subnets.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-efs.ts +66 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-security-groups.ts +72 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-vpc-subnet-selection.ts +70 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment.ts +47 -69
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +80 -42
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-secretsmanager/integ.secret.dynamic-reference-key.ts +38 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-signer/integ.signing-profile.ts +5 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns/README.md +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs-subscription-filter.ts +75 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.ts +21 -40
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-parallel.ts +82 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.distributed-map-redrive.ts +130 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.map-with-catch.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions/integ.sm-jsonpath-with-distributed-map-jsonata.ts +105 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md +75 -5
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.emr-create-cluster-with-ebs.ts +126 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-arm64.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-default.ts +25 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-mixed-arch.ts +35 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-nodejs22.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.evaluate-expression-x86.ts +27 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.invoke-json-path.ts +102 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/README.md +84 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-browser-type.ts +35 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-resources-to-replicate-tags.ts +36 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-retry.ts +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary-runtime-validation.ts +43 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-synthetics/integ.canary.ts +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cloudformation-include/integ.novalue-nonstring.ts +25 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/core/README.md +2 -1870
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/README.md +59 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.aws-custom-resource.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.custom-resource-config-lambda-node-runtime.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.external-id.ts +80 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/custom-resources/integ.invoke-function-payload.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +152 -10
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +55 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/interfaces/README.md +33 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-reduce-stagerole-scope.ts +4 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.pipeline-with-customsynthesizer.ts +105 -0
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/METADATA +2 -2
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/RECORD +240 -151
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-events-targets/integ.kinesis-firehose-stream.ts +0 -33
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-logs/integ.expose-metric-with-dimensions.ts +0 -47
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-deployment/integ.bucket-deployment-signcontent.d.ts +0 -1
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/WHEEL +0 -0
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/entry_points.txt +0 -0
- {konokenj_cdk_api_mcp_server-0.31.0.dist-info → konokenj_cdk_api_mcp_server-0.57.0.dist-info}/licenses/LICENSE.txt +0 -0
|
@@ -67,6 +67,297 @@ new cloudfront.Distribution(this, 'myDist', {
|
|
|
67
67
|
defaultBehavior: { origin: new origins.HttpOrigin('www.example.com') },
|
|
68
68
|
});
|
|
69
69
|
```
|
|
70
|
+
### CloudFront SaaS Manager resources
|
|
71
|
+
|
|
72
|
+
#### Multi-tenant distribution and tenant providing ACM certificates
|
|
73
|
+
You can use Cloudfront to build multi-tenant distributions to house applications.
|
|
74
|
+
|
|
75
|
+
To create a multi-tenant distribution w/parameters, create a Distribution construct, and then update DistributionConfig in the CfnDistribution to use connectionMode: "tenant-only"
|
|
76
|
+
|
|
77
|
+
Then create a tenant
|
|
78
|
+
```ts
|
|
79
|
+
// Create the simple Origin
|
|
80
|
+
const myBucket = new s3.Bucket(this, 'myBucket');
|
|
81
|
+
const s3Origin = origins.S3BucketOrigin.withOriginAccessControl(myBucket, {
|
|
82
|
+
originAccessLevels: [cloudfront.AccessLevel.READ, cloudfront.AccessLevel.LIST],
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// Create the Distribution construct
|
|
86
|
+
const myMultiTenantDistribution = new cloudfront.Distribution(this, 'distribution', {
|
|
87
|
+
defaultBehavior: {
|
|
88
|
+
origin: s3Origin,
|
|
89
|
+
},
|
|
90
|
+
defaultRootObject: 'index.html', // recommended to specify
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
|
|
94
|
+
const cfnDistribution = myMultiTenantDistribution.node.defaultChild as cloudfront.CfnDistribution;
|
|
95
|
+
|
|
96
|
+
const defaultCacheBehavior: cloudfront.CfnDistribution.DefaultCacheBehaviorProperty = {
|
|
97
|
+
targetOriginId: myBucket.bucketArn,
|
|
98
|
+
viewerProtocolPolicy: 'allow-all',
|
|
99
|
+
compress: false,
|
|
100
|
+
allowedMethods: ['GET', 'HEAD'],
|
|
101
|
+
cachePolicyId: cloudfront.CachePolicy.CACHING_OPTIMIZED.cachePolicyId
|
|
102
|
+
};
|
|
103
|
+
// Create the updated distributionConfig
|
|
104
|
+
const distributionConfig: cloudfront.CfnDistribution.DistributionConfigProperty = {
|
|
105
|
+
defaultCacheBehavior: defaultCacheBehavior,
|
|
106
|
+
enabled: true,
|
|
107
|
+
// the properties below are optional
|
|
108
|
+
connectionMode: 'tenant-only',
|
|
109
|
+
origins: [
|
|
110
|
+
{
|
|
111
|
+
id: myBucket.bucketArn,
|
|
112
|
+
domainName: myBucket.bucketDomainName,
|
|
113
|
+
s3OriginConfig: {},
|
|
114
|
+
originPath: "/{{tenantName}}"
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
tenantConfig: {
|
|
118
|
+
parameterDefinitions: [
|
|
119
|
+
{
|
|
120
|
+
definition: {
|
|
121
|
+
stringSchema: {
|
|
122
|
+
required: false,
|
|
123
|
+
// the properties below are optional
|
|
124
|
+
comment: 'tenantName',
|
|
125
|
+
defaultValue: 'root',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
name: 'tenantName',
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// Override the distribution configuration to enable multi-tenancy.
|
|
135
|
+
cfnDistribution.distributionConfig = distributionConfig;
|
|
136
|
+
|
|
137
|
+
// Create a distribution tenant using an existing ACM certificate
|
|
138
|
+
const cfnDistributionTenant = new cloudfront.CfnDistributionTenant(this, 'distribution-tenant', {
|
|
139
|
+
distributionId: myMultiTenantDistribution.distributionId,
|
|
140
|
+
domains: ['my-tenant.my.domain.com'],
|
|
141
|
+
name: 'my-tenant',
|
|
142
|
+
enabled: true,
|
|
143
|
+
parameters: [ // Override the default 'tenantName' parameter (root) defined in the multi-tenant distribution.
|
|
144
|
+
{
|
|
145
|
+
name: 'tenantName',
|
|
146
|
+
value: 'app',
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
customizations: {
|
|
150
|
+
certificate: {
|
|
151
|
+
arn: 'REPLACE_WITH_ARN', // Certificate must be in us-east-1 region and cover 'my-tenant.my.domain.com'
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### Multi-tenant distribution and tenant with CloudFront-hosted certificate
|
|
158
|
+
A distribution tenant with CloudFront-hosted domain validation is useful if you don't currently have traffic to the domain.
|
|
159
|
+
|
|
160
|
+
Start by creating a parent multi-tenant distribution, then create the distribution tenant.
|
|
161
|
+
```ts
|
|
162
|
+
import * as route53 from 'aws-cdk-lib/aws-route53';
|
|
163
|
+
|
|
164
|
+
// Create the simple Origin
|
|
165
|
+
const myBucket = new s3.Bucket(this, 'myBucket');
|
|
166
|
+
const s3Origin = origins.S3BucketOrigin.withOriginAccessControl(myBucket, {
|
|
167
|
+
originAccessLevels: [cloudfront.AccessLevel.READ, cloudfront.AccessLevel.LIST],
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
// Create the Distribution construct
|
|
171
|
+
const myMultiTenantDistribution = new cloudfront.Distribution(this, 'cf-hosted-distribution', {
|
|
172
|
+
defaultBehavior: {
|
|
173
|
+
origin: s3Origin,
|
|
174
|
+
},
|
|
175
|
+
defaultRootObject: 'index.html', // recommended to specify
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
|
|
179
|
+
const cfnDistribution = myMultiTenantDistribution.node.defaultChild as cloudfront.CfnDistribution;
|
|
180
|
+
|
|
181
|
+
const defaultCacheBehavior: cloudfront.CfnDistribution.DefaultCacheBehaviorProperty = {
|
|
182
|
+
targetOriginId: myBucket.bucketArn,
|
|
183
|
+
viewerProtocolPolicy: 'allow-all',
|
|
184
|
+
compress: false,
|
|
185
|
+
allowedMethods: ['GET', 'HEAD'],
|
|
186
|
+
cachePolicyId: cloudfront.CachePolicy.CACHING_OPTIMIZED.cachePolicyId
|
|
187
|
+
};
|
|
188
|
+
// Create the updated distributionConfig
|
|
189
|
+
const distributionConfig: cloudfront.CfnDistribution.DistributionConfigProperty = {
|
|
190
|
+
defaultCacheBehavior: defaultCacheBehavior,
|
|
191
|
+
enabled: true,
|
|
192
|
+
// the properties below are optional
|
|
193
|
+
connectionMode: 'tenant-only',
|
|
194
|
+
origins: [
|
|
195
|
+
{
|
|
196
|
+
id: myBucket.bucketArn,
|
|
197
|
+
domainName: myBucket.bucketDomainName,
|
|
198
|
+
s3OriginConfig: {},
|
|
199
|
+
originPath: "/{{tenantName}}"
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
tenantConfig: {
|
|
203
|
+
parameterDefinitions: [
|
|
204
|
+
{
|
|
205
|
+
definition: {
|
|
206
|
+
stringSchema: {
|
|
207
|
+
required: false,
|
|
208
|
+
// the properties below are optional
|
|
209
|
+
comment: 'tenantName',
|
|
210
|
+
defaultValue: 'root',
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
name: 'tenantName',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
// Override the distribution configuration to enable multi-tenancy.
|
|
220
|
+
cfnDistribution.distributionConfig = distributionConfig;
|
|
221
|
+
|
|
222
|
+
// Create a connection group and a cname record in an existing hosted zone to validate domain ownership
|
|
223
|
+
const connectionGroup = new cloudfront.CfnConnectionGroup(this, 'cf-hosted-connection-group', {
|
|
224
|
+
enabled: true,
|
|
225
|
+
ipv6Enabled: true,
|
|
226
|
+
name: 'my-connection-group',
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// Import the existing hosted zone info, replacing with your hostedZoneId and zoneName
|
|
230
|
+
const hostedZoneId = 'YOUR_HOSTED_ZONE_ID';
|
|
231
|
+
const zoneName = 'my.domain.com';
|
|
232
|
+
const hostedZone = route53.HostedZone.fromHostedZoneAttributes(this, 'hosted-zone', {
|
|
233
|
+
hostedZoneId,
|
|
234
|
+
zoneName,
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
const record = new route53.CnameRecord(this, 'cname-record', {
|
|
238
|
+
domainName: connectionGroup.attrRoutingEndpoint,
|
|
239
|
+
zone: hostedZone,
|
|
240
|
+
recordName: 'cf-hosted-tenant.my.domain.com',
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
// Create the cloudfront-hosted tenant, passing in the previously created connection group
|
|
244
|
+
const cloudfrontHostedTenant = new cloudfront.CfnDistributionTenant(this, 'cf-hosted-tenant', {
|
|
245
|
+
distributionId: myMultiTenantDistribution.distributionId,
|
|
246
|
+
name: 'cf-hosted-tenant',
|
|
247
|
+
domains: ['cf-hosted-tenant.my.domain.com'],
|
|
248
|
+
connectionGroupId: connectionGroup.attrId,
|
|
249
|
+
enabled: true,
|
|
250
|
+
managedCertificateRequest: {
|
|
251
|
+
validationTokenHost: 'cloudfront'
|
|
252
|
+
},
|
|
253
|
+
});
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### Multi-tenant distribution and tenant with self-hosted certificate
|
|
257
|
+
A tenant with self-hosted domain validation is useful if you already have traffic to the domain and can't tolerate downtime during migration to multi-tenant architecture.
|
|
258
|
+
|
|
259
|
+
The tenant will be created, and the managed certificate will be awaiting validation of domain ownership. You can then validate domain ownership via http redirect or token file upload. [More details here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managed-cloudfront-certificates.html#complete-domain-ownership)
|
|
260
|
+
|
|
261
|
+
Traffic won't be migrated until you update your hosted zone to point the tenant domain to the CloudFront RoutingEndpoint.
|
|
262
|
+
|
|
263
|
+
Start by creating a parent multi-tenant distribution
|
|
264
|
+
```ts
|
|
265
|
+
// Create the simple Origin
|
|
266
|
+
const myBucket = new s3.Bucket(this, 'myBucket');
|
|
267
|
+
const s3Origin = origins.S3BucketOrigin.withOriginAccessControl(myBucket, {
|
|
268
|
+
originAccessLevels: [cloudfront.AccessLevel.READ, cloudfront.AccessLevel.LIST],
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
// Create the Distribution construct
|
|
272
|
+
const myMultiTenantDistribution = new cloudfront.Distribution(this, 'cf-hosted-distribution', {
|
|
273
|
+
defaultBehavior: {
|
|
274
|
+
origin: s3Origin,
|
|
275
|
+
},
|
|
276
|
+
defaultRootObject: 'index.html', // recommended to specify
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
// Access the underlying L1 CfnDistribution to configure SaaS Manager properties which are not yet available in the L2 Distribution construct
|
|
280
|
+
const cfnDistribution = myMultiTenantDistribution.node.defaultChild as cloudfront.CfnDistribution;
|
|
281
|
+
|
|
282
|
+
const defaultCacheBehavior: cloudfront.CfnDistribution.DefaultCacheBehaviorProperty = {
|
|
283
|
+
targetOriginId: myBucket.bucketArn,
|
|
284
|
+
viewerProtocolPolicy: 'allow-all',
|
|
285
|
+
compress: false,
|
|
286
|
+
allowedMethods: ['GET', 'HEAD'],
|
|
287
|
+
cachePolicyId: cloudfront.CachePolicy.CACHING_OPTIMIZED.cachePolicyId
|
|
288
|
+
};
|
|
289
|
+
// Create the updated distributionConfig
|
|
290
|
+
const distributionConfig: cloudfront.CfnDistribution.DistributionConfigProperty = {
|
|
291
|
+
defaultCacheBehavior: defaultCacheBehavior,
|
|
292
|
+
enabled: true,
|
|
293
|
+
// the properties below are optional
|
|
294
|
+
connectionMode: 'tenant-only',
|
|
295
|
+
origins: [
|
|
296
|
+
{
|
|
297
|
+
id: myBucket.bucketArn,
|
|
298
|
+
domainName: myBucket.bucketDomainName,
|
|
299
|
+
s3OriginConfig: {},
|
|
300
|
+
originPath: "/{{tenantName}}"
|
|
301
|
+
},
|
|
302
|
+
],
|
|
303
|
+
tenantConfig: {
|
|
304
|
+
parameterDefinitions: [
|
|
305
|
+
{
|
|
306
|
+
definition: {
|
|
307
|
+
stringSchema: {
|
|
308
|
+
required: false,
|
|
309
|
+
// the properties below are optional
|
|
310
|
+
comment: 'tenantName',
|
|
311
|
+
defaultValue: 'root',
|
|
312
|
+
},
|
|
313
|
+
},
|
|
314
|
+
name: 'tenantName',
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
},
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
// Override the distribution configuration to enable multi-tenancy.
|
|
321
|
+
cfnDistribution.distributionConfig = distributionConfig;
|
|
322
|
+
|
|
323
|
+
// Create a connection group so we have access to the RoutingEndpoint associated with the tenant we are about to create
|
|
324
|
+
const connectionGroup = new cloudfront.CfnConnectionGroup(this, 'self-hosted-connection-group', {
|
|
325
|
+
enabled: true,
|
|
326
|
+
ipv6Enabled: true,
|
|
327
|
+
name: 'self-hosted-connection-group',
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
// Export the RoutingEndpoint, skip this step if you'd prefer to fetch it from the CloudFront console or via Cloudfront.ListConnectionGroups API
|
|
331
|
+
new CfnOutput(this, 'RoutingEndpoint', {
|
|
332
|
+
value: connectionGroup.attrRoutingEndpoint,
|
|
333
|
+
description: 'CloudFront Routing Endpoint to be added to my hosted zone CNAME records',
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
// Create a distribution tenant with a self-hosted domain.
|
|
337
|
+
const selfHostedTenant = new cloudfront.CfnDistributionTenant(this, 'self-hosted-tenant', {
|
|
338
|
+
distributionId: myMultiTenantDistribution.distributionId,
|
|
339
|
+
connectionGroupId: connectionGroup.attrId,
|
|
340
|
+
name: 'self-hosted-tenant',
|
|
341
|
+
domains: ['self-hosted-tenant.my.domain.com'],
|
|
342
|
+
enabled: true,
|
|
343
|
+
managedCertificateRequest: {
|
|
344
|
+
primaryDomainName: 'self-hosted-tenant.my.domain.com',
|
|
345
|
+
validationTokenHost: 'self-hosted',
|
|
346
|
+
},
|
|
347
|
+
});
|
|
348
|
+
```
|
|
349
|
+
While CDK is deploying, it will attempt to validate domain ownership by confirming that a validation token is served directly from your domain, or via http redirect.
|
|
350
|
+
|
|
351
|
+
[follow the steps here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managed-cloudfront-certificates.html#complete-domain-ownership) to complete domain setup before deploying this CDK stack, or while CDK is in the waiting state during tenant creation. Refer to the section "I have existing traffic"
|
|
352
|
+
|
|
353
|
+
A simple option for validating via http redirect, would be to add a rewrite rule like so to your server (Apache in this example)
|
|
354
|
+
```
|
|
355
|
+
RewriteEngine On
|
|
356
|
+
RewriteCond %{REQUEST_URI} ^/\.well-known/pki-validation/(.+)$ [NC]
|
|
357
|
+
RewriteRule ^(.*)$ https://validation.us-east-1.acm-validations.aws/%{ENV:AWS_ACCOUNT_ID}/.well-known/pki-validation/%1 [R=301,L]
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Then, when you are ready to accept traffic, follow the steps [here](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/managed-cloudfront-certificates.html#point-domains-to-cloudfront) using the RoutingEndpoint from above to configure DNS to point to CloudFront.
|
|
70
361
|
|
|
71
362
|
### VPC origins
|
|
72
363
|
|
|
@@ -548,7 +839,7 @@ const functionVersion = lambda.Version.fromVersionArn(this, 'Version', 'arn:aws:
|
|
|
548
839
|
|
|
549
840
|
new cloudfront.Distribution(this, 'distro', {
|
|
550
841
|
defaultBehavior: {
|
|
551
|
-
origin:
|
|
842
|
+
origin: origins.S3BucketOrigin.withOriginAccessControl(s3Bucket),
|
|
552
843
|
edgeLambdas: [
|
|
553
844
|
{
|
|
554
845
|
functionVersion,
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront-origins/README.md
CHANGED
|
@@ -577,6 +577,7 @@ const origin = new origins.LoadBalancerV2Origin(loadBalancer, {
|
|
|
577
577
|
connectionAttempts: 3,
|
|
578
578
|
connectionTimeout: Duration.seconds(5),
|
|
579
579
|
readTimeout: Duration.seconds(45),
|
|
580
|
+
responseCompletionTimeout: Duration.seconds(120),
|
|
580
581
|
keepaliveTimeout: Duration.seconds(45),
|
|
581
582
|
protocolPolicy: cloudfront.OriginProtocolPolicy.MATCH_VIEWER,
|
|
582
583
|
});
|
|
@@ -596,6 +597,36 @@ new cloudfront.Distribution(this, 'myDist', {
|
|
|
596
597
|
});
|
|
597
598
|
```
|
|
598
599
|
|
|
600
|
+
You can specify the IP address type for connecting to the origin:
|
|
601
|
+
|
|
602
|
+
```ts
|
|
603
|
+
const origin = new origins.HttpOrigin('www.example.com', {
|
|
604
|
+
ipAddressType: cloudfront.OriginIpAddressType.IPV6, // IPv4, IPv6, or DUALSTACK
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
new cloudfront.Distribution(this, 'Distribution', {
|
|
608
|
+
defaultBehavior: { origin },
|
|
609
|
+
});
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
The `ipAddressType` property allows you to specify whether CloudFront should use IPv4, IPv6, or both (dual-stack) when connecting to your origin.
|
|
613
|
+
|
|
614
|
+
The origin can be customized with timeout settings to handle different response scenarios:
|
|
615
|
+
|
|
616
|
+
```ts
|
|
617
|
+
new cloudfront.Distribution(this, 'Distribution', {
|
|
618
|
+
defaultBehavior: {
|
|
619
|
+
origin: new origins.HttpOrigin('api.example.com', {
|
|
620
|
+
readTimeout: Duration.seconds(60),
|
|
621
|
+
responseCompletionTimeout: Duration.seconds(120),
|
|
622
|
+
keepaliveTimeout: Duration.seconds(45),
|
|
623
|
+
}),
|
|
624
|
+
},
|
|
625
|
+
});
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
The `responseCompletionTimeout` property specifies the time that a request from CloudFront to the origin can stay open and wait for a response. If the complete response isn't received from the origin by this time, CloudFront ends the connection. Valid values are 1-3600 seconds, and if set, the value must be equal to or greater than the `readTimeout` value.
|
|
629
|
+
|
|
599
630
|
See the documentation of `aws-cdk-lib/aws-cloudfront` for more information.
|
|
600
631
|
|
|
601
632
|
## VPC origins
|
|
@@ -801,6 +832,58 @@ new cloudfront.Distribution(this, 'Distribution', {
|
|
|
801
832
|
});
|
|
802
833
|
```
|
|
803
834
|
|
|
835
|
+
You can also configure timeout settings for Lambda Function URL origins:
|
|
836
|
+
|
|
837
|
+
```ts
|
|
838
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
839
|
+
|
|
840
|
+
declare const fn: lambda.Function;
|
|
841
|
+
const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });
|
|
842
|
+
|
|
843
|
+
new cloudfront.Distribution(this, 'Distribution', {
|
|
844
|
+
defaultBehavior: {
|
|
845
|
+
origin: new origins.FunctionUrlOrigin(fnUrl, {
|
|
846
|
+
readTimeout: Duration.seconds(30),
|
|
847
|
+
responseCompletionTimeout: Duration.seconds(90),
|
|
848
|
+
keepaliveTimeout: Duration.seconds(45),
|
|
849
|
+
}),
|
|
850
|
+
},
|
|
851
|
+
});
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
### Configuring IP Address Type
|
|
855
|
+
|
|
856
|
+
You can specify which IP protocol CloudFront uses when connecting to your Lambda Function URL origin. By default, CloudFront uses IPv4 only.
|
|
857
|
+
|
|
858
|
+
```ts
|
|
859
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
860
|
+
import { OriginIpAddressType } from 'aws-cdk-lib/aws-cloudfront';
|
|
861
|
+
|
|
862
|
+
declare const fn: lambda.Function;
|
|
863
|
+
const fnUrl = fn.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE });
|
|
864
|
+
|
|
865
|
+
// Uses default IPv4 only
|
|
866
|
+
new cloudfront.Distribution(this, 'Distribution', {
|
|
867
|
+
defaultBehavior: {
|
|
868
|
+
origin: new origins.FunctionUrlOrigin(fnUrl)
|
|
869
|
+
},
|
|
870
|
+
});
|
|
871
|
+
|
|
872
|
+
// Explicitly specify IP address type
|
|
873
|
+
new cloudfront.Distribution(this, 'Distribution', {
|
|
874
|
+
defaultBehavior: {
|
|
875
|
+
origin: new origins.FunctionUrlOrigin(fnUrl, {
|
|
876
|
+
ipAddressType: OriginIpAddressType.DUALSTACK, // Use both IPv4 and IPv6
|
|
877
|
+
})
|
|
878
|
+
},
|
|
879
|
+
});
|
|
880
|
+
```
|
|
881
|
+
|
|
882
|
+
Supported values for `ipAddressType`:
|
|
883
|
+
- `OriginIpAddressType.IPV4` - CloudFront uses IPv4 only to connect to the origin (default)
|
|
884
|
+
- `OriginIpAddressType.IPV6` - CloudFront uses IPv6 only to connect to the origin
|
|
885
|
+
- `OriginIpAddressType.DUALSTACK` - CloudFront uses both IPv4 and IPv6 to connect to the origin
|
|
886
|
+
|
|
804
887
|
### Lambda Function URL with Origin Access Control (OAC)
|
|
805
888
|
You can configure the Lambda Function URL with Origin Access Control (OAC) for enhanced security. When using OAC with Signing SIGV4_ALWAYS, it is recommended to set the Lambda Function URL authType to AWS_IAM to ensure proper authorization.
|
|
806
889
|
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
2
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
3
|
+
import { FunctionUrlOrigin } from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
4
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
5
|
+
import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
import { OriginIpAddressType } from 'aws-cdk-lib/aws-cloudfront';
|
|
7
|
+
|
|
8
|
+
const app = new App();
|
|
9
|
+
const stack = new Stack(app, 'FunctionUrlOriginIpAddressTypeStack');
|
|
10
|
+
|
|
11
|
+
// Lambda function
|
|
12
|
+
const fn = new lambda.Function(stack, 'TestFunction', {
|
|
13
|
+
code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200, body: "Hello" });'),
|
|
14
|
+
handler: 'index.handler',
|
|
15
|
+
runtime: lambda.Runtime.NODEJS_20_X,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Function URL with IAM auth
|
|
19
|
+
const fnUrl = fn.addFunctionUrl({
|
|
20
|
+
authType: lambda.FunctionUrlAuthType.AWS_IAM,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// CloudFront distribution with IPv4 IP address type
|
|
24
|
+
new cloudfront.Distribution(stack, 'DistributionWithoutIpAddressTypeProp(IPv4)', {
|
|
25
|
+
defaultBehavior: {
|
|
26
|
+
origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {}),
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// CloudFront distribution with IPv4 IP address type
|
|
31
|
+
const distributionIPv4 = new cloudfront.Distribution(stack, 'DistributionWithIPv4', {
|
|
32
|
+
defaultBehavior: {
|
|
33
|
+
origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
|
|
34
|
+
ipAddressType: OriginIpAddressType.IPV4,
|
|
35
|
+
}),
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// CloudFront distribution with IPv6 IP address type
|
|
40
|
+
const distributionIPv6 = new cloudfront.Distribution(stack, 'DistributionWithIPv6', {
|
|
41
|
+
defaultBehavior: {
|
|
42
|
+
origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
|
|
43
|
+
ipAddressType: OriginIpAddressType.IPV6,
|
|
44
|
+
}),
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// CloudFront distribution with dualstack IP address type
|
|
49
|
+
const distributionDualstack = new cloudfront.Distribution(stack, 'DistributionWithDualstack', {
|
|
50
|
+
defaultBehavior: {
|
|
51
|
+
origin: FunctionUrlOrigin.withOriginAccessControl(fnUrl, {
|
|
52
|
+
ipAddressType: OriginIpAddressType.DUALSTACK,
|
|
53
|
+
}),
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const integ = new IntegTest(app, 'FunctionUrlOriginIpAddressTypeTest', {
|
|
58
|
+
testCases: [stack],
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Assert that distributions are created with expected IP address type settings
|
|
62
|
+
integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
|
|
63
|
+
Id: distributionIPv4.distributionId,
|
|
64
|
+
}).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(true));
|
|
65
|
+
|
|
66
|
+
integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
|
|
67
|
+
Id: distributionIPv4.distributionId,
|
|
68
|
+
}).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(false));
|
|
69
|
+
|
|
70
|
+
integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
|
|
71
|
+
Id: distributionIPv6.distributionId,
|
|
72
|
+
}).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(false));
|
|
73
|
+
|
|
74
|
+
integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
|
|
75
|
+
Id: distributionIPv6.distributionId,
|
|
76
|
+
}).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(true));
|
|
77
|
+
|
|
78
|
+
integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
|
|
79
|
+
Id: distributionDualstack.distributionId,
|
|
80
|
+
}).assertAtPath('Distribution.DistributionConfig.IsIPV4Enabled', ExpectedResult.exact(true));
|
|
81
|
+
|
|
82
|
+
integ.assertions.awsApiCall('CloudFront', 'getDistribution', {
|
|
83
|
+
Id: distributionDualstack.distributionId,
|
|
84
|
+
}).assertAtPath('Distribution.DistributionConfig.IsIPV6Enabled', ExpectedResult.exact(true));
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
2
2
|
import * as cdk from 'aws-cdk-lib';
|
|
3
3
|
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
4
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
4
5
|
|
|
5
6
|
const app = new cdk.App();
|
|
6
7
|
|
|
7
8
|
const stack = new cdk.Stack(app, 'cloudfront-http-origin');
|
|
8
9
|
|
|
9
10
|
new cloudfront.Distribution(stack, 'Distribution', {
|
|
10
|
-
defaultBehavior: { origin: new origins.HttpOrigin('www.example.com') },
|
|
11
|
+
defaultBehavior: { origin: new origins.HttpOrigin('www.example.com', { ipAddressType: cloudfront.OriginIpAddressType.DUALSTACK }) },
|
|
11
12
|
});
|
|
12
13
|
|
|
13
|
-
app
|
|
14
|
+
new IntegTest(app, 'http-origin-test-integ', {
|
|
15
|
+
testCases: [stack],
|
|
16
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
2
|
+
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
3
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
4
|
+
import * as cdk from 'aws-cdk-lib';
|
|
5
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
6
|
+
|
|
7
|
+
const app = new cdk.App();
|
|
8
|
+
const stack = new cdk.Stack(app, 'integ-cloudfront-response-completion-timeout');
|
|
9
|
+
|
|
10
|
+
const httpOrigin = new origins.HttpOrigin('example.com', {
|
|
11
|
+
responseCompletionTimeout: cdk.Duration.seconds(120),
|
|
12
|
+
readTimeout: cdk.Duration.seconds(60),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const fn = new lambda.Function(stack, 'Function', {
|
|
16
|
+
runtime: lambda.Runtime.NODEJS_20_X,
|
|
17
|
+
handler: 'index.handler',
|
|
18
|
+
code: lambda.Code.fromInline('exports.handler = async () => ({ statusCode: 200, body: "Hello from Lambda!" });'),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const fnUrl = fn.addFunctionUrl({
|
|
22
|
+
authType: lambda.FunctionUrlAuthType.NONE,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const functionUrlOrigin = new origins.FunctionUrlOrigin(fnUrl, {
|
|
26
|
+
responseCompletionTimeout: cdk.Duration.seconds(90),
|
|
27
|
+
readTimeout: cdk.Duration.seconds(30),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const httpOriginNoReadTimeout = new origins.HttpOrigin('api.example.com', {
|
|
31
|
+
responseCompletionTimeout: cdk.Duration.seconds(300),
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
new cloudfront.Distribution(stack, 'Distribution', {
|
|
35
|
+
defaultBehavior: {
|
|
36
|
+
origin: httpOrigin,
|
|
37
|
+
},
|
|
38
|
+
additionalBehaviors: {
|
|
39
|
+
'/api/*': {
|
|
40
|
+
origin: functionUrlOrigin,
|
|
41
|
+
},
|
|
42
|
+
'/files/*': {
|
|
43
|
+
origin: httpOriginNoReadTimeout,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
new IntegTest(app, 'CloudFrontResponseCompletionTimeoutTest', {
|
|
49
|
+
testCases: [stack],
|
|
50
|
+
});
|
|
@@ -13,7 +13,7 @@ const stack = new cdk.Stack(app, 'integ-cloudtrail-data-events');
|
|
|
13
13
|
|
|
14
14
|
const bucket = new s3.Bucket(stack, 'Bucket', { removalPolicy: cdk.RemovalPolicy.DESTROY });
|
|
15
15
|
const lambdaFunction = new lambda.Function(stack, 'LambdaFunction', {
|
|
16
|
-
runtime: lambda.Runtime.
|
|
16
|
+
runtime: lambda.Runtime.NODEJS_20_X,
|
|
17
17
|
handler: 'hello.handler',
|
|
18
18
|
code: lambda.Code.fromInline('exports.handler = {}'),
|
|
19
19
|
});
|