本地DynamoDB的流支持?

20
我似乎无法在DynamoDB本地环境中启用流支持,它们是否受支持?我能找到的唯一迹象是在本地差异开发人员指南的最后一个要点中:
“如果使用DynamoDB Streams,则创建分片的速率可能会有所不同。在DynamoDB网络服务中,分片创建行为部分受表分区活动的影响。当在本地运行DynamoDB时,没有表分区。在任何情况下,片段都是短暂的,因此您的应用程序不应依赖于片段行为。”
对于dynamodb local,StreamSpecification似乎被忽略了,因此在调用createTable或describeTable时没有LatestStreamArn。
以下代码可在托管dynamodb服务中返回LatestStreamArn,但在dynamodb本地环境中则不行:
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)
  }
})
1个回答

18

我无法重现你的问题。 我执行的步骤如下:

  1. 这里下载 DynamoDB Local。
  2. 使用java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -inMemory -sharedDb启动 DynamoDB Local。
  3. 导航到 http://localhost:8000/shell/。
  4. 粘贴以下代码并单击播放按钮。我写的唯一区别是将ddb替换为dynamodb

我执行这些步骤后,得到了一个非空且非空的 LatestStreamArn: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 {
    console.log(data)
  }
})

1
我还无法确认这是否有效,但从点赞数量来看,这对许多其他用户有所帮助。已接受!谢谢。 - jschr
1
我在使用本地 Dynamo 时遇到了同样的问题,但是我使用了已经创建好的本地表格,没有指定流规范。当我重新创建本地表格时,它就可以正常工作了。 - Michal Moravcik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接