2015-09-27 4 views
0

J'écris un script shell pour interroger un attribut à partir d'une table dynamoDB. J'utilise AWS CLI pour écrire le script.Substitution de valeur de variable dans l'opération de requête AWS CLI DynamoDB

Je souhaite trouver AccountId de MY_TABLE_NAME pour ReferenceId gfsdgrhfsh. Lorsque je fournis la valeur exacte de l'attribut dans AttributeValueList, l'opération de requête réussit et j'obtiens la valeur d'attribut correcte. Aws dynamodb query --table-name MY_TABLE_NAME --sélectionne SPECIFIC_ATTRIBUTES --attributes-to-get "AccountId" --key-conditions '{"ReferenceId": {"AttributeValueList": [{"S": " gfsdgrhfsh "}]," ComparisonOperator ":" EQ "}} '--limit 1 | jq '.Items [0] .AccountId.S'

La commande ci-dessus me donne l'identifiant de compte correct. Toutefois, lorsque j'affecte le ReferenceId gfsdgrhfsh à une variable, puis que j'applique cette variable dans la commande, je n'obtiens pas de réponse.

referenceId = gfsdgrhfsh

aws DynamoDB requête --table nom 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'

Quelqu'un peut-il donner des conseils sur la façon d'injecter la valeur de la variable dans la commande. Je dois effectuer une opération de requête pour beaucoup de referenceIds en les lisant à partir d'un fichier, donc j'ai besoin d'injecter la valeur de la variable dans la commande.

Toute aide serait appréciée.

Répondre

0

En d'autres termes, nous devons passer la valeur entre guillemets. Les travaux de commande ci-dessous:

SSFE DynamoDB requête --table nom 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'