DynamoDB:ReturnConsumedCapacity 不 return RCU 或 WCU

DynamoDB: ReturnConsumedCapacity does not return RCU or WCUs

写入 DynamoDB 或从 DynamoDB 读取时,您可以指定:ReturnConsumedCapacity。

当您执行此操作时,API 会执行 return 总 CapacityUnits,但我无法将其转换为 return ReadCapacityUnits 或 WriteCapacityUnits。文档表明我们确实应该获取有关 RCU 和 WCU 的数据:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ConsumedCapacity.html

无论您是否将 ReturnConsumedCapacity 设置为 TOTAL 或 INDEXES,都是如此。

如果您也只是简单地执行读取查询,这也是正确的。

有没有办法获得 RCU 和 WCU returned?

这是一个示例查询:

aws.exe dynamodb query \
    --table-name tableName \
    --index-name GSI1 \
    --key-condition-expression "GSI1PK = :pk" \
    --expression-attribute-value '{":pk": {"S": "blah"}}' \
    --return-consumed-capacity TOTAL

其中 return 是这样的:

    "ConsumedCapacity": {
        "TableName": "tableName",
        "CapacityUnits": 128.5
    }

如果我将请求从 TOTAL 更改为 INDEXES,我得到:

    "ConsumedCapacity": {
        "TableName": "oaas-performance-table-dev",
        "CapacityUnits": 128.5,
        "Table": {
            "CapacityUnits": 128.5
        }
    }
}

换句话说,差不多。没有 RCU 或 WCU。

知道如何获取这些额外数据吗?

这是预期的行为,根据 Query docs:

TOTAL - The response includes only the aggregate ConsumedCapacity for the operation.

查询只能消耗读取容量,因此 CapacityUnits 实际上与 ReadCapacityUnits 相同,而 WriteCapacityUnits 始终为 0。