- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在执行transactWrite
( https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#transactWrite-property ) 向 DynamoDb 发出指令并期望返回 ItemCollectionMetrics
(我在请求中指定 ReturnItemCollectionMetrics: 'SIZE'
)。
对象返回空 {}
即使 dynamo 数据库表上发生了更改。
有人对此有什么想法吗?
代码
const dynamoResponse = await dynamoDbDocumentClient.transactWrite({
TransactItems: [
{
Put: {
TableName: ENV.BLAH_CONTENT_COUNT_MESSAGES_TABLE,
ExpressionAttributeNames : {
'#v' : 'v',
},
ExpressionAttributeValues : {
':v' : blah.v
},
ConditionExpression: '(attribute_exists(blahId) AND #v<>:v) OR attribute_not_exists(blahId)',
Item: {...blahCountMessage}
}
},
{
Update: {
TableName: ENV.BLAH_CONTENT_COUNTS_TABLE,
Key: { id: blahContentCount.id },
ExpressionAttributeNames : {
'#v' : 'v',
'#count' : 'count',
'#contentId': 'contentId'
},
ExpressionAttributeValues : {
':v' : 1,
':count' : deleted ? -1: 1,
':contentId': blahContentCount.contentId,
':defaultNumber': 0
},
ConditionExpression: 'attribute_not_exists(cognitoId)',
UpdateExpression: 'SET #contentId = :contentId, #count = if_not_exists(#count, :defaultNumber) + :count, #v = if_not_exists(#v, :defaultNumber) + :v',
ReturnValuesOnConditionCheckFailure: 'ALL_OLD'
}
}
],
ReturnItemCollectionMetrics: 'SIZE'
}).promise();
输出
console.log(JSON.stringify(dynamoResponse.ItemCollectionMetrics)); // {}
谢谢!
最佳答案
返回项目集合指标:
“有关受操作影响的项目集合的信息(如果有)。仅当请求要求时才返回 ItemCollectionMetrics。如果表没有任何本地二级索引,则响应中不会返回此信息。 ”
每:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ItemCollectionMetrics.html
是否该事务没有更新任何内容 - 或者您没有 LSI?
还值得注意的是:文档说交易被禁用“全局表”,我不太确定它们是否意味着 GSI...但我不是使用 LSI 这可能也是为什么没有 ItemCollectionMetrics 的原因返回以响应我的交易。
如果您更新参数对象以包含 ReturnConsumedCapacity: 'TOTAL'
响应对象应如下所示:
[ { TableName: 'table_name',
CapacityUnits: 8,
WriteCapacityUnits: 8 } ] }
关于javascript - 使用 DynamoDB.DocumentClient 成功进行 transactWrite 后,ItemCollectionMetrics 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58590816/
我正在执行transactWrite ( https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient
我有一个 lambda 函数 (node.js),需要在两个 DynamoDB 表上执行事务。 let ddb = new AWS.DynamoDB.DocumentClient(); ddb.t
假设我正在进行更新和删除: const transactionParams = { ReturnConsumedCapacity: "INDEXES", TransactItems:
我是一名优秀的程序员,十分优秀!