我希望能够使用 aws cli 更新 dynamodb 中的一行并更改其某些字段的值。
其中之一是布尔值。另一个是包含 unix 时间戳的数字字段。
aws --profile dev dynamodb update-item --table-name my-dyno-table \
--update-expression "SET deleted = false, updated = :updated" \
--expression-attribute-value '{":updated": {"N":`date +%s`}' \
--key '{ ":s1": { "S": "83418294-eae0-4f90-ad56-3972e8c12a0d"}}' \
--endpoint-url http://localhost:7070
我可以通过运行获取时间戳date +%s
。
但是,正如您在上面的 aws cli 命令中看到的,我无法将日期输出输入到
'{":updated": {"N":`date +%s`}'
zsh 的抱怨
解析参数“--表达式属性值”时出错:无效 JSON:期望值:第 1 行第 19 列(字符 18)接收到的 JSON:{":updated": {"N":
date +%s
}
date
将值放入该字符串的正确方法是什么?
答案1
我的问题是我把它们放在一对单引号中。
这是一个解决方案:
"{\":updated\": {\"N\":`date +%s`}}"