-
Notifications
You must be signed in to change notification settings - Fork 4.5k
ValidationError: Parameter values specified when using DynamoDB Global module #2900
Description
Describe the bug
Hi everybody,
I'm building an modular infrastructure but I'm fighting with this error:
failed: ValidationError: Parameter values specified for a template which does not require them.
Parameter values specified for a template which does not require them.
The stack is very simple:
First stack:
A VPC only stack deployed with the microservices-vpc-cdk-dev-us-west-2 stack name.
Second stack:
A ECS Cluster + a Global DynamoDB Table, the ECS Cluster use exported parameters from the first stack.
The problem occurs on the second stack only if the Global DynamoDB Table is added; otherwise CDK works as expected.
To Reproduce
The ECS Cluster is very simple:
export class MyResources extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props: cdk.StackProps) {
super(scope, id, props);
// VPC
const vpcId = cdk.Fn.importValue(`MyStack1Prefix-VpcId-cdk-dev`);
const availabilityZones = cdk.Fn.split(',', cdk.Fn.importValue(`MyStack1Prefix-AvailabilityZones-cdk-dev`));
const vpc = ec2.Vpc.fromVpcAttributes(this, id, {
vpcId,
availabilityZones,
});
// ECS Cluster
const clusterName = `service1-cdk-dev`;
const cluster = new ecs.Cluster(this, id, {
vpc,
clusterName,
});
}This configuration works as expected and the entire Stack are deployed, CDK create e deploy only a CF stack: service1-ecs-cdk-dev-us-west-2.
By adding the DynamoDB Global Table definition under the ECS cluster I'm getting the error above:
// DynamoDB Table
const tableName = `table1-cdk-dev`;
const table = new dynamodbGlobal.GlobalTable(this, id, {
tableName: tableName,
regions: ['us-west-2', 'eu-west-1'],
partitionKey: {
name: 'primary_key',
type: dynamodb.AttributeType.String,
},
billingMode: dynamodb.BillingMode.PayPerRequest,
});Now CDK has created & deployed also:
service1ecscdkdevuswest2Service1TableCustomResourceBD055B07service1ecscdkdevuswest2Service1TableService1Tableuswest2EBB183CF
Here a detailed log of the cfn.createChangeSet method invoked:
service1ecscdkdevuswest2Service1TableService1Tableuswest2EBB183CF: creating CloudFormation changeset...
{
"Capabilities": [
"CAPABILITY_IAM",
"CAPABILITY_NAMED_IAM",
"CAPABILITY_AUTO_EXPAND"
],
"ChangeSetName": "CDK-44238698-0368-48eb-ac5e-c5cceddf5b2f",
"ChangeSetType": "CREATE",
"Description": "CDK Changeset for execution 44238698-0368-48eb-ac5e-c5cceddf5b2f",
"Parameters": [],
"StackName": "service1ecscdkdevuswest2Service1TableService1Tableuswest2EBB183CF",
"Tags": [],
"TemplateURL": "https://cdktoolkit-stagingbucket-XXXXXXXXXXXX.s3.amazonaws.com/cdk/service1ecscdkdevuswest2Service1TableService1Tableuswest2EBB183CF/fe9b0deb6031ed5787a739072d61364f6c60e4361342f66c8c62b5b82546a177.yml"
}
service1ecscdkdevuswest2Service1TableCustomResourceBD055B07: creating CloudFormation changeset...
{
"Capabilities": [
"CAPABILITY_IAM",
"CAPABILITY_NAMED_IAM",
"CAPABILITY_AUTO_EXPAND"
],
"ChangeSetName": "CDK-ba0fea7c-ccd9-4228-aa66-61eec02444a1",
"ChangeSetType": "CREATE",
"Description": "CDK Changeset for execution ba0fea7c-ccd9-4228-aa66-61eec02444a1",
"Parameters": [
{
"ParameterKey": "SingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12CodeS3BucketF66FB543",
"ParameterValue": "cdktoolkit-stagingbucket-XXXXXXXXXXXX"
},
{
"ParameterKey": "SingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12CodeS3VersionKey59DB89A0",
"ParameterValue": "assets/service1ecscdkdevuswest2Service1TableCustomResourceSingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12Code49F4FB40/||d24b53740e41ce155a5c316af128401539cb153c06281b70375c7a4015f7314d.zip"
},
{
"ParameterKey": "SingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12CodeArtifactHashCE92982B",
"ParameterValue": "d24b53740e41ce155a5c316af128401539cb153c06281b70375c7a4015f7314d"
}
],
"StackName": "service1ecscdkdevuswest2Service1TableCustomResourceBD055B07",
"Tags": [],
"TemplateURL": "https://cdktoolkit-stagingbucket-XXXXXXXXXXXX.s3.amazonaws.com/cdk/service1ecscdkdevuswest2Service1TableCustomResourceBD055B07/53d1d7f20682c3bdac8df595d528ecf2d1f4b192691068ceba99ff6e1bf3fc0b.yml"
}
service1-ecs-cdk-dev-us-west-2: creating CloudFormation changeset...
{
"Capabilities": [
"CAPABILITY_IAM",
"CAPABILITY_NAMED_IAM",
"CAPABILITY_AUTO_EXPAND"
],
"ChangeSetName": "CDK-1d52709f-35d0-4f74-a522-5cd28f5490cc",
"ChangeSetType": "CREATE",
"Description": "CDK Changeset for execution 1d52709f-35d0-4f74-a522-5cd28f5490cc",
"Parameters": [
{
"ParameterKey": "SingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12CodeS3BucketF66FB543",
"ParameterValue": "cdktoolkit-stagingbucket-XXXXXXXXXXXX"
},
{
"ParameterKey": "SingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12CodeS3VersionKey59DB89A0",
"ParameterValue": "assets/service1ecscdkdevuswest2Service1TableCustomResourceSingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12Code49F4FB40/||d24b53740e41ce155a5c316af128401539cb153c06281b70375c7a4015f7314d.zip"
},
{
"ParameterKey": "SingletonLambdaD38B65A66B544FB69BAD9CD40A6DAC12CodeArtifactHashCE92982B",
"ParameterValue": "d24b53740e41ce155a5c316af128401539cb153c06281b70375c7a4015f7314d"
}
],
"StackName": "service1-ecs-cdk-dev-us-west-2",
"Tags": [],
"TemplateURL": "https://cdktoolkit-stagingbucket-XXXXXXXXXXXX.s3.amazonaws.com/cdk/service1-ecs-cdk-dev-us-west-2/48d3ff2b70c9b64d2d2494420804765881f2c8c310f4a93df8fc8f6b75927442.yml"
}
❌ service1-ecs-cdk-dev-us-west-2 failed: ValidationError: Parameter values specified for a template which does not require them.
Parameter values specified for a template which does not require them.
ValidationError: Parameter values specified for a template which does not require them.
at Request.extractError (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/protocol/query.js:50:29)
at Request.callListeners (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/usr/local/lib/node_modules/aws-cdk/node_modules/aws-sdk/lib/sequential_executor.js:116:18)Here the main service1-ecs-cdk-dev-us-west-2 stack:
{
"Resources": {
"Service1Cluster200D5793": {
"Type": "AWS::ECS::Cluster",
"Properties": {
"ClusterName": "service1-cdk-dev"
},
"Metadata": {
"aws:cdk:path": "service1-ecs-cdk-dev-us-west-2/Service1Cluster/Resource"
}
}
}
}Expected behavior
No parameters on the service1-ecs-cdk-dev-us-west-2 stack.
Version:
- Mac OS 10.14.5
- Typescript
- 0.34.0 (build 523807c)