Windows で AWS CLI のエラー「Unknown options:」を回避するには

Windows で AWS CLI のエラー「Unknown options:」を回避するには

Clock Icon2024.06.05

困っていた内容

Windows のコマンドプロンプトで AWS CLI を実行するとUnknown options:エラーが表示されます。
バージョンが古いのかと思い AWS CLI を最新版に更新しましたが、解消しません。対処方法を教えてください。

C:\Users\Administrator>aws lambda invoke --function-name hato-lambda --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

Unknown options: }', response.json, value

どう対応すればいいの?

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

  • "\"
  • '"
# 変更前
aws lambda invoke --function-name hato-lambda --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

# 変更後
aws lambda invoke --function-name hato-lambda --cli-binary-format raw-in-base64-out --payload "{ \"key\": \"value\" }" response.json

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

そのため、ドキュメント等に記載の Mac、Linux 向けのサンプルコマンドを実行すると、エラーになる場合があります。

シングルクォーテーションが使用されている場合は、あらかじめダブルクォーテーション(")とエスケープ(\")に置き換えて実行してください。

参考資料

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

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.