我正在编写一个shell脚本文件,用于使用AWS CLI在dynamoDB上执行某些操作。我正在尝试更新dynamodb表中项目的属性,如果该属性已存在。
但是,我对update-item命令的语法不满意。我想用一些值更新名为'conf'的属性。但是,我无法在命令中找出SET的语法。这就是我到现在所拥有的:
aws dynamodb update-item --table-name MY_TABLE_NAME --key '{"AccountId": {"S": accountId}}'
我知道以上必须遵循SET选项。
任何帮助都将不胜感激。
答案 0 :(得分:2)
我认为它看起来像这样:
aws dynamodb update-item --table-name MY_TABLE_NAME --key file://update-key.json --update-expression“SET conf =:newconf”--expression-attribute-values file:// update -attr-values.json --condition-expression“attribute_exists(conf)” - return-values ALL_NEW
<强>更新key.json 强>
{
"AccountId": {
"S": "account123"
}
}
<强>更新-ATTR-values.json 强>
{
":newconf": {
"S": "new conf value"
}
}
答案 1 :(得分:0)
可以在没有文件的情况下执行此操作,但答案隐藏在dynamodb的700多页开发人员指南中:
aws dynamodb update-item \
--region MY_REGION \
--table-name MY_TABLE_NAME \
--key='{"AccountId": {"S": accountId}}' \
--update-expression 'SET conf=:newconf' \
--expression-attribute-values '{":newconf":{"S":"new conf value"}}'
可以在此处找到Dynamo DB的开发人员指南:Dynamo DB Developer guide
Atomic Counters在206页上,有一个如何在没有文件的情况下使用--expression-attribute-values