J'essaye l'AWS CLI avec DynamoDB local.
Pendant que je travaillais, j'ai trouvé des problèmes.
Insertion et récupération d'éléments | DynamoDB, a expliqué. montre comment créer une table au format JSON. Mais cela n'a pas fonctionné pour moi. J'ai donc dû utiliser les opérations de base pour les tables - Amazon DynamoDB . Quoi qu'il en soit, cela a fonctionné.
Mais quel était le problème lors de la mise en place d'un objet.
J'ai essayé d'ajouter un élément à la base de données locale comme ceci:
aws dynamodb put-item \ --table-name UsersTable \ --item '{ "Username": {"S": "alexdebrie"} }' \ --endpoint-url http://localhost:8000
Mais il y avait une erreur comme celle-ci:
Options inconnues: {S :, alexdebrie},} ', Nom d'utilisateur:
Comment puis-je gérer cela?
PS: J'utilise Windows donc au lieu de \
, j'ai utilisé ^
.
5 Réponses :
Essayez avec git bash, cela a résolu mon problème. J'utilisais cmd depuis Windows et j'étais confronté au même problème de formatage. La même commande fonctionne dans git bash.
à la place de "
put \"
utiliser comme ça
aws dynamodb put-item \ --table-name UsersTable \ --item '{ \"Username\": {\"S\": \"alexdebrie\"} }' \
Voici un exemple en une ligne qui fonctionne sous Windows:
aws dynamodb put-item --table-name UsersTable --item "{\"Username\":{\"S\":\"alexdebrie\"}}" --endpoint-url http://localhost:8000
Donc, dans votre cas:
aws dynamodb put-item --table-name test --item "{\"id\":{\"S\":\"mars\"},\"miles\":{\"N\":\"999\"}}"
Quelques points à noter:
\"id\"
\"N\":\"999\"
Je ressens ta douleur. C'est horrible.
Vous pouvez également envisager de fournir des paramètres dans un fichier JSON en utilisant --cli-input-json
Je pense que le problème est spécifique uniquement sur Windows et non sur Mac ou Linux. Mais je suis d'accord avec @Jnana Palai. Mais assurez-vous que le JSON est également inclus dans "non"
De même: aws dynamodb put-item
--table-name UsersTable
--item "{" Nom d'utilisateur ": {" S ":" alexdebrie "}}" \
Si vous êtes sous Windows 10, le meilleur moyen de résoudre définitivement ce problème (récurrent) est d'installer le sous-système Windows pour Linux ( WSL ) avec un système Ubuntu, puis d'installer l'AWS CLI pour Linux comme ici ( AWS CLI Ubuntu ). Une fois que vous avez fait cela, vous pouvez utiliser les ~ 95% d'extraits de l'AWS CLI en ligne qui proviennent de systèmes Linux, et toutes les horribles absurdités de citations / échappements disparaissent! (Vous bénéficiez également de l'énorme avantage d'avoir Linux dans votre système Windows)
L'erreur que vous voyez est apparemment une erreur de formatage. L'avez-vous essayé sans utiliser de caractères d'échappement dans une seule chaîne?
Je l'ai essayé bien sûr, mais il montrait toujours la même erreur.