背景
パラメータストアにURLを保存しようとするとエラーになる
aws cli の ssm put-parameterコマンドで、valueにURL形式の文字列を保存しようとすると、以下のようなエラーになります。
$ aws ssm put-parameter --name /AppName/Env/Twitter/CallbackUrl --type String --value "http://127.0.0.1:8080/twitter-auth-callback" --description "CallbackURL for Twitter OAuth."
Error parsing parameter '--value': Unable to retrieve http://127.0.0.1:8080/twitter-auth-callback: Could not connect to the endpoint URL: "http://127.0.0.1:8080/twitter-auth-callback"
マネジメントコンソールからは登録できる
上記と同じ内容のパラメータを、マネジメントコンソールから登録する場合は、問題なく登録できました。
解決方法
aws-cli の以下のissueのコメントに書いてくださっているものそのままなのですが、 --cli-input-json オプションを使用すると回避できました。
https://github.com/aws/aws-cli/issues/3076
上記のコマンドの場合は、--cli-input-json オプションを使用すると以下のようになります。
aws ssm put-parameter --cli-input-json '{"Name": "/AppName/Env/Twitter/CallbackUrl", "Type": "String", "Value": "http://127.0.0.1:8080/twitter-auth-callback", "Description": "CallbackURL for Twitter OAuth."}'