AWS CLI で「Error parsing parameter」が発生するときの対処方法

2021.07.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

AWS CLI でコマンドを実行するとError parsing parameterというエラーが表示されます。 AWS公式ドキュメントのコマンド例から値だけを書き換えているので、コマンドは間違っていないと思うのですが、対処方法を教えてください。

C:\> aws textract start-document-text-detection --document-location '{"S3Object":{"Bucket":"hato-test-bucket","Name":"TEST_OCR.pdf"}}'

Error parsing parameter '--document-location': Expected: '=', received: ''' for input:
'{S3Object:{Bucket:hato-test-bucket,Name:TEST_OCR.pdf}}'
^

どう対応すればいいの?

次の通りにコマンドを置き換えて、実行してください。

  • "\"
  • '"
# 変更前
aws textract start-document-text-detection --document-location '{"S3Object":{"Bucket":"hato-test-bucket","Name":"TEST_OCR.pdf"}}'

# 変更後
aws textract start-document-text-detection --document-location "{\"S3Object\":{\"Bucket\":\"hato-bucket\",\"Name\":\"TEST_OCR.pdf\"}}"

コマンドで使用できる引用符('")は、OS(WindowsやMac、Linux)によって異なり、Windowsではシングルクォーテーション(')を引用符として使用できません。

実行したコマンド例は、Mac、Linux向けであり、Windowsで実行する場合は、あらかじめダブルクォーテーション(")とエスケープ(\")に置き換えて実行してください。

参考資料

Windows コマンドプロンプトでは、JSON データ構造を二重引用符" "で囲む必要があります。また、コマンドプロセッサによって、JSON に埋め込まれた二重引用符が誤って解釈されないようにするには、以下の例のように、JSON データ構造内の各二重引用符\をエスケープする (バックスラッシュ"文字で始める) 必要もあります。