serverless-dynamodb-local
serverless-dynamodb-local copied to clipboard
UnexpectedParameter: Unexpected key 'TimeToLiveSpecification'
trafficstars
Actual Behaviour
When running with the following serverless config for Dynamo:
TodosDynamoDbTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Delete
Properties:
AttributeDefinitions:
-
AttributeName: eviSessionId
AttributeType: S
KeySchema:
-
AttributeName: eviSessionId
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 50
WriteCapacityUnits: 15
TableName: ${self:provider.environment.DYNAMODB_TABLE}
TimeToLiveSpecification:
AttributeName: expiresOn
Enabled: true
I get this error as a result of the TimeToLiveSpecification field:
UnexpectedParameter: Unexpected key 'TimeToLiveSpecification' found in params
at ParamValidator.fail (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/param_validator.js:50:37)
at ParamValidator.validateStructure (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/param_validator.js:77:14)
at ParamValidator.validateMember (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/param_validator.js:88:21)
at ParamValidator.validate (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/param_validator.js:34:10)
at Request.VALIDATE_PARAMETERS (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/event_listeners.js:125:42)
at Request.callListeners (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at callNextListener (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/sequential_executor.js:95:12)
at /Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/event_listeners.js:85:9
at finish (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/config.js:320:7)
at /Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/config.js:338:9
at Credentials.get (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/credentials.js:126:7)
at getAsyncCredentials (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/config.js:332:24)
at Config.getCredentials (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/config.js:352:9)
at Request.VALIDATE_CREDENTIALS (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/event_listeners.js:80:26)
at Request.callListeners (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/sequential_executor.js:101:18)
at Request.emit (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/state_machine.js:14:12)
at Request.runTo (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/request.js:403:15)
at Request.send (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/request.js:367:10)
at makeRequest (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/service.js:193:27)
at svc.(anonymous function) [as createTable] (/Users/lilith.saer/Projects/session-access-cache/node_modules/aws-sdk/lib/service.js:499:23)
at BbPromise (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless-dynamodb-local/index.js:200:26)
at ServerlessDynamodbLocal.createTable (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless-dynamodb-local/index.js:199:16)
at BbPromise.each (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless-dynamodb-local/index.js:122:55)
From previous event:
at ServerlessDynamodbLocal.migrateHandler (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless-dynamodb-local/index.js:122:26)
at BbPromise.resolve.then (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless-dynamodb-local/index.js:157:45)
From previous event:
at ServerlessDynamodbLocal.startHandler (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless-dynamodb-local/index.js:157:10)
at BbPromise.reduce (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless/lib/classes/PluginManager.js:372:55)
From previous event:
at PluginManager.invoke (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless/lib/classes/PluginManager.js:372:22)
at PluginManager.run (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless/lib/classes/PluginManager.js:403:17)
at variables.populateService.then (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless/lib/Serverless.js:102:33)
at runCallback (timers.js:666:20)
at tryOnImmediate (timers.js:639:5)
at processImmediate [as _immediateCallback] (timers.js:611:5)
From previous event:
at Serverless.run (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless/lib/Serverless.js:89:74)
at serverless.init.then (/Users/lilith.saer/Projects/session-access-cache/node_modules/serverless/bin/serverless:42:50)
Expected Behaviour
This should start up without issue.
Steps to reproduce it
Run npm start with the following field included in the DynamoDB specs:
TimeToLiveSpecification:
AttributeName: expiresOn
Enabled: true
Would you like to work on the issue?
I would like to work on resolving this myself, but do not know where to start. If someone can point me in the right direction I would not mind taking the time to attempt a resolution.
Hi @DrakkenSaer is it connected with #110 ? If so it should be fixed. If not you can refer the implementation of the same PR and take things forward?