DynamoDB 不在流中显示更新的项目数据
DynamoDB doesn't show updated item data in stream
我有一个 DynamoDB table,其流类型为:NEW_IMAGE
,但我只将新添加的项目添加到流中的数据库中。
我没有得到现有项目何时被修改的数据。
有没有办法在流中做到这一点?要在流中发送更新的现有项目以及新项目的数据?
下面是我的无服务器代码
OrdersTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: OrdersTable-${self:provider.stage}
BillingMode: PAY_PER_REQUEST
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: createdAt
AttributeType: S
- AttributeName: ticker
AttributeType: S
- AttributeName: orderRate
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
- AttributeName: createdAt
KeyType: RANGE
GlobalSecondaryIndexes:
- IndexName: ticker_orderRate
KeySchema:
- AttributeName: ticker
KeyType: HASH
- AttributeName: orderRate
KeyType: RANGE
Projection:
ProjectionType: ALL
StreamSpecification:
StreamViewType: NEW_IMAGE
更新也应该是流的一部分,NEW_IMAGE
只是意味着只有更改的版本才会发送到流,即项目的“之后”版本。
NEW_IMAGE
- The entire item, as it appears after it was modified, is written to the stream.
— Docs
请注意,项目需要 更改 才能出现在流中,不会导致数据更改的 UpdateItem
调用不会'没出现。
我有一个 DynamoDB table,其流类型为:NEW_IMAGE
,但我只将新添加的项目添加到流中的数据库中。
我没有得到现有项目何时被修改的数据。
有没有办法在流中做到这一点?要在流中发送更新的现有项目以及新项目的数据?
下面是我的无服务器代码
OrdersTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: OrdersTable-${self:provider.stage}
BillingMode: PAY_PER_REQUEST
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: createdAt
AttributeType: S
- AttributeName: ticker
AttributeType: S
- AttributeName: orderRate
AttributeType: S
KeySchema:
- AttributeName: id
KeyType: HASH
- AttributeName: createdAt
KeyType: RANGE
GlobalSecondaryIndexes:
- IndexName: ticker_orderRate
KeySchema:
- AttributeName: ticker
KeyType: HASH
- AttributeName: orderRate
KeyType: RANGE
Projection:
ProjectionType: ALL
StreamSpecification:
StreamViewType: NEW_IMAGE
更新也应该是流的一部分,NEW_IMAGE
只是意味着只有更改的版本才会发送到流,即项目的“之后”版本。
NEW_IMAGE
- The entire item, as it appears after it was modified, is written to the stream.— Docs
请注意,项目需要 更改 才能出现在流中,不会导致数据更改的 UpdateItem
调用不会'没出现。