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
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-sns-subscriptions/integ.sns-sqs.ts
CHANGED
|
@@ -3,50 +3,31 @@ import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
|
3
3
|
import * as cdk from 'aws-cdk-lib';
|
|
4
4
|
import { IntegTest, ExpectedResult } from '@aws-cdk/integ-tests-alpha';
|
|
5
5
|
import * as subs from 'aws-cdk-lib/aws-sns-subscriptions';
|
|
6
|
-
|
|
7
|
-
topic: sns.Topic;
|
|
8
|
-
queue: sqs.Queue;
|
|
9
|
-
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
|
|
10
|
-
super(scope, id, props);
|
|
11
|
-
this.topic = new sns.Topic(this, 'MyTopic');
|
|
12
|
-
const queueStack = new cdk.Stack(app, 'QueueStack');
|
|
13
|
-
this.queue = new sqs.Queue(queueStack, 'MyQueue');
|
|
14
|
-
this.topic.addSubscription(new subs.SqsSubscription(this.queue, {
|
|
15
|
-
filterPolicyWithMessageBody: {
|
|
16
|
-
background: sns.Policy.policy({
|
|
17
|
-
color: sns.Filter.filter(sns.SubscriptionFilter.stringFilter({
|
|
18
|
-
allowlist: ['red', 'green'],
|
|
19
|
-
denylist: ['white', 'orange'],
|
|
20
|
-
})),
|
|
21
|
-
}),
|
|
22
|
-
price: sns.Filter.filter(sns.SubscriptionFilter.numericFilter({
|
|
23
|
-
allowlist: [100, 200],
|
|
24
|
-
between: { start: 300, stop: 350 },
|
|
25
|
-
greaterThan: 500,
|
|
26
|
-
lessThan: 1000,
|
|
27
|
-
betweenStrict: { start: 2000, stop: 3000 },
|
|
28
|
-
})),
|
|
29
|
-
},
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
// Beginning of the test suite
|
|
6
|
+
|
|
34
7
|
const app = new cdk.App();
|
|
35
|
-
|
|
8
|
+
|
|
9
|
+
const stack = new cdk.Stack(app, 'SnsToSqsStack');
|
|
10
|
+
|
|
11
|
+
const topic = new sns.Topic(stack, 'MyTopic');
|
|
12
|
+
|
|
13
|
+
const queue = new sqs.Queue(stack, 'MyQueue');
|
|
14
|
+
|
|
15
|
+
topic.addSubscription(new subs.SqsSubscription(queue, { rawMessageDelivery: true }));
|
|
16
|
+
|
|
36
17
|
const integTest = new IntegTest(app, 'SNS Subscriptions', {
|
|
37
|
-
testCases: [
|
|
38
|
-
stack,
|
|
39
|
-
],
|
|
18
|
+
testCases: [stack],
|
|
40
19
|
});
|
|
20
|
+
|
|
21
|
+
const message = JSON.stringify({ color: 'green', price: 200 });
|
|
22
|
+
|
|
41
23
|
integTest.assertions.awsApiCall('SNS', 'publish', {
|
|
42
|
-
Message:
|
|
43
|
-
TopicArn:
|
|
24
|
+
Message: message,
|
|
25
|
+
TopicArn: topic.topicArn,
|
|
44
26
|
});
|
|
45
|
-
|
|
46
|
-
|
|
27
|
+
|
|
28
|
+
integTest.assertions.awsApiCall('SQS', 'receiveMessage', {
|
|
29
|
+
QueueUrl: queue.queueUrl,
|
|
47
30
|
WaitTimeSeconds: 20,
|
|
48
|
-
})
|
|
49
|
-
message
|
|
50
|
-
Messages: [{ Body: '{color: "green", price: 200}' }],
|
|
31
|
+
}).expect(ExpectedResult.objectLike({
|
|
32
|
+
Messages: [{ Body: message }],
|
|
51
33
|
}));
|
|
52
|
-
app.synth();
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib/core';
|
|
3
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
4
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
5
|
+
|
|
6
|
+
const CSV_KEY = 'my-key.csv';
|
|
7
|
+
|
|
8
|
+
class DistributedMapParallelStack extends cdk.Stack {
|
|
9
|
+
readonly bucket: s3.Bucket;
|
|
10
|
+
readonly stateMachine: sfn.StateMachine;
|
|
11
|
+
|
|
12
|
+
constructor(scope: cdk.App, id: string) {
|
|
13
|
+
super(scope, id);
|
|
14
|
+
|
|
15
|
+
this.bucket = new s3.Bucket(this, 'Bucket', {
|
|
16
|
+
autoDeleteObjects: true,
|
|
17
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const parallel = new sfn.Parallel(this, 'Parallel');
|
|
21
|
+
|
|
22
|
+
const distributedMap = new sfn.DistributedMap(this, 'DistributedMap', {
|
|
23
|
+
itemReader: new sfn.S3CsvItemReader({
|
|
24
|
+
bucket: this.bucket,
|
|
25
|
+
key: CSV_KEY,
|
|
26
|
+
csvHeaders: sfn.CsvHeaders.useFirstRow(),
|
|
27
|
+
}),
|
|
28
|
+
}).itemProcessor(new sfn.Pass(this, 'Pass'));
|
|
29
|
+
|
|
30
|
+
this.stateMachine = new sfn.StateMachine(this, 'StateMachine', {
|
|
31
|
+
definitionBody: sfn.ChainDefinitionBody.fromChainable(parallel.branch(distributedMap)),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function setupAssertions(testCaseStack: DistributedMapParallelStack, assertions: integ.IDeployAssert) {
|
|
37
|
+
const waitForStateMachineActive = assertions
|
|
38
|
+
.awsApiCall('StepFunctions', 'describeStateMachine', {
|
|
39
|
+
stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
|
|
40
|
+
})
|
|
41
|
+
.expect(integ.ExpectedResult.objectLike({ status: 'ACTIVE' }))
|
|
42
|
+
.waitForAssertions({
|
|
43
|
+
interval: cdk.Duration.seconds(10),
|
|
44
|
+
totalTimeout: cdk.Duration.minutes(5),
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Upload the input to the DistributedMap
|
|
48
|
+
const uploadInput = assertions.awsApiCall('S3', 'putObject', {
|
|
49
|
+
Bucket: testCaseStack.bucket.bucketName,
|
|
50
|
+
Key: CSV_KEY,
|
|
51
|
+
Body: 'a,b,c\n1,2,3\n4,5,6',
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// Start an execution
|
|
55
|
+
const startExecution = assertions.awsApiCall('StepFunctions', 'startExecution', {
|
|
56
|
+
stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const executionArn = startExecution.getAttString('executionArn');
|
|
60
|
+
|
|
61
|
+
const expectSucceededExecution = assertions
|
|
62
|
+
.awsApiCall('StepFunctions', 'describeExecution', { executionArn: executionArn })
|
|
63
|
+
.expect(integ.ExpectedResult.objectLike({ status: 'SUCCEEDED' }))
|
|
64
|
+
.waitForAssertions({
|
|
65
|
+
interval: cdk.Duration.seconds(10),
|
|
66
|
+
totalTimeout: cdk.Duration.minutes(1),
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
waitForStateMachineActive
|
|
70
|
+
.next(uploadInput)
|
|
71
|
+
.next(startExecution)
|
|
72
|
+
.next(expectSucceededExecution);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const app = new cdk.App();
|
|
76
|
+
const parallelStack = new DistributedMapParallelStack(app, 'DistributedMapParallelStack');
|
|
77
|
+
|
|
78
|
+
const testCase = new integ.IntegTest(app, 'DistributedMapParallel', {
|
|
79
|
+
testCases: [parallelStack],
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
setupAssertions(parallelStack, testCase.assertions);
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
2
|
+
import * as cdk from 'aws-cdk-lib/core';
|
|
3
|
+
import * as integ from '@aws-cdk/integ-tests-alpha';
|
|
4
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
5
|
+
import * as aws_stepfunction_tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
|
|
6
|
+
|
|
7
|
+
const CSV_KEY = 'my-key.csv';
|
|
8
|
+
const SUCCESS_MARKER_KEY = 'pass-flag.txt';
|
|
9
|
+
|
|
10
|
+
interface DistributedMapRedriveStackProps extends cdk.StackProps {
|
|
11
|
+
readonly mapRunLabel?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
class DistributedMapRedriveStack extends cdk.Stack {
|
|
15
|
+
readonly bucket: s3.Bucket;
|
|
16
|
+
readonly stateMachine: sfn.StateMachine;
|
|
17
|
+
|
|
18
|
+
constructor(scope: cdk.App, id: string, props?: DistributedMapRedriveStackProps) {
|
|
19
|
+
super(scope, id, props);
|
|
20
|
+
|
|
21
|
+
this.bucket = new s3.Bucket(this, 'Bucket', {
|
|
22
|
+
autoDeleteObjects: true,
|
|
23
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const distributedMap = new sfn.DistributedMap(this, 'DistributedMap', {
|
|
27
|
+
label: props?.mapRunLabel,
|
|
28
|
+
itemReader: new sfn.S3CsvItemReader({
|
|
29
|
+
bucket: this.bucket,
|
|
30
|
+
key: CSV_KEY,
|
|
31
|
+
csvHeaders: sfn.CsvHeaders.useFirstRow(),
|
|
32
|
+
}),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// Existence of the success marker object determines if the distributed map succeeds or fails
|
|
36
|
+
const getSuccessMarker = new aws_stepfunction_tasks.CallAwsService(this, 'GetData', {
|
|
37
|
+
action: 'getObject',
|
|
38
|
+
iamResources: [this.bucket.arnForObjects('*')],
|
|
39
|
+
parameters: {
|
|
40
|
+
Bucket: this.bucket.bucketName,
|
|
41
|
+
Key: SUCCESS_MARKER_KEY,
|
|
42
|
+
},
|
|
43
|
+
service: 's3',
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
distributedMap.itemProcessor(getSuccessMarker);
|
|
47
|
+
|
|
48
|
+
this.stateMachine = new sfn.StateMachine(this, 'StateMachine', {
|
|
49
|
+
definitionBody: sfn.ChainDefinitionBody.fromChainable(distributedMap),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function setupAssertions(testCaseStack: DistributedMapRedriveStack, assertions: integ.IDeployAssert) {
|
|
55
|
+
const waitForStateMachineActive = assertions
|
|
56
|
+
.awsApiCall('StepFunctions', 'describeStateMachine', {
|
|
57
|
+
stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
|
|
58
|
+
})
|
|
59
|
+
.expect(integ.ExpectedResult.objectLike({ status: 'ACTIVE' }))
|
|
60
|
+
.waitForAssertions({
|
|
61
|
+
interval: cdk.Duration.seconds(10),
|
|
62
|
+
totalTimeout: cdk.Duration.minutes(5),
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// Upload the input to the DistributedMap
|
|
66
|
+
const uploadInput = assertions.awsApiCall('S3', 'putObject', {
|
|
67
|
+
Bucket: testCaseStack.bucket.bucketName,
|
|
68
|
+
Key: CSV_KEY,
|
|
69
|
+
Body: 'a,b,c\n1,2,3\n4,5,6',
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Start an execution
|
|
73
|
+
const startExecution = assertions.awsApiCall('StepFunctions', 'startExecution', {
|
|
74
|
+
stateMachineArn: testCaseStack.stateMachine.stateMachineArn,
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const executionArn = startExecution.getAttString('executionArn');
|
|
78
|
+
|
|
79
|
+
// describe the results of the execution
|
|
80
|
+
const expectFailedExecution = assertions
|
|
81
|
+
.awsApiCall('StepFunctions', 'describeExecution', {
|
|
82
|
+
executionArn: executionArn,
|
|
83
|
+
})
|
|
84
|
+
.expect(integ.ExpectedResult.objectLike({ status: 'FAILED' }))
|
|
85
|
+
.waitForAssertions({
|
|
86
|
+
interval: cdk.Duration.seconds(10),
|
|
87
|
+
totalTimeout: cdk.Duration.minutes(1),
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Upload the success marker, so that the next execution succeeds
|
|
91
|
+
const uploadSucceedMarker = assertions.awsApiCall('S3', 'putObject', {
|
|
92
|
+
Bucket: testCaseStack.bucket.bucketName,
|
|
93
|
+
Key: SUCCESS_MARKER_KEY,
|
|
94
|
+
Body: '',
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const redriveExecution = assertions.awsApiCall('StepFunctions', 'redriveExecution', {
|
|
98
|
+
executionArn: executionArn,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
const expectRedrivenExecution = assertions
|
|
102
|
+
.awsApiCall('StepFunctions', 'describeExecution', { executionArn: executionArn })
|
|
103
|
+
.expect(integ.ExpectedResult.objectLike({ status: 'SUCCEEDED' }))
|
|
104
|
+
.waitForAssertions({
|
|
105
|
+
interval: cdk.Duration.seconds(10),
|
|
106
|
+
totalTimeout: cdk.Duration.minutes(1),
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
waitForStateMachineActive
|
|
110
|
+
.next(uploadInput)
|
|
111
|
+
.next(startExecution)
|
|
112
|
+
.next(expectFailedExecution)
|
|
113
|
+
.next(uploadSucceedMarker)
|
|
114
|
+
.next(redriveExecution)
|
|
115
|
+
.next(expectRedrivenExecution);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const app = new cdk.App();
|
|
119
|
+
|
|
120
|
+
const unlabeledDistributedMapStack = new DistributedMapRedriveStack(app, 'UnlabeledDistributedMapRedrive');
|
|
121
|
+
const labeledDistributedMapStack = new DistributedMapRedriveStack(app, 'LabeledDistributedMapRedrive', {
|
|
122
|
+
mapRunLabel: 'myLabel',
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const testCase = new integ.IntegTest(app, 'DistributedMap', {
|
|
126
|
+
testCases: [unlabeledDistributedMapStack, labeledDistributedMapStack],
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
setupAssertions(labeledDistributedMapStack, testCase.assertions);
|
|
130
|
+
setupAssertions(unlabeledDistributedMapStack, testCase.assertions);
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import * as cdk from 'aws-cdk-lib/core';
|
|
2
|
+
import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
3
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
4
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
5
|
+
import { STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2 } from 'aws-cdk-lib/cx-api';
|
|
6
|
+
|
|
7
|
+
const CSV_KEY = 'my-key.csv';
|
|
8
|
+
const RESULT_BUCKET_PREFIX = 'my-prefix';
|
|
9
|
+
|
|
10
|
+
class DistributedMapStack extends cdk.Stack {
|
|
11
|
+
readonly stateMachine: sfn.StateMachine;
|
|
12
|
+
readonly bucket: s3.Bucket;
|
|
13
|
+
|
|
14
|
+
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
|
|
15
|
+
super(scope, id, props);
|
|
16
|
+
|
|
17
|
+
this.bucket = new s3.Bucket(this, 'Bucket', {
|
|
18
|
+
autoDeleteObjects: true,
|
|
19
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const distributedMap = sfn.DistributedMap.jsonata(this, 'DistributedMap', {
|
|
23
|
+
itemReader: new sfn.S3CsvItemReader({
|
|
24
|
+
bucket: this.bucket,
|
|
25
|
+
key: CSV_KEY,
|
|
26
|
+
csvHeaders: sfn.CsvHeaders.useFirstRow(),
|
|
27
|
+
}),
|
|
28
|
+
resultWriterV2: new sfn.ResultWriterV2({
|
|
29
|
+
bucket: this.bucket,
|
|
30
|
+
prefix: RESULT_BUCKET_PREFIX,
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
distributedMap.itemProcessor(sfn.Pass.jsonata(this, 'Pass'), {
|
|
35
|
+
mode: sfn.ProcessorMode.DISTRIBUTED,
|
|
36
|
+
executionType: sfn.ProcessorType.STANDARD,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
this.stateMachine = new sfn.StateMachine(this, 'StateMachine', {
|
|
40
|
+
definition: distributedMap,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const app = new cdk.App({
|
|
46
|
+
context: {
|
|
47
|
+
[STEPFUNCTIONS_USE_DISTRIBUTED_MAP_RESULT_WRITER_V2]: true,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
const stack = new DistributedMapStack(app, 'sm-jsonpath-with-distributed-map-jsonata');
|
|
51
|
+
|
|
52
|
+
const testCase = new IntegTest(app, 'integ-sm-jsonpath-with-distributed-map-jsonata', {
|
|
53
|
+
testCases: [stack],
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
testCase.assertions
|
|
57
|
+
.awsApiCall('StepFunctions', 'describeStateMachine', {
|
|
58
|
+
stateMachineArn: stack.stateMachine.stateMachineArn,
|
|
59
|
+
})
|
|
60
|
+
.expect(ExpectedResult.objectLike({ status: 'ACTIVE' }))
|
|
61
|
+
.waitForAssertions({
|
|
62
|
+
interval: cdk.Duration.seconds(10),
|
|
63
|
+
totalTimeout: cdk.Duration.minutes(5),
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Put an object in the bucket
|
|
67
|
+
const putObject = testCase.assertions.awsApiCall('S3', 'putObject', {
|
|
68
|
+
Bucket: stack.bucket.bucketName,
|
|
69
|
+
Key: CSV_KEY,
|
|
70
|
+
Body: 'a,b,c\n1,2,3\n4,5,6',
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// Start an execution
|
|
74
|
+
const start = testCase.assertions.awsApiCall('StepFunctions', 'startExecution', {
|
|
75
|
+
stateMachineArn: stack.stateMachine.stateMachineArn,
|
|
76
|
+
});
|
|
77
|
+
putObject.next(start);
|
|
78
|
+
|
|
79
|
+
// describe the results of the execution
|
|
80
|
+
const describe = testCase.assertions.awsApiCall('StepFunctions', 'describeExecution', {
|
|
81
|
+
executionArn: start.getAttString('executionArn'),
|
|
82
|
+
});
|
|
83
|
+
start.next(describe);
|
|
84
|
+
|
|
85
|
+
// assert the results
|
|
86
|
+
const describeExecution = describe.expect(ExpectedResult.objectLike({
|
|
87
|
+
status: 'SUCCEEDED',
|
|
88
|
+
})).waitForAssertions({
|
|
89
|
+
interval: cdk.Duration.seconds(10),
|
|
90
|
+
totalTimeout: cdk.Duration.minutes(5),
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
const s3ApiCall = testCase.assertions.awsApiCall('S3', 'listObjectsV2', {
|
|
94
|
+
Bucket: stack.bucket.bucketName,
|
|
95
|
+
MaxKeys: 2,
|
|
96
|
+
Prefix: RESULT_BUCKET_PREFIX,
|
|
97
|
+
}).expect(ExpectedResult.objectLike({
|
|
98
|
+
KeyCount: 2,
|
|
99
|
+
}));
|
|
100
|
+
s3ApiCall.provider.addToRolePolicy({
|
|
101
|
+
Effect: 'Allow',
|
|
102
|
+
Action: ['s3:GetObject', 's3:ListBucket'],
|
|
103
|
+
Resource: ['*'],
|
|
104
|
+
});
|
|
105
|
+
describeExecution.next(s3ApiCall);
|
cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/README.md
CHANGED
|
@@ -34,6 +34,8 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw
|
|
|
34
34
|
- [SubmitJob](#submitjob)
|
|
35
35
|
- [Bedrock](#bedrock)
|
|
36
36
|
- [InvokeModel](#invokemodel)
|
|
37
|
+
- [Using Input Path for S3 URI](#using-input-path-for-s3-uri)
|
|
38
|
+
- [Using Input Path](#using-input-path)
|
|
37
39
|
- [createModelCustomizationJob](#createmodelcustomizationjob)
|
|
38
40
|
- [CodeBuild](#codebuild)
|
|
39
41
|
- [StartBuild](#startbuild)
|
|
@@ -47,6 +49,7 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw
|
|
|
47
49
|
- [RunTask](#runtask)
|
|
48
50
|
- [EC2](#ec2)
|
|
49
51
|
- [Fargate](#fargate)
|
|
52
|
+
- [Override CPU and Memory Parameter](#override-cpu-and-memory-parameter)
|
|
50
53
|
- [ECS enable Exec](#ecs-enable-exec)
|
|
51
54
|
- [EMR](#emr)
|
|
52
55
|
- [Create Cluster](#create-cluster)
|
|
@@ -64,15 +67,18 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw
|
|
|
64
67
|
- [Call](#call)
|
|
65
68
|
- [EventBridge](#eventbridge)
|
|
66
69
|
- [Put Events](#put-events)
|
|
70
|
+
- [EventBridge Scheduler](#eventbridge-scheduler)
|
|
71
|
+
- [Create Scheduler](#create-scheduler)
|
|
67
72
|
- [Glue](#glue)
|
|
68
73
|
- [StartJobRun](#startjobrun)
|
|
69
74
|
- [StartCrawlerRun](#startcrawlerrun)
|
|
70
75
|
- [Glue DataBrew](#glue-databrew)
|
|
71
76
|
- [Start Job Run](#start-job-run-1)
|
|
77
|
+
- [Invoke HTTP API](#invoke-http-api)
|
|
72
78
|
- [Lambda](#lambda)
|
|
73
79
|
- [Invoke](#invoke)
|
|
74
80
|
- [MediaConvert](#mediaconvert)
|
|
75
|
-
- [
|
|
81
|
+
- [CreateJob](#createjob)
|
|
76
82
|
- [SageMaker](#sagemaker)
|
|
77
83
|
- [Create Training Job](#create-training-job)
|
|
78
84
|
- [Create Transform Job](#create-transform-job)
|
|
@@ -135,6 +141,17 @@ The `EvaluateExpression` supports a `runtime` prop to specify the Lambda
|
|
|
135
141
|
runtime to use to evaluate the expression. Currently, only runtimes
|
|
136
142
|
of the Node.js family are supported.
|
|
137
143
|
|
|
144
|
+
The `EvaluateExpression` also supports an `architecture` prop to specify the Lambda
|
|
145
|
+
architecture. This can be useful when migrating to ARM64 or when running integration
|
|
146
|
+
tests on ARM64 systems.
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
const convertToSecondsArm64 = new tasks.EvaluateExpression(this, 'Convert to seconds', {
|
|
150
|
+
expression: '$.waitMilliseconds / 1000',
|
|
151
|
+
architecture: lambda.Architecture.ARM_64,
|
|
152
|
+
});
|
|
153
|
+
```
|
|
154
|
+
|
|
138
155
|
## API Gateway
|
|
139
156
|
|
|
140
157
|
Step Functions supports [API Gateway](https://docs.aws.amazon.com/step-functions/latest/dg/connect-api-gateway.html) through the service integration pattern.
|
|
@@ -956,6 +973,18 @@ new tasks.EmrCreateCluster(this, 'SpotSpecification', {
|
|
|
956
973
|
});
|
|
957
974
|
```
|
|
958
975
|
|
|
976
|
+
You can [customize EBS root device volume](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html).
|
|
977
|
+
|
|
978
|
+
```ts
|
|
979
|
+
new tasks.EmrCreateCluster(this, 'Create Cluster', {
|
|
980
|
+
instances: {},
|
|
981
|
+
name: 'ClusterName',
|
|
982
|
+
ebsRootVolumeIops: 4000,
|
|
983
|
+
ebsRootVolumeSize: Size.gibibytes(20),
|
|
984
|
+
ebsRootVolumeThroughput: 200,
|
|
985
|
+
});
|
|
986
|
+
```
|
|
987
|
+
|
|
959
988
|
If you want to run multiple steps in [parallel](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-concurrent-steps.html),
|
|
960
989
|
you can specify the `stepConcurrencyLevel` property. The concurrency range is between 1
|
|
961
990
|
and 256 inclusive, where the default concurrency of 1 means no step concurrency is allowed.
|
|
@@ -981,6 +1010,47 @@ new tasks.EmrCreateCluster(this, 'Create Cluster', {
|
|
|
981
1010
|
});
|
|
982
1011
|
```
|
|
983
1012
|
|
|
1013
|
+
If you want to use [managed scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-scaling.html),
|
|
1014
|
+
you can specify the `managedScalingPolicy` property.
|
|
1015
|
+
|
|
1016
|
+
```ts
|
|
1017
|
+
new tasks.EmrCreateCluster(this, 'CreateCluster', {
|
|
1018
|
+
instances: {
|
|
1019
|
+
instanceFleets: [
|
|
1020
|
+
{
|
|
1021
|
+
instanceFleetType: tasks.EmrCreateCluster.InstanceRoleType.CORE,
|
|
1022
|
+
instanceTypeConfigs: [
|
|
1023
|
+
{
|
|
1024
|
+
instanceType: 'm5.xlarge',
|
|
1025
|
+
},
|
|
1026
|
+
],
|
|
1027
|
+
targetOnDemandCapacity: 1,
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
instanceFleetType: tasks.EmrCreateCluster.InstanceRoleType.MASTER,
|
|
1031
|
+
instanceTypeConfigs: [
|
|
1032
|
+
{
|
|
1033
|
+
instanceType: 'm5.xlarge',
|
|
1034
|
+
},
|
|
1035
|
+
],
|
|
1036
|
+
targetOnDemandCapacity: 1,
|
|
1037
|
+
},
|
|
1038
|
+
],
|
|
1039
|
+
},
|
|
1040
|
+
name: 'ClusterName',
|
|
1041
|
+
releaseLabel: 'emr-7.9.0',
|
|
1042
|
+
managedScalingPolicy: {
|
|
1043
|
+
computeLimits: {
|
|
1044
|
+
unitType: tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
|
|
1045
|
+
maximumCapacityUnits: 4,
|
|
1046
|
+
minimumCapacityUnits: 1,
|
|
1047
|
+
maximumOnDemandCapacityUnits: 4,
|
|
1048
|
+
maximumCoreCapacityUnits: 2,
|
|
1049
|
+
},
|
|
1050
|
+
},
|
|
1051
|
+
});
|
|
1052
|
+
```
|
|
1053
|
+
|
|
984
1054
|
### Termination Protection
|
|
985
1055
|
|
|
986
1056
|
Locks a cluster (job flow) so the EC2 instances in the cluster cannot be
|
|
@@ -1315,12 +1385,12 @@ The following code snippet includes a Task state that uses eks:call to list the
|
|
|
1315
1385
|
|
|
1316
1386
|
```ts
|
|
1317
1387
|
import * as eks from 'aws-cdk-lib/aws-eks';
|
|
1318
|
-
import {
|
|
1388
|
+
import { KubectlV34Layer } from '@aws-cdk/lambda-layer-kubectl-v34';
|
|
1319
1389
|
|
|
1320
1390
|
const myEksCluster = new eks.Cluster(this, 'my sample cluster', {
|
|
1321
|
-
version: eks.KubernetesVersion.
|
|
1391
|
+
version: eks.KubernetesVersion.V1_34,
|
|
1322
1392
|
clusterName: 'myEksCluster',
|
|
1323
|
-
kubectlLayer: new
|
|
1393
|
+
kubectlLayer: new KubectlV34Layer(this, 'kubectl'),
|
|
1324
1394
|
});
|
|
1325
1395
|
|
|
1326
1396
|
new tasks.EksCall(this, 'Call a EKS Endpoint', {
|
|
@@ -1523,7 +1593,7 @@ const connection = new events.Connection(this, 'Connection', {
|
|
|
1523
1593
|
|
|
1524
1594
|
new tasks.HttpInvoke(this, 'Invoke HTTP API', {
|
|
1525
1595
|
apiRoot: 'https://api.example.com',
|
|
1526
|
-
apiEndpoint: sfn.TaskInput.fromText('
|
|
1596
|
+
apiEndpoint: sfn.TaskInput.fromText(sfn.JsonPath.format('resource/{}/details', sfn.JsonPath.stringAt('$.resourceId'))),
|
|
1527
1597
|
body: sfn.TaskInput.fromObject({ foo: 'bar' }),
|
|
1528
1598
|
connection,
|
|
1529
1599
|
headers: sfn.TaskInput.fromObject({ 'Content-Type': 'application/json' }),
|
|
@@ -10,7 +10,7 @@ class TestStack extends cdk.Stack {
|
|
|
10
10
|
super(scope, id, props);
|
|
11
11
|
// Create a target Lambda function that returns JSON response
|
|
12
12
|
const targetLambda = new lambda.Function(this, 'TargetLambda', {
|
|
13
|
-
runtime: lambda.Runtime.
|
|
13
|
+
runtime: lambda.Runtime.NODEJS_20_X,
|
|
14
14
|
handler: 'index.handler',
|
|
15
15
|
code: lambda.Code.fromInline(`
|
|
16
16
|
exports.handler = async (event) => {
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
2
|
+
import { App, Duration, Size, Stack, Tags } from 'aws-cdk-lib';
|
|
3
|
+
import { ExpectedResult, IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
4
|
+
import { EmrCreateCluster } from 'aws-cdk-lib/aws-stepfunctions-tasks';
|
|
5
|
+
import { Vpc } from 'aws-cdk-lib/aws-ec2';
|
|
6
|
+
|
|
7
|
+
const app = new App();
|
|
8
|
+
|
|
9
|
+
const stack = new Stack(app, 'emr-create-cluster-ebs');
|
|
10
|
+
const vpc = new Vpc(stack, 'Vpc', { restrictDefaultSecurityGroup: false });
|
|
11
|
+
|
|
12
|
+
const releaseLabel = 'emr-7.10.0';
|
|
13
|
+
const ebsRootVolumeIops = 4000;
|
|
14
|
+
const ebsRootVolumeSize = 20;
|
|
15
|
+
const ebsRootVolumeThroughput = 200;
|
|
16
|
+
const unitType = EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS;
|
|
17
|
+
const maximumCapacityUnits = 4;
|
|
18
|
+
const minimumCapacityUnits = 1;
|
|
19
|
+
const maximumOnDemandCapacityUnits = 4;
|
|
20
|
+
const maximumCoreCapacityUnits = 2;
|
|
21
|
+
|
|
22
|
+
// https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-iam-policies.html#manually-tagged-resources
|
|
23
|
+
Tags.of(vpc).add('for-use-with-amazon-emr-managed-policies', 'true');
|
|
24
|
+
|
|
25
|
+
const step = new EmrCreateCluster(stack, 'EmrCreateCluster', {
|
|
26
|
+
instances: {
|
|
27
|
+
instanceFleets: [
|
|
28
|
+
{
|
|
29
|
+
instanceFleetType: EmrCreateCluster.InstanceRoleType.CORE,
|
|
30
|
+
instanceTypeConfigs: [
|
|
31
|
+
{
|
|
32
|
+
instanceType: 'm5.xlarge',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
targetOnDemandCapacity: 1,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
instanceFleetType: EmrCreateCluster.InstanceRoleType.MASTER,
|
|
39
|
+
instanceTypeConfigs: [
|
|
40
|
+
{
|
|
41
|
+
instanceType: 'm5.xlarge',
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
targetOnDemandCapacity: 1,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
ec2SubnetId: vpc.publicSubnets[0].subnetId,
|
|
48
|
+
},
|
|
49
|
+
name: 'Cluster',
|
|
50
|
+
releaseLabel,
|
|
51
|
+
integrationPattern: sfn.IntegrationPattern.RUN_JOB,
|
|
52
|
+
ebsRootVolumeIops,
|
|
53
|
+
ebsRootVolumeSize: Size.gibibytes(ebsRootVolumeSize),
|
|
54
|
+
ebsRootVolumeThroughput,
|
|
55
|
+
managedScalingPolicy: {
|
|
56
|
+
computeLimits: {
|
|
57
|
+
unitType,
|
|
58
|
+
maximumCapacityUnits,
|
|
59
|
+
minimumCapacityUnits,
|
|
60
|
+
maximumOnDemandCapacityUnits,
|
|
61
|
+
maximumCoreCapacityUnits,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
const sm = new sfn.StateMachine(stack, 'SM', {
|
|
67
|
+
definition: step,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const integTest = new IntegTest(app, 'emr-create-cluster-ebs-integ', {
|
|
71
|
+
testCases: [stack],
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const start = integTest.assertions.awsApiCall('StepFunctions', 'startExecution', {
|
|
75
|
+
stateMachineArn: sm.stateMachineArn,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
const describeExecution = integTest.assertions.awsApiCall('StepFunctions', 'describeExecution', {
|
|
79
|
+
executionArn: start.getAttString('executionArn'),
|
|
80
|
+
});
|
|
81
|
+
start.next(describeExecution);
|
|
82
|
+
|
|
83
|
+
const waitForExecution = describeExecution.expect(ExpectedResult.objectLike({
|
|
84
|
+
status: 'SUCCEEDED',
|
|
85
|
+
})).waitForAssertions({
|
|
86
|
+
interval: Duration.seconds(30),
|
|
87
|
+
totalTimeout: Duration.minutes(5),
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const getClusterId = integTest.assertions.awsApiCall('StepFunctions', 'describeExecution', {
|
|
91
|
+
executionArn: start.getAttString('executionArn'),
|
|
92
|
+
});
|
|
93
|
+
waitForExecution.next(getClusterId);
|
|
94
|
+
|
|
95
|
+
const clusterId = getClusterId.getAttString('output.ClusterId');
|
|
96
|
+
|
|
97
|
+
const describeCluster = integTest.assertions.awsApiCall('Emr', 'describeCluster', {
|
|
98
|
+
ClusterId: clusterId,
|
|
99
|
+
});
|
|
100
|
+
getClusterId.next(describeCluster);
|
|
101
|
+
|
|
102
|
+
describeCluster.expect(ExpectedResult.objectLike({
|
|
103
|
+
Cluster: {
|
|
104
|
+
ReleaseLabel: releaseLabel,
|
|
105
|
+
EbsRootVolumeIops: ebsRootVolumeIops,
|
|
106
|
+
EbsRootVolumeSize: ebsRootVolumeSize,
|
|
107
|
+
EbsRootVolumeThroughput: ebsRootVolumeThroughput,
|
|
108
|
+
},
|
|
109
|
+
}));
|
|
110
|
+
|
|
111
|
+
const getManagedScalingPolicy = integTest.assertions.awsApiCall('Emr', 'getManagedScalingPolicy', {
|
|
112
|
+
ClusterId: clusterId,
|
|
113
|
+
});
|
|
114
|
+
describeCluster.next(getManagedScalingPolicy);
|
|
115
|
+
|
|
116
|
+
getManagedScalingPolicy.expect(ExpectedResult.objectLike({
|
|
117
|
+
ManagedScalingPolicy: {
|
|
118
|
+
ComputeLimits: {
|
|
119
|
+
UnitType: unitType,
|
|
120
|
+
MaximumCapacityUnits: maximumCapacityUnits,
|
|
121
|
+
MinimumCapacityUnits: minimumCapacityUnits,
|
|
122
|
+
MaximumOnDemandCapacityUnits: maximumOnDemandCapacityUnits,
|
|
123
|
+
MaximumCoreCapacityUnits: maximumCoreCapacityUnits,
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
}));
|