Amazon web services AWS CLI DynamoDB命令

Amazon web services AWS CLI DynamoDB命令,amazon-web-services,amazon-dynamodb,aws-cli,Amazon Web Services,Amazon Dynamodb,Aws Cli,我正在编写一个shell脚本文件,用于使用AWS CLI在dynamoDB上执行一些操作。我正在尝试更新dynamodb表中某个项的属性,如果该属性已经存在 但是,我对updateitem命令的语法不太熟悉。我想用一些值更新名为'conf'的属性。但是,我无法理解该命令中SET的语法。这是我到目前为止得到的: aws dynamodb update-item --table-name MY_TABLE_NAME --key '{"AccountId": {"S": accountId}}' 我

我正在编写一个shell脚本文件,用于使用AWS CLI在dynamoDB上执行一些操作。我正在尝试更新dynamodb表中某个项的属性,如果该属性已经存在

但是,我对updateitem命令的语法不太熟悉。我想用一些值更新名为'conf'的属性。但是,我无法理解该命令中SET的语法。这是我到目前为止得到的:

aws dynamodb update-item --table-name MY_TABLE_NAME --key '{"AccountId": {"S": accountId}}'
我知道上面必须跟在SET选项后面


任何帮助都将不胜感激。

我想应该是这样的:

aws dynamodb更新项--表名MY_表名--键file://update-key.json --更新表达式“SET conf=:newconf”--表达式属性值file://update-attr-values.json --条件表达式“attribute_exists(conf)”--返回值ALL_NEW

更新key.json

{
    "AccountId": {
        "S": "account123"
    }
}
{
    ":newconf": {
        "S": "new conf value"
    }
}
更新attr values.json

{
    "AccountId": {
        "S": "account123"
    }
}
{
    ":newconf": {
        "S": "new conf value"
    }
}

我想它会像这样:

aws dynamodb更新项--表名MY_表名--键file://update-key.json --更新表达式“SET conf=:newconf”--表达式属性值file://update-attr-values.json --条件表达式“attribute_exists(conf)”--返回值ALL_NEW

更新key.json

{
    "AccountId": {
        "S": "account123"
    }
}
{
    ":newconf": {
        "S": "new conf value"
    }
}
更新attr values.json

{
    "AccountId": {
        "S": "account123"
    }
}
{
    ":newconf": {
        "S": "new conf value"
    }
}

没有文件也可以做到这一点,但答案隐藏在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的开发者指南可在此处找到:


在Atomic Counters第206页上,有一个示例说明了如何在没有文件的情况下使用
--表达式属性值
在没有文件的情况下可以这样做,但答案隐藏在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的开发者指南可在此处找到:


在Atomic Counters第206页上,有一个示例说明如何在没有文件的情况下使用
--expression属性值
“我的用例”(My usecase),如果要通过一次读取一个文件来对各种帐户进行此更新。因此,我不想为键和表达式属性值创建单独的json文件。您可以建议只更新属性值而不使用任何json文件的命令吗?您可以使用shell脚本变量。如何遍历该文件?我希望在不需要提供json文件的情况下为更新项使用类似的命令。我将逐行遍历文件,并对每一行更新表。因此,我希望在命令中插入shell脚本变量的值,而不是使用单独的json文件\“$referenceId\”}],“ComparisonOperator”:“EQ”}}'--限制1 | jq'。项[0].AccountId.S'我想要一个类似的命令来更新表的属性,而不使用json文件。我的用例是通过一次读取一个文件来更新不同的帐户。因此,我不想为键和表达式属性值创建单独的json文件。您能建议只更新属性值的命令吗不使用任何json文件?您可以使用shell脚本变量。如何遍历该文件?我希望在不需要提供json文件的情况下,对更新项使用类似的命令。我将逐行遍历该文件,并对每一行更新该表。因此,我希望在命令,而不使用单独的json文件。以下是为给定引用id查询表的命令:aws dynamodb query--表名MY_table--选择特定的_属性--属性以获取“AccountId”--关键条件“{”ReferenceId:“{”AttributeValueList:“[{”S:“\”$ReferenceId\”,“ComparisonOperator:“EQ”}--限制1 | jq'.Items[0].AccountId.S'我需要一个类似的命令来更新表的属性,而不使用json文件。