DynamoDB:ReturnConsumedCapacity 不返回 RCU 或 WCU

Bob*_*ley 4 amazon-dynamodb

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

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

无论您将 ReturnConsumedCapacity 设置为 TOTAL 还是 INDEXES,情况都是如此。

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

是否有办法退回 RCU 和 WCU?

这是一个示例查询:

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

Run Code Online (Sandbox Code Playgroud)

它返回类似这样的内容:

    "ConsumedCapacity": {
        "TableName": "tableName",
        "CapacityUnits": 128.5
    }
Run Code Online (Sandbox Code Playgroud)

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

    "ConsumedCapacity": {
        "TableName": "oaas-performance-table-dev",
        "CapacityUnits": 128.5,
        "Table": {
            "CapacityUnits": 128.5
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,几乎是一样的。无 RCU 或 WCU。

知道如何获取这些附加数据吗?

Col*_*nee 5

根据查询文档,这是预期的行为:

TOTAL- 响应仅包含操作的聚合 ConsumedCapacity。

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