替换AWS CLI DynamoDB查询操作中的变量值



我正在编写一个shell脚本从dynamoDB表查询属性。我使用AWS CLI编写脚本。

我想找到AccountId从MY_TABLE_NAME为ReferenceId gfsdgrhfsh。当我在AttributeValueList中提供属性的确切值时,查询操作成功,并且我得到了正确的属性值。

aws dynamodb query --table-name MY_TABLE_NAME 
  --select SPECIFIC_ATTRIBUTES --attributes-to-get "AccountId" 
  --key-conditions '{"ReferenceId": {"AttributeValueList": [ {"S": "gfsdgrhfsh" } ], "ComparisonOperator": "EQ"} }' 
  --limit 1 | jq '.Items[0].AccountId.S'

上面的命令给了我正确的帐户id。

但是,当我将ReferenceId gfsdgrhfsh分配给一个变量,然后将该变量放入命令中时,我没有得到响应。

referenceId=gfsdgrhfsh

aws dynamodb query --table-name MY_TABLE_NAME 
  --select SPECIFIC_ATTRIBUTES --attributes-to-get "AccountId" 
  --key-conditions '{"ReferenceId": {"AttributeValueList": [ {"S": "$referenceId" } ], "ComparisonOperator": "EQ"} }' 
  --limit 1 | jq '.Items[0].AccountId.S'

有人能告诉我如何在命令中注入变量的值吗?我必须从文件中读取大量的referenceid来执行查询操作,所以我需要在命令中注入变量值。

弄清楚了,我们需要传递用双引号括起来的值。下面的命令可以工作:

aws dynamodb query --table-name MY_TABLE_NAME 
  --select SPECIFIC_ATTRIBUTES --attributes-to-get "AccountId" 
  --key-conditions '{"ReferenceId": {"AttributeValueList": [ {"S": '"$referenceId"' } ], "ComparisonOperator": "EQ"} }' 
  --limit 1 | jq '.Items[0].AccountId.S'

相关内容

  • 没有找到相关文章

最新更新