share facebook facebook facebook twitter twitter menu hatena pocket slack

2020.11.30 MON

コマンドプロンプトでAWS CLIを使うときのJSONの取り扱い

西田 駿史

WRITTEN BY 西田 駿史

意外と忘れてハマりがちなので。

コマンドプロンプトでAWS CLIを使うときにJSONをそのままコマンドラインに記述すると上手くいきません。

$aws dynamodb  put-item --table-name Animals --item '{"id":{"S":"a"},"name":{"S":"dog"}}'

Linuxシェルなら上記の記述で大丈夫ですが。

>aws dynamodb  put-item --table-name Animals --item '{"id":{"S":"a"},"name":{"S":"dog"}}'

Error parsing parameter '--item': Expected: '=', received: ''' for input:
'{id:{S:a},name:{S:dog}}'

コマンドプロンプトだと引用符の扱いが異なるため、エラーになってしまいます。

>aws dynamodb  put-item --table-name Animals --item "{\"id\":{\"S\":\"a\"},\"name\":{\"S\":\"dog\"}}"

このように一番外側を二重引用符で囲って中のものはエスケープしてやると上手くいきます。

>type put.json
{"id":{"S":"a"},"name":{"S":"dog"}}
>aws dynamodb  put-item --table-name Animals --item file://put.json

外部ファイルに書いてやれば気にしなくてよいのでこちらの方がスマートですね。

元記事はこちら

コマンドプロンプトでAWS CLIを使うときのJSONの取り扱い

西田 駿史

西田 駿史

2019年4月入社。第四開発事業部グループリーダー。海岸オフィス所属

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。