【问题标题】:AWSCli dynamodb update-item command syntaxAWSCli dynamodb update-item 命令语法
【发布时间】:2015-12-26 10:07:13
【问题描述】:

我正在使用 AmazonAwsCli 编写一个 shell 脚本来更新 dynamodb 表中项目的属性。我想为多个项目更新表中的属性。我正在从文件中读取属性值,并尝试通过在命令中注入 shell 脚本变量的值来更新表。 http://docs.aws.amazon.com/cli/latest/reference/dynamodb/update-item.html 提供的文档建议对表达式属性名称和表达式属性值使用单独的 json 文件。但是,我不想创建单独的 json 文件。相反,我想编写一个命令来更新给定属性值的项目。

My table name = MY_TABLE_NAME

hashkey = AccountId

shell script variable holding the value of AccountId = accountId

attribute name that needs to be updated = Version

shell script variable holding the value of Version = ver

我有类似的东西:

aws dynamodb update-item --table-name MY_TABLE_NAME --key '{"AccountId": {"S": '$accountId'}}' --update-expression "SET Version = '{"Version": {"S": '$ver'}}'" --condition-expression "attribute_exists(Version)" --return-values UPDATED_NEW

但是,上面的命令不起作用。有人能指出正确的语法吗?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-cli


    【解决方案1】:

    我的 AwsCli 版本不支持 --update-expression 选项。我改用了属性更新选项。

    这是我的命令:

    updatedVersion=aws dynamodb update-item --table-name MY_TABLE_NAME --key '{"AccountId": {"S": '$accountId'}}' --attribute-updates '{"Version": {"Value": {"S": '$desiredVersion'},"Action": "PUT"}}' --return-values UPDATED_NEW | jq '.Attributes.RuleSetVersion.S'

    【讨论】:

      【解决方案2】:

      下面是带有--update-expression的更新命令

       aws --region "us-east-1" dynamodb update-item \
       --table-name "MY_TABLE_NAME" --key \
       '{"Primary_Column_name":{"S":"Primary_Column_value"}}' \
       --update-expression 'SET #H = :h' \
       --expression-attribute-names '{"#H":"Column_name_to_change"}' \
       --expression-attribute-values '{":h":{"S":"Changed_Column_value"}}'
      

      【讨论】:

        【解决方案3】:

        其他答案在 MAC 和 Linux 上效果很好。 如果你想在 Windows 上运行它,你需要使用 " 引号而不是 ' 和双引号 "" 而不是单引号 "`"

        例子:

        aws dynamodb update-item --table-name MY_TABLE_NAME --key "{""PRIMARY_KEY_NAME"":{""S"":""PRIMARY_KEY_VALUE""}}" --update-expression "SET #G = :g"  --expression-attribute-names "{""#G"":""COLUMN_NAME_TO_UPDATE_VALUE""}" --expression-attribute-values "{"":g"":{""N"":""DESIRED_VALUE""}}"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 2021-05-23
          • 2015-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多