2016-01-19 16 views
7

Nie mogę uzyskać wsparcia strumieniowego działającego w dynamo db lokalnych, czy są one obsługiwane? Jedynym wskazaniem mogę stwierdzić, że są one, jest bardzo ostatni podpunkt w http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html#Tools.DynamoDBLocal.DifferencesObsługa strumienia dla lokalnego dynamodb?

Z dynamodb lokalnych, wydaje się, że StreamSpecification jest ignorowany, więc nie ma LatestStreamArn Dzwoniąc CreateTable lub describeTable

Poniższy kod zwraca usługę LatestStreamArn z usługą managed dynamodb, ale nie działa dynamodb local:

ddb.createTable({ 
    TableName: 'streaming_test', 

    AttributeDefinitions: [ 
    { AttributeName: 'id', AttributeType: 'S' } 
    ], 

    KeySchema: [ 
    { AttributeName: 'id', KeyType: 'HASH' } 
    ], 

    ProvisionedThroughput: { 
    ReadCapacityUnits: 5, 
    WriteCapacityUnits: 5 
    }, 

    StreamSpecification: { 
    StreamEnabled: true, 
    StreamViewType: 'NEW_AND_OLD_IMAGES' 
    } 
}, function (err, data) { 
    if (err) { 
    console.log(err, err.stack) 
    } else { 
    // data.TableDescription.StreamSpecification and 
    // data.TableDescription.LatestStreamArn are undefined 
    // for dynamodb local 
    console.log(data) 
    } 
}) 

Odpowiedz

5

Nie mogę odtworzyć Twojego problemu. Kroki wziąłem:

  1. Pobierz DynamoDB lokalny od here
  2. start DynamoDB lokalnej z java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -inMemory -sharedDb
  3. Przejdź do http://localhost:8000/shell/
  4. Wklej poniższy kod i kliknij przycisk odtwarzania. Jedyną różnicą między tym, co napisałem, a powyższym kodem, jest zastąpienie ddb przez dynamodb.

Kiedy to zrobiłem, otrzymałem niezerową i niepustą wersję LastStreamArn z arn:aws:dynamodb:ddblocal:000000000000:table/streaming_test/stream/2017-02-12T08:39:03.722.

dynamodb.createTable({ 
    TableName: 'streaming_test', 

    AttributeDefinitions: [ 
    { AttributeName: 'id', AttributeType: 'S' } 
    ], 

    KeySchema: [ 
    { AttributeName: 'id', KeyType: 'HASH' } 
    ], 

    ProvisionedThroughput: { 
    ReadCapacityUnits: 5, 
    WriteCapacityUnits: 5 
    }, 

    StreamSpecification: { 
    StreamEnabled: true, 
    StreamViewType: 'NEW_AND_OLD_IMAGES' 
    } 
}, function (err, data) { 
    if (err) { 
    console.log(err, err.stack) 
    } else { 
    // data.TableDescription.StreamSpecification and 
    // data.TableDescription.LatestStreamArn are undefined 
    // for dynamodb local 
    console.log(data) 
    } 
})