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
|
@@ -53,6 +53,39 @@ const metric = new cloudwatch.Metric({
|
|
|
53
53
|
});
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
### Metric ID
|
|
57
|
+
|
|
58
|
+
Metrics can be assigned a unique identifier using the `id` property. This is
|
|
59
|
+
useful when referencing metrics in math expressions:
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
const metric = new cloudwatch.Metric({
|
|
63
|
+
namespace: 'AWS/Lambda',
|
|
64
|
+
metricName: 'Invocations',
|
|
65
|
+
dimensionsMap: {
|
|
66
|
+
FunctionName: 'MyFunction'
|
|
67
|
+
},
|
|
68
|
+
id: 'invocations'
|
|
69
|
+
});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The `id` must start with a lowercase letter and can only contain letters, numbers, and underscores.
|
|
73
|
+
|
|
74
|
+
### Metric Visible
|
|
75
|
+
Metrics can be hidden from dashboard graphs using the `visible` property:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
declare const fn: lambda.Function;
|
|
79
|
+
|
|
80
|
+
const metric = fn.metricErrors({
|
|
81
|
+
visible: false
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
By default, all metrics are visible (`visible: true`). Setting `visible: false`
|
|
86
|
+
hides the metric from dashboard visualizations while still allowing it to be
|
|
87
|
+
used in math expressions given that it has an `id` set to it.
|
|
88
|
+
|
|
56
89
|
### Metric Math
|
|
57
90
|
|
|
58
91
|
Math expressions are supported by instantiating the `MathExpression` class.
|
|
@@ -86,21 +119,45 @@ const problemPercentage = new cloudwatch.MathExpression({
|
|
|
86
119
|
});
|
|
87
120
|
```
|
|
88
121
|
|
|
89
|
-
###
|
|
122
|
+
### Metric ID Usage in Math Expressions
|
|
90
123
|
|
|
91
|
-
|
|
92
|
-
search expression returns all CPUUtilization metrics that it finds, with the
|
|
93
|
-
graph showing the Average statistic with an aggregation period of 5 minutes:
|
|
124
|
+
When metrics have custom IDs, you can reference them directly in math expressions.
|
|
94
125
|
|
|
95
126
|
```ts
|
|
96
|
-
const
|
|
97
|
-
expression: "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 300)",
|
|
127
|
+
declare const fn: lambda.Function;
|
|
98
128
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
129
|
+
const invocations = fn.metricInvocations({
|
|
130
|
+
id: 'lambda_invocations',
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
const errors = fn.metricErrors({
|
|
134
|
+
id: 'lambda_errors',
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
When metrics have predefined IDs, they can be referenced directly in math expressions by their ID without requiring the `usingMetrics` property.
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
const errorRate = new cloudwatch.MathExpression({
|
|
142
|
+
expression: 'lambda_errors / lambda_invocations * 100',
|
|
143
|
+
label: 'Error Rate (%)',
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Search Expressions
|
|
148
|
+
|
|
149
|
+
Search expressions allow you to dynamically discover and display metrics that match specific criteria, making them ideal for monitoring dynamic infrastructure where the exact metrics aren't known in advance. A single search expression can return up to 500 time series.
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
#### Using SearchExpression Class
|
|
153
|
+
|
|
154
|
+
Following is an example of a search expression that returns all CPUUtilization metrics with the graph showing the Average statistic with an aggregation period of 5 minutes:
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
const cpuUtilization = new cloudwatch.SearchExpression({
|
|
158
|
+
expression: "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 900)",
|
|
159
|
+
label: 'EC2 CPU Utilization',
|
|
160
|
+
color: '#ff7f0e',
|
|
104
161
|
});
|
|
105
162
|
```
|
|
106
163
|
|
|
@@ -108,6 +165,15 @@ Cross-account and cross-region search expressions are also supported. Use
|
|
|
108
165
|
the `searchAccount` and `searchRegion` properties to specify the account
|
|
109
166
|
and/or region to evaluate the search expression against.
|
|
110
167
|
|
|
168
|
+
```ts
|
|
169
|
+
const crossAccountSearch = new cloudwatch.SearchExpression({
|
|
170
|
+
expression: "SEARCH('{AWS/Lambda,FunctionName} MetricName=\"Invocations\"', 'Sum', 300)",
|
|
171
|
+
searchAccount: '123456789012',
|
|
172
|
+
searchRegion: 'us-west-2',
|
|
173
|
+
label: 'Production Lambda Invocations',
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
111
177
|
### Aggregation
|
|
112
178
|
|
|
113
179
|
To graph or alarm on metrics you must aggregate them first, using a function
|
|
@@ -413,7 +479,7 @@ const metric = new cloudwatch.Metric({
|
|
|
413
479
|
namespace: 'AWS/EC2',
|
|
414
480
|
metricName: 'CPUUtilization',
|
|
415
481
|
statistic: 'Average',
|
|
416
|
-
period: Duration.
|
|
482
|
+
period: Duration.hours(1), // Alarm will use the metric's period
|
|
417
483
|
});
|
|
418
484
|
|
|
419
485
|
// Create an anomaly detection alarm
|
|
@@ -534,6 +600,19 @@ dashboard.addWidgets(new cloudwatch.GraphWidget({
|
|
|
534
600
|
}));
|
|
535
601
|
```
|
|
536
602
|
|
|
603
|
+
The `displayLabelsOnChart` property can be set to `true` to show labels on the chart. Note that this only has an effect when the `view` property is set to `cloudwatch.GraphWidgetView.PIE`.
|
|
604
|
+
|
|
605
|
+
```ts
|
|
606
|
+
declare const dashboard: cloudwatch.Dashboard;
|
|
607
|
+
|
|
608
|
+
dashboard.addWidgets(new cloudwatch.GraphWidget({
|
|
609
|
+
// ...
|
|
610
|
+
|
|
611
|
+
view: cloudwatch.GraphWidgetView.PIE,
|
|
612
|
+
displayLabelsOnChart: true,
|
|
613
|
+
}));
|
|
614
|
+
```
|
|
615
|
+
|
|
537
616
|
The `start` and `end` properties can be used to specify the time range for each graph widget independently from those of the dashboard.
|
|
538
617
|
The parameters can be specified at `GraphWidget`, `GaugeWidget`, and `SingleValueWidget`.
|
|
539
618
|
|
|
@@ -790,6 +869,19 @@ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
|
|
|
790
869
|
}));
|
|
791
870
|
```
|
|
792
871
|
|
|
872
|
+
Log Insights QL is the default query language. You may specify an [alternate query language: OpenSearch PPL or SQL](https://aws.amazon.com/blogs/aws/new-amazon-cloudwatch-and-amazon-opensearch-service-launch-an-integrated-analytics-experience/), if desired:
|
|
873
|
+
|
|
874
|
+
```ts
|
|
875
|
+
declare const dashboard: cloudwatch.Dashboard;
|
|
876
|
+
|
|
877
|
+
dashboard.addWidgets(new cloudwatch.LogQueryWidget({
|
|
878
|
+
logGroupNames: ['my-log-group'],
|
|
879
|
+
view: cloudwatch.LogQueryVisualizationType.TABLE,
|
|
880
|
+
queryString: "SELECT count(*) as count FROM 'my-log-group'",
|
|
881
|
+
queryLanguage: cloudwatch.LogQueryLanguage.SQL,
|
|
882
|
+
}));
|
|
883
|
+
```
|
|
884
|
+
|
|
793
885
|
### Custom widget
|
|
794
886
|
|
|
795
887
|
A `CustomWidget` shows the result of an AWS Lambda function:
|
|
@@ -94,6 +94,18 @@ dashboard.addWidgets(new cloudwatch.LogQueryWidget({
|
|
|
94
94
|
| filter @message like /Error/`,
|
|
95
95
|
accountId: '123456789012',
|
|
96
96
|
}));
|
|
97
|
+
dashboard.addWidgets(new cloudwatch.LogQueryWidget({
|
|
98
|
+
title: 'Errors in my log group - SQL',
|
|
99
|
+
logGroupNames: ['my-log-group'],
|
|
100
|
+
queryString: "SELECT count(*) as count FROM 'my-log-group'",
|
|
101
|
+
queryLanguage: cloudwatch.LogQueryLanguage.SQL,
|
|
102
|
+
}));
|
|
103
|
+
dashboard.addWidgets(new cloudwatch.LogQueryWidget({
|
|
104
|
+
title: 'Errors in my log group - PPL',
|
|
105
|
+
logGroupNames: ['my-log-group'],
|
|
106
|
+
queryString: 'fields `@message`\ | sort - `@timestamp`',
|
|
107
|
+
queryLanguage: cloudwatch.LogQueryLanguage.PPL,
|
|
108
|
+
}));
|
|
97
109
|
dashboard.addWidgets(new cloudwatch.SingleValueWidget({
|
|
98
110
|
title: 'Sent message size',
|
|
99
111
|
metrics: [sentMessageSizeMetric],
|
|
@@ -5,12 +5,19 @@ import { Metric, ComparisonOperator, AnomalyDetectionAlarm, Alarm } from 'aws-cd
|
|
|
5
5
|
const app = new App();
|
|
6
6
|
const stack = new Stack(app, 'AnomalyDetectionAlarmTestStack');
|
|
7
7
|
|
|
8
|
-
// Create the test metric
|
|
8
|
+
// Create the test metric. Period will default to 300 seconds.
|
|
9
9
|
const metric = new Metric({
|
|
10
10
|
namespace: 'AWS/EC2',
|
|
11
11
|
metricName: 'CPUUtilization',
|
|
12
12
|
statistic: 'Average',
|
|
13
|
-
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
// Create test metric with custom period
|
|
16
|
+
const customPeriodMetric = new Metric({
|
|
17
|
+
namespace: 'AWS/EC2',
|
|
18
|
+
metricName: 'CPUUtilization',
|
|
19
|
+
statistic: 'Average',
|
|
20
|
+
period: Duration.days(1),
|
|
14
21
|
});
|
|
15
22
|
|
|
16
23
|
// Create an anomaly detection alarm with default operator
|
|
@@ -40,6 +47,14 @@ const descriptiveAlarm = Metric.anomalyDetectionFor({
|
|
|
40
47
|
comparisonOperator: ComparisonOperator.GREATER_THAN_UPPER_THRESHOLD,
|
|
41
48
|
});
|
|
42
49
|
|
|
50
|
+
// Create an anomaly detection alarm with custom period
|
|
51
|
+
const customPeriodAlarm = new AnomalyDetectionAlarm(stack, 'CustomPeriodAnomalyAlarm', {
|
|
52
|
+
metric: customPeriodMetric,
|
|
53
|
+
stdDevs: 2,
|
|
54
|
+
evaluationPeriods: 1,
|
|
55
|
+
comparisonOperator: ComparisonOperator.LESS_THAN_LOWER_OR_GREATER_THAN_UPPER_THRESHOLD,
|
|
56
|
+
});
|
|
57
|
+
|
|
43
58
|
// Create the integration test
|
|
44
59
|
const integ = new IntegTest(app, 'AnomalyDetectionAlarmIntegTest', {
|
|
45
60
|
testCases: [stack],
|
|
@@ -122,3 +137,30 @@ integ.assertions
|
|
|
122
137
|
}),
|
|
123
138
|
]),
|
|
124
139
|
}));
|
|
140
|
+
|
|
141
|
+
integ.assertions
|
|
142
|
+
.awsApiCall('CloudWatch', 'describeAlarms', {
|
|
143
|
+
AlarmNames: [customPeriodAlarm.alarmName],
|
|
144
|
+
})
|
|
145
|
+
.expect(ExpectedResult.objectLike({
|
|
146
|
+
MetricAlarms: Match.arrayWith([
|
|
147
|
+
Match.objectLike({
|
|
148
|
+
ComparisonOperator: 'LessThanLowerOrGreaterThanUpperThreshold',
|
|
149
|
+
EvaluationPeriods: 1,
|
|
150
|
+
ThresholdMetricId: 'expr_1',
|
|
151
|
+
Metrics: Match.arrayWith([
|
|
152
|
+
Match.objectLike({
|
|
153
|
+
Expression: 'ANOMALY_DETECTION_BAND(m0, 2)',
|
|
154
|
+
Id: 'expr_1',
|
|
155
|
+
ReturnData: true,
|
|
156
|
+
}),
|
|
157
|
+
Match.objectLike({
|
|
158
|
+
Id: 'm0',
|
|
159
|
+
MetricStat: Match.objectLike({
|
|
160
|
+
Period: 86400, // 1 day in seconds, orignal metric period got overriden
|
|
161
|
+
}),
|
|
162
|
+
}),
|
|
163
|
+
]),
|
|
164
|
+
}),
|
|
165
|
+
]),
|
|
166
|
+
}));
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { App, Stack, StackProps } from 'aws-cdk-lib';
|
|
2
|
+
import {
|
|
3
|
+
Dashboard,
|
|
4
|
+
GraphWidget,
|
|
5
|
+
GraphWidgetProps,
|
|
6
|
+
GraphWidgetView,
|
|
7
|
+
Metric,
|
|
8
|
+
Shading,
|
|
9
|
+
Stats,
|
|
10
|
+
VerticalShading,
|
|
11
|
+
} from 'aws-cdk-lib/aws-cloudwatch';
|
|
12
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
13
|
+
|
|
14
|
+
class DashboardWithGraphWidgetWithLabelsVisibleIntegrationTest extends Stack {
|
|
15
|
+
constructor(scope: App, id: string, props?: StackProps) {
|
|
16
|
+
super(scope, id, props);
|
|
17
|
+
const dashboard = new Dashboard(this, 'Dash');
|
|
18
|
+
const metrics = [
|
|
19
|
+
new Metric({
|
|
20
|
+
namespace: 'CDK/Test',
|
|
21
|
+
metricName: 'Metric',
|
|
22
|
+
label: 'Metric left 1 - p99',
|
|
23
|
+
statistic: Stats.p(99),
|
|
24
|
+
}),
|
|
25
|
+
|
|
26
|
+
new Metric({
|
|
27
|
+
namespace: 'CDK/Test',
|
|
28
|
+
metricName: 'Metric',
|
|
29
|
+
label: 'Metric left 2 - TC_10P_90P',
|
|
30
|
+
statistic: Stats.tc(10, 90),
|
|
31
|
+
}),
|
|
32
|
+
|
|
33
|
+
new Metric({
|
|
34
|
+
namespace: 'CDK/Test',
|
|
35
|
+
metricName: 'Metric',
|
|
36
|
+
label: 'Metric left 3 - TS(5%:95%)',
|
|
37
|
+
statistic: 'TS(5%:95%)',
|
|
38
|
+
}),
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const widgetProps: GraphWidgetProps = {
|
|
42
|
+
title: 'My fancy graph',
|
|
43
|
+
left: metrics,
|
|
44
|
+
right: [],
|
|
45
|
+
view: GraphWidgetView.PIE,
|
|
46
|
+
leftAnnotations: [
|
|
47
|
+
{
|
|
48
|
+
value: 10,
|
|
49
|
+
label: 'Left annotation',
|
|
50
|
+
color: '#00ff00',
|
|
51
|
+
fill: Shading.ABOVE,
|
|
52
|
+
visible: true,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
rightAnnotations: [
|
|
56
|
+
{
|
|
57
|
+
value: 20,
|
|
58
|
+
label: 'Right annotation',
|
|
59
|
+
color: '#e30d0d',
|
|
60
|
+
fill: Shading.BELOW,
|
|
61
|
+
visible: false,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
verticalAnnotations: [
|
|
65
|
+
{
|
|
66
|
+
date: '2023-08-20T00:00:00.000Z',
|
|
67
|
+
label: 'Vertical annotation',
|
|
68
|
+
color: '#2556f6',
|
|
69
|
+
fill: VerticalShading.AFTER,
|
|
70
|
+
visible: true,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
dashboard.addWidgets(
|
|
76
|
+
new GraphWidget({
|
|
77
|
+
...widgetProps,
|
|
78
|
+
displayLabelsOnChart: true,
|
|
79
|
+
}),
|
|
80
|
+
new GraphWidget({
|
|
81
|
+
...widgetProps,
|
|
82
|
+
displayLabelsOnChart: false,
|
|
83
|
+
}),
|
|
84
|
+
new GraphWidget(widgetProps),
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const app = new App();
|
|
90
|
+
new IntegTest(app, 'cdk-integ-dashboard-with-graph-widget-with-annotations', {
|
|
91
|
+
testCases: [new DashboardWithGraphWidgetWithLabelsVisibleIntegrationTest(app, 'DashboardWithGraphWidgetWithLabelsVisibleIntegrationTest')],
|
|
92
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { App, Stack, StackProps } from 'aws-cdk-lib';
|
|
2
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
3
|
+
import { Dashboard, Metric, GraphWidget, MathExpression } from 'aws-cdk-lib/aws-cloudwatch';
|
|
4
|
+
|
|
5
|
+
class DashboardWithMetricIdAndVisibleIntegrationTest extends Stack {
|
|
6
|
+
constructor(scope: App, id: string, props?: StackProps) {
|
|
7
|
+
super(scope, id, props);
|
|
8
|
+
|
|
9
|
+
const dashboard = new Dashboard(this, 'Dash');
|
|
10
|
+
|
|
11
|
+
const lambdaInvocations = new Metric({
|
|
12
|
+
namespace: 'AWS/Lambda',
|
|
13
|
+
metricName: 'Invocations',
|
|
14
|
+
dimensionsMap: { FunctionName: 'test-function' },
|
|
15
|
+
label: 'Lambda Invocations',
|
|
16
|
+
id: 'lambda_invocations',
|
|
17
|
+
visible: true,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const lambdaErrors = new Metric({
|
|
21
|
+
namespace: 'AWS/Lambda',
|
|
22
|
+
metricName: 'Errors',
|
|
23
|
+
dimensionsMap: { FunctionName: 'test-function' },
|
|
24
|
+
label: 'Lambda Errors (Hidden for calculation)',
|
|
25
|
+
id: 'lambda_errors',
|
|
26
|
+
visible: false,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const lambdaDuration = new Metric({
|
|
30
|
+
namespace: 'AWS/Lambda',
|
|
31
|
+
metricName: 'Duration',
|
|
32
|
+
dimensionsMap: { FunctionName: 'test-function' },
|
|
33
|
+
label: 'Lambda Duration',
|
|
34
|
+
id: 'lambda_duration',
|
|
35
|
+
visible: true,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const lambdaThrottles = new Metric({
|
|
39
|
+
namespace: 'AWS/Lambda',
|
|
40
|
+
metricName: 'Throttles',
|
|
41
|
+
dimensionsMap: { FunctionName: 'test-function' },
|
|
42
|
+
label: 'Lambda Throttles (Hidden)',
|
|
43
|
+
id: 'lambda_throttles',
|
|
44
|
+
visible: false,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const errorRate = new MathExpression({
|
|
48
|
+
expression: 'lambda_errors / lambda_invocations * 100',
|
|
49
|
+
label: 'Error Rate (%)',
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const widget = new GraphWidget({
|
|
53
|
+
title: 'Lambda Metrics with ID and Visible Properties',
|
|
54
|
+
left: [
|
|
55
|
+
lambdaInvocations,
|
|
56
|
+
lambdaErrors,
|
|
57
|
+
lambdaDuration,
|
|
58
|
+
lambdaThrottles,
|
|
59
|
+
errorRate,
|
|
60
|
+
],
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
dashboard.addWidgets(widget);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const app = new App();
|
|
68
|
+
new IntegTest(app, 'cdk-integ-dashboard-with-metric-id-and-visible', {
|
|
69
|
+
testCases: [new DashboardWithMetricIdAndVisibleIntegrationTest(app, 'DashboardWithMetricIdAndVisibleIntegrationTest')],
|
|
70
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib';
|
|
3
|
+
import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
|
|
4
|
+
|
|
5
|
+
class SearchExpressionStack extends cdk.Stack {
|
|
6
|
+
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
|
|
7
|
+
super(scope, id, props);
|
|
8
|
+
|
|
9
|
+
const minimalSearchExpression = new cloudwatch.SearchExpression({
|
|
10
|
+
expression: "SEARCH('{AWS/EC2,InstanceId} CPUUtilization', 'Average', 300)",
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const customSearchExpression = new cloudwatch.SearchExpression({
|
|
14
|
+
expression: "SEARCH('{AWS/Lambda,FunctionName} Duration', 'Average', 300)",
|
|
15
|
+
label: 'Custom Lambda Duration',
|
|
16
|
+
color: '#e377c2',
|
|
17
|
+
period: cdk.Duration.minutes(10),
|
|
18
|
+
searchAccount: '123456789012',
|
|
19
|
+
searchRegion: 'us-west-2',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const crossAccountRegionSearchExpression = new cloudwatch.SearchExpression({
|
|
23
|
+
expression: "SEARCH('{AWS/S3,BucketName} BucketSizeBytes', 'Average', 86400)",
|
|
24
|
+
label: 'Cross-Account Cross-Region S3',
|
|
25
|
+
color: '#9467bd',
|
|
26
|
+
period: cdk.Duration.hours(1),
|
|
27
|
+
searchAccount: '123456789012',
|
|
28
|
+
searchRegion: 'ap-southeast-1',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const dashboard = new cloudwatch.Dashboard(this, 'SearchExpressionDashboard', {
|
|
32
|
+
dashboardName: 'SearchExpressionTestDashboard',
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const searchExpressionWidget = new cloudwatch.GraphWidget({
|
|
36
|
+
title: 'Minimal vs Custom Properties',
|
|
37
|
+
width: 24,
|
|
38
|
+
height: 6,
|
|
39
|
+
left: [minimalSearchExpression],
|
|
40
|
+
right: [customSearchExpression, crossAccountRegionSearchExpression],
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
dashboard.addWidgets(searchExpressionWidget);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const app = new cdk.App();
|
|
48
|
+
|
|
49
|
+
new IntegTest(app, 'SearchExpressionIntegTest', {
|
|
50
|
+
testCases: [new SearchExpressionStack(app, 'SearchExpressionStack')],
|
|
51
|
+
});
|
|
@@ -258,9 +258,73 @@ new codebuild.Project(this, 'Project', {
|
|
|
258
258
|
});
|
|
259
259
|
```
|
|
260
260
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
the
|
|
261
|
+
If you want to [share the same cache between multiple projects](https://docs.aws.amazon.com/codebuild/latest/userguide/caching-s3.html#caching-s3-sharing), you must must do the following:
|
|
262
|
+
|
|
263
|
+
- Use the same `cacheNamespace`.
|
|
264
|
+
- Specify the same cache key.
|
|
265
|
+
- Define identical cache paths.
|
|
266
|
+
- Use the same Amazon S3 buckets and `pathPrefix` if set.
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
declare const sourceBucket: s3.Bucket;
|
|
270
|
+
declare const myCachingBucket: s3.Bucket;
|
|
271
|
+
|
|
272
|
+
new codebuild.Project(this, 'ProjectA', {
|
|
273
|
+
source: codebuild.Source.s3({
|
|
274
|
+
bucket: sourceBucket,
|
|
275
|
+
path: 'path/to/source-a.zip',
|
|
276
|
+
}),
|
|
277
|
+
// configure the same bucket and path prefix
|
|
278
|
+
cache: codebuild.Cache.bucket(myCachingBucket, {
|
|
279
|
+
prefix: 'cache',
|
|
280
|
+
// use the same cache namespace
|
|
281
|
+
cacheNamespace: 'cache-namespace',
|
|
282
|
+
}),
|
|
283
|
+
buildSpec: codebuild.BuildSpec.fromObject({
|
|
284
|
+
version: '0.2',
|
|
285
|
+
phases: {
|
|
286
|
+
build: {
|
|
287
|
+
commands: ['...'],
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
// specify the same cache key and paths
|
|
291
|
+
cache: {
|
|
292
|
+
key: 'unique-key',
|
|
293
|
+
paths: [
|
|
294
|
+
'/root/cachedir/**/*',
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
}),
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
new codebuild.Project(this, 'ProjectB', {
|
|
301
|
+
source: codebuild.Source.s3({
|
|
302
|
+
bucket: sourceBucket,
|
|
303
|
+
path: 'path/to/source-b.zip',
|
|
304
|
+
}),
|
|
305
|
+
// configure the same bucket and path prefix
|
|
306
|
+
cache: codebuild.Cache.bucket(myCachingBucket, {
|
|
307
|
+
prefix: 'cache',
|
|
308
|
+
// use the same cache namespace
|
|
309
|
+
cacheNamespace: 'cache-namespace',
|
|
310
|
+
}),
|
|
311
|
+
buildSpec: codebuild.BuildSpec.fromObject({
|
|
312
|
+
version: '0.2',
|
|
313
|
+
phases: {
|
|
314
|
+
build: {
|
|
315
|
+
commands: ['...'],
|
|
316
|
+
},
|
|
317
|
+
},
|
|
318
|
+
// specify the same cache key and paths
|
|
319
|
+
cache: {
|
|
320
|
+
key: 'unique-key',
|
|
321
|
+
paths: [
|
|
322
|
+
'/root/cachedir/**/*',
|
|
323
|
+
],
|
|
324
|
+
},
|
|
325
|
+
}),
|
|
326
|
+
});
|
|
327
|
+
```
|
|
264
328
|
|
|
265
329
|
### Local Caching
|
|
266
330
|
|
|
@@ -312,6 +376,7 @@ can use the `environment` property to customize the build environment:
|
|
|
312
376
|
details on how to define build images.
|
|
313
377
|
* `certificate` defines the location of a PEM encoded certificate to import.
|
|
314
378
|
* `computeType` defines the instance type used for the build.
|
|
379
|
+
* `dockerServer` defines the docker server used for the build.
|
|
315
380
|
* `privileged` can be set to `true` to allow privileged access.
|
|
316
381
|
* `environmentVariables` can be set at this level (and also at the project
|
|
317
382
|
level).
|
|
@@ -512,6 +577,81 @@ const fleet = new codebuild.Fleet(this, 'MyFleet', {
|
|
|
512
577
|
});
|
|
513
578
|
```
|
|
514
579
|
|
|
580
|
+
### Custom instance types
|
|
581
|
+
You can use [specific EC2 instance
|
|
582
|
+
types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment-reserved-capacity.instance-types)
|
|
583
|
+
for your fleet by setting the `computeType` to `CUSTOM_INSTANCE_TYPE`. This
|
|
584
|
+
allows you to specify the `instanceType` in `computeConfiguration`. Only certain
|
|
585
|
+
EC2 instance types are supported; see the linked documentation for details.
|
|
586
|
+
|
|
587
|
+
```ts
|
|
588
|
+
import { Size } from 'aws-cdk-lib';
|
|
589
|
+
|
|
590
|
+
const fleet = new codebuild.Fleet(this, 'MyFleet', {
|
|
591
|
+
baseCapacity: 1,
|
|
592
|
+
computeType: codebuild.FleetComputeType.CUSTOM_INSTANCE_TYPE,
|
|
593
|
+
environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
|
|
594
|
+
computeConfiguration: {
|
|
595
|
+
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MEDIUM),
|
|
596
|
+
// By default, 64 GiB of disk space is included. Any value optionally
|
|
597
|
+
// specified here is _incremental_ on top of the included disk space.
|
|
598
|
+
disk: Size.gibibytes(10),
|
|
599
|
+
},
|
|
600
|
+
});
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
### Fleet overflow behavior
|
|
604
|
+
|
|
605
|
+
When your builds exceed the capacity of your fleet, you can specify how CodeBuild should handle the overflow builds by setting the `overflowBehavior` property:
|
|
606
|
+
|
|
607
|
+
```ts
|
|
608
|
+
const fleet = new codebuild.Fleet(this, 'Fleet', {
|
|
609
|
+
computeType: codebuild.FleetComputeType.MEDIUM,
|
|
610
|
+
environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
|
|
611
|
+
baseCapacity: 1,
|
|
612
|
+
overflowBehavior: codebuild.FleetOverflowBehavior.ON_DEMAND,
|
|
613
|
+
});
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
The available overflow behaviors are:
|
|
617
|
+
|
|
618
|
+
- `QUEUE` (default): Overflow builds wait for existing fleet instances to become available
|
|
619
|
+
- `ON_DEMAND`: Overflow builds run on CodeBuild on-demand instances
|
|
620
|
+
|
|
621
|
+
Note: If you set overflow behavior to `ON_DEMAND` for a VPC-connected fleet, ensure your VPC settings allow access to public AWS services.
|
|
622
|
+
|
|
623
|
+
### VPCs
|
|
624
|
+
The same considerations that apply to [Project
|
|
625
|
+
VPCs](#definition-of-vpc-configuration-in-codebuild-project) also apply to Fleet
|
|
626
|
+
VPCs. When using a Fleet in a CodeBuild Project, it is an error to configure a
|
|
627
|
+
VPC on the Project. Configure a VPC on the fleet instead.
|
|
628
|
+
|
|
629
|
+
```ts
|
|
630
|
+
declare const loadBalancer: elbv2.ApplicationLoadBalancer;
|
|
631
|
+
|
|
632
|
+
const vpc = new ec2.Vpc(this, 'MyVPC');
|
|
633
|
+
const fleet = new codebuild.Fleet(this, 'MyProject', {
|
|
634
|
+
computeType: codebuild.FleetComputeType.MEDIUM,
|
|
635
|
+
environmentType: codebuild.EnvironmentType.LINUX_CONTAINER,
|
|
636
|
+
baseCapacity: 1,
|
|
637
|
+
vpc,
|
|
638
|
+
});
|
|
639
|
+
|
|
640
|
+
fleet.connections.allowTo(loadBalancer, ec2.Port.tcp(443));
|
|
641
|
+
|
|
642
|
+
const project = new codebuild.Project(this, 'MyProject', {
|
|
643
|
+
environment: {
|
|
644
|
+
fleet,
|
|
645
|
+
},
|
|
646
|
+
buildSpec: codebuild.BuildSpec.fromObject({
|
|
647
|
+
// ...
|
|
648
|
+
}),
|
|
649
|
+
// Trying to configure a project-level VPC is an error, because this project
|
|
650
|
+
// runs on the Fleet created above.
|
|
651
|
+
// vpc,
|
|
652
|
+
});
|
|
653
|
+
```
|
|
654
|
+
|
|
515
655
|
## Logs
|
|
516
656
|
|
|
517
657
|
CodeBuild lets you specify an S3 Bucket, CloudWatch Log Group or both to receive logs from your projects.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
2
|
+
import { Project, BuildSpec, DockerServerComputeType, Source, ComputeType } from 'aws-cdk-lib/aws-codebuild';
|
|
3
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
4
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
5
|
+
|
|
6
|
+
const app = new App();
|
|
7
|
+
const stack = new Stack(app, 'codebuild-project-docker-server');
|
|
8
|
+
|
|
9
|
+
const vpc = new ec2.Vpc(stack, 'Vpc', { restrictDefaultSecurityGroup: false });
|
|
10
|
+
const sg = new ec2.SecurityGroup(stack, 'SecurityGroup', { vpc });
|
|
11
|
+
|
|
12
|
+
const project = new Project(stack, 'MyProject', {
|
|
13
|
+
source: Source.gitHub({
|
|
14
|
+
owner: 'dockersamples',
|
|
15
|
+
repo: 'helloworld-demo-python',
|
|
16
|
+
}),
|
|
17
|
+
buildSpec: BuildSpec.fromObject({
|
|
18
|
+
version: '0.2',
|
|
19
|
+
phases: {
|
|
20
|
+
build: {
|
|
21
|
+
commands: [
|
|
22
|
+
'cd sample',
|
|
23
|
+
'docker buildx build .',
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
}),
|
|
28
|
+
environment: {
|
|
29
|
+
computeType: ComputeType.SMALL,
|
|
30
|
+
dockerServer: {
|
|
31
|
+
computeType: DockerServerComputeType.SMALL,
|
|
32
|
+
securityGroups: [sg],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const integ = new IntegTest(app, 'codebuild-project-docker-server-integ', {
|
|
38
|
+
testCases: [stack],
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// Execute the `startBuild` API to confirm that the build can be done correctly.
|
|
42
|
+
integ.assertions.awsApiCall('CodeBuild', 'startBuild', {
|
|
43
|
+
projectName: project.projectName,
|
|
44
|
+
}).waitForAssertions();
|