在我的一个AWS DynamoDB表中,有几个项目需要在管道中进行更新。下面的json显示了AWS DynamoDB表中的一个项:
{
"DeploymentConfigs": {
"L": [
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
},
{
"M": {
"Config": {
"M": {
"Name": {
"S": "online-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
}
]
},
"environment": {
"S": "komo-claimcenter"
}
}
如何更新DeploymentConfigs
中的对象?主分区键为environment
。对象
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "3"
}
}
}
}
}
应更新为
{
"M": {
"Config": {
"M": {
"Name": {
"S": "batch-komo"
},
"Replicas": {
"N": "5"
}
}
}
}
}
我不知道如何在AWS CLI中实现。
要更新项中的嵌套部分,您可以使用带有属性路径的UpdateExpression
。例如:SET DeploymentConfigs[0].Config.Replicas = :val
.
然而,问题是你的顶级属性DeploymentConfigs
是一个列表,所以要修改它的一个项目,你需要知道索引(在这个例子中是0)。如果你不知道索引,你就有问题了——没有办法"修改列表项目name='batch-komo'"或者类似的事情……如果您需要做这样的事情,您必须读取整个顶级属性,在客户端修改它,然后将它写回来(或者只是很小的更改,现在您知道了索引)。