serverless-dynamodb-local icon indicating copy to clipboard operation
serverless-dynamodb-local copied to clipboard

UnexpectedParameter: Unexpected key 'TimeToLiveSpecification'

Open W0lfbane opened this issue 7 years ago • 1 comments
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.

W0lfbane avatar Mar 02 '18 22:03 W0lfbane

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?

rehrumesh avatar Mar 07 '18 09:03 rehrumesh