Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aws ssm put-parameter performs an HTTP GET request when the value param is an url #2507

Closed
waltervargas opened this issue Mar 21, 2017 · 59 comments
Labels
feature-request A feature should be added or improved. v2

Comments

@waltervargas
Copy link

When you try to put a parameter into ssm-param-store with an url on the value aws-cli perform a HTTP GET request to the value.

./aws --debug ssm put-parameter --value http://www.google.com --name prod.dev.microservice1.db.secret  --region us-west-2 --overwrite --type String 2> /tmp/issue.log
❯ grep urllib issue.log 
2017-03-21 23:01:40,096 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): www.google.com
2017-03-21 23:01:40,154 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET / HTTP/1.1" 200 4376
2017-03-21 23:01:40,158 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): 169.254.169.254
2017-03-21 23:01:40,159 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET /latest/meta-data/iam/security-credentials/ HTTP/1.1" 200 47
2017-03-21 23:01:40,160 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): 169.254.169.254
2017-03-21 23:01:40,161 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET /latest/meta-data/iam/security-credentials/admin-jenkins-JenkinsInstanceRole-1VHU2R6QMGAWT HTTP/1.1" 200 882
2017-03-21 23:01:40,204 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): ssm.us-west-2.amazonaws.com
2017-03-21 23:01:40,236 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "POST / HTTP/1.1" 400 10739
2017-03-21 23:01:40,049 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.11.64 Python/2.7.12 Linux/4.4.41-36.55.amzn1.x86_64 botocore/1.5.27
2017-03-21 23:01:40,049 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['--debug', 'ssm', 'put-parameter', '--name', 'prod.dev.microservice1.db.secret', '--value', 'http://www.google.com', '--region', 'us-west-2', '--overwrite', '--type', 'String']
2017-03-21 23:01:40,050 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_scalar_parsers at 0x7f406ed2af50>
2017-03-21 23:01:40,050 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x7f406f5d7410>
2017-03-21 23:01:40,052 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/.local/lib/python2.7/site-packages/botocore/data/ssm/2014-11-06/service-2.json
2017-03-21 23:01:40,084 - MainThread - botocore.hooks - DEBUG - Event service-data-loaded.ssm: calling handler <function register_retries_for_service at 0x7f406fec9e60>
2017-03-21 23:01:40,084 - MainThread - botocore.handlers - DEBUG - Registering retry handlers for service: ssm
2017-03-21 23:01:40,087 - MainThread - botocore.hooks - DEBUG - Event building-command-table.ssm: calling handler <function add_waiters at 0x7f406ecb91b8>
2017-03-21 23:01:40,090 - MainThread - awscli.clidriver - DEBUG - OrderedDict([(u'name', <awscli.arguments.CLIArgument object at 0x7f406e54a990>), (u'description', <awscli.arguments.CLIArgument object at 0x7f406e54a9d0>), (u'value', <awscli.arguments.CLIArgument object at 0x7f406e54aa10>), (u'type', <awscli.arguments.CLIArgument object at 0x7f406e54aa50>), (u'key-id', <awscli.arguments.CLIArgument object at 0x7f406e54aa90>), (u'overwrite', <awscli.arguments.BooleanArgument object at 0x7f406e54aad0>), (u'no-overwrite', <awscli.arguments.BooleanArgument object at 0x7f406e54ab10>)])
2017-03-21 23:01:40,090 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.ssm.put-parameter: calling handler <function add_streaming_output_arg at 0x7f406ecb0230>
2017-03-21 23:01:40,090 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.ssm.put-parameter: calling handler <function add_cli_input_json at 0x7f406f5e0230>
2017-03-21 23:01:40,090 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.ssm.put-parameter: calling handler <function unify_paging_params at 0x7f406ed3a488>
2017-03-21 23:01:40,092 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/.local/lib/python2.7/site-packages/botocore/data/ssm/2014-11-06/paginators-1.json
2017-03-21 23:01:40,092 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.ssm.put-parameter: calling handler <function add_generate_skeleton at 0x7f406edaa500>
2017-03-21 23:01:40,092 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.ssm.put-parameter: calling handler <bound method CliInputJSONArgument.override_required_args of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7f406e54ab50>>
2017-03-21 23:01:40,092 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.ssm.put-parameter: calling handler <bound method GenerateCliSkeletonArgument.override_required_args of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7f406e5599d0>>
2017-03-21 23:01:40,093 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.name: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,093 - MainThread - botocore.hooks - DEBUG - Event process-cli-arg.ssm.put-parameter: calling handler <awscli.argprocess.ParamShorthandParser object at 0x7f406f637390>
2017-03-21 23:01:40,094 - MainThread - awscli.arguments - DEBUG - Unpacked value of u'prod.dev.microservice1.db.secret' for parameter "name": u'prod.dev.microservice1.db.secret'
2017-03-21 23:01:40,094 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.description: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,094 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.value: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,096 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): www.google.com
2017-03-21 23:01:40,154 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET / HTTP/1.1" 200 4376
2017-03-21 23:01:40,156 - MainThread - botocore.hooks - DEBUG - Event process-cli-arg.ssm.put-parameter: calling handler <awscli.argprocess.ParamShorthandParser object at 0x7f406f637390>
2017-03-21 23:01:40,156 - MainThread - awscli.arguments - DEBUG - Unpacked value of u'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world\'s information, including webpages, images, videos and more. Google has many special features to help you find exactly what you\'re looking for." name="description"><meta content="noodp" name="robots"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:\'1LDRWNX4Bqmc0gKBpL6AAw\',kEXPI:\'1352992,3700289,3700347,3700405,4026240,4029815,4031109,4032678,4036527,4038012,4039268,4043492,4045841,4048347,4065786,4072364,4072774,4073405,4073776,4075963,4076095,4076997,4078768,4079954,4081039,4081165,4082665,4083030,4085336,4088408,4088525,4090550,4090553,4090806,4091353,4092182,4092934,4093498,4093813,4094253,4094544,4094878,4095381,4095998,4096324,4096906,4096950,4097153,4097194,4097203,4097922,4097929,4097951,4098048,4098721,4098728,4098752,4098777,4099958,4100169,4100380,4101301,4101328,4101375,4101377,4101489,4101599,4102020,4102099,4102411,4102631,4102658,4102827,4103061,8500572,8503585,8507380,8508229,8508707,8508931,8509037,8509373,10200083,10201957,10202231,19001918,19001919,19001920,19001921,41027342\',authuser:0,kscs:\'c9c918f0_24\'};google.kHL=\'en\';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(c){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,c,d,g){a=google.logUrl(a,b,c,d,g);if(""!=a){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,c,d,g){var e="",f=google.ls||"";c||-1!=b.search("&ei=")||(e="&ei="+google.getEI(d),-1==b.search("&lei=")&&(d=google.getLEI(d))&&(e+="&lei="+d));a=c||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+e+f+"&zx="+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b];return!1};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);var a=window.location,b=a.href.indexOf("#");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf("#")&&a.replace("/search?"+c.replace(/(^|&)fp=[^&]*/g,"")+"&cad=h")};</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}\n</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}</style><script></script><link href="/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon"></head><body bgcolor="#fff"><script>(function(){var src=\'/images/nav_logo229.png\';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}\nif (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}\n}\n})();</script><div id="mngb"> <div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="http://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="http://maps.google.com/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="http://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="http://news.google.com/nwshp?hl=en&tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="https://www.google.com/intl/en/options/"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a  href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><br clear="all" id="lgpd"><div id="lga"><img alt="Google" height="92" src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" style="padding:28px 0 14px" width="272" id="hplogo" onload="window.lol&&lol()"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><input name="biw" type="hidden"><input name="bih" type="hidden"><div class="ds" style="height:32px;margin:4px 0"><input style="color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top" autocomplete="off" class="lst" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" value="I\'m Feeling Lucky" name="btnI" onclick="if(this.form.q.value)this.checked=1; else top.location=\'/doodles/\'" type="submit"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en&amp;authuser=0">Advanced search</a><a href="/language_tools?hl=en&amp;authuser=0">Language tools</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"></form><div id="gac_scont"></div><div style="font-size:83%;min-height:3.5em"><br></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="fll"><a href="/intl/en/ads/">Advertising\xa0Programs</a><a href="/services/">Business Solutions</a><a href="https://plus.google.com/116899029375914044550" rel="publisher">+Google</a><a href="/intl/en/about.html">About Google</a></div></div><p style="color:#767676;font-size:8pt">&copy; 2017 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><script>(function(){window.google.cdo={height:0,width:0};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b)var c=window.document,d="CSS1Compat"==c.compatMode?c.documentElement:c.body,a=d.clientWidth,b=d.clientHeight;a&&b&&(a!=google.cdo.width||b!=google.cdo.height)&&google.log("","","/client_204?&atyp=i&biw="+a+"&bih="+b+"&ei="+google.kEI);}).call(this);})();</script><div id="xjsd"></div><div id="xjsi"><script>(function(){function c(b){window.setTimeout(function(){var a=document.createElement("script");a.src=b;document.getElementById("xjsd").appendChild(a)},0)}google.dljp=function(b,a){google.xjsu=b;c(a)};google.dlj=c;}).call(this);(function(){window.google.xjsrm=[];})();if(google.y)google.y.first=[];if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp(\'/xjs/_/js/k\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\x3dsb_he,d/am\\x3dAAE/rt\\x3dj/d\\x3d1/t\\x3dzcms/rs\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg\',\'/xjs/_/js/k\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\x3dsb_he,d/am\\x3dAAE/rt\\x3dj/d\\x3d1/t\\x3dzcms/rs\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg\');google.xjs=1;}google.pmc={"sb_he":{"agen":true,"cgen":true,"client":"heirloom-hp","dh":true,"dhqt":true,"ds":"","fl":true,"host":"google.com","isbh":28,"jam":0,"jsonp":true,"msgs":{"cibl":"Clear Search","dym":"Did you mean:","lcky":"I\\u0026#39;m Feeling Lucky","lml":"Learn more","oskt":"Input tools","psrc":"This search was removed from your \\u003Ca href=\\"/history\\"\\u003EWeb History\\u003C/a\\u003E","psrl":"Remove","sbit":"Search by image","srch":"Google Search"},"nds":true,"ovr":{},"pq":"","refpd":true,"rfs":[],"sbpl":24,"sbpr":24,"scd":10,"sce":5,"stok":"SoujP_jZCl8__547pTsXrZfrXzc"},"d":{},"YFCs/g":{}};google.y.first.push(function(){if(google.med){google.med(\'init\');google.initHistory();google.med(\'history\');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}\n</script></div></body></html>' for parameter "value": u'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world\'s information, including webpages, images, videos and more. Google has many special features to help you find exactly what you\'re looking for." name="description"><meta content="noodp" name="robots"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:\'1LDRWNX4Bqmc0gKBpL6AAw\',kEXPI:\'1352992,3700289,3700347,3700405,4026240,4029815,4031109,4032678,4036527,4038012,4039268,4043492,4045841,4048347,4065786,4072364,4072774,4073405,4073776,4075963,4076095,4076997,4078768,4079954,4081039,4081165,4082665,4083030,4085336,4088408,4088525,4090550,4090553,4090806,4091353,4092182,4092934,4093498,4093813,4094253,4094544,4094878,4095381,4095998,4096324,4096906,4096950,4097153,4097194,4097203,4097922,4097929,4097951,4098048,4098721,4098728,4098752,4098777,4099958,4100169,4100380,4101301,4101328,4101375,4101377,4101489,4101599,4102020,4102099,4102411,4102631,4102658,4102827,4103061,8500572,8503585,8507380,8508229,8508707,8508931,8509037,8509373,10200083,10201957,10202231,19001918,19001919,19001920,19001921,41027342\',authuser:0,kscs:\'c9c918f0_24\'};google.kHL=\'en\';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(c){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,c,d,g){a=google.logUrl(a,b,c,d,g);if(""!=a){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,c,d,g){var e="",f=google.ls||"";c||-1!=b.search("&ei=")||(e="&ei="+google.getEI(d),-1==b.search("&lei=")&&(d=google.getLEI(d))&&(e+="&lei="+d));a=c||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+e+f+"&zx="+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b];return!1};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);var a=window.location,b=a.href.indexOf("#");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf("#")&&a.replace("/search?"+c.replace(/(^|&)fp=[^&]*/g,"")+"&cad=h")};</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}\n</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}</style><script></script><link href="/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon"></head><body bgcolor="#fff"><script>(function(){var src=\'/images/nav_logo229.png\';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}\nif (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}\n}\n})();</script><div id="mngb"> <div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="http://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="http://maps.google.com/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="http://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="http://news.google.com/nwshp?hl=en&tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="https://www.google.com/intl/en/options/"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a  href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><br clear="all" id="lgpd"><div id="lga"><img alt="Google" height="92" src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" style="padding:28px 0 14px" width="272" id="hplogo" onload="window.lol&&lol()"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><input name="biw" type="hidden"><input name="bih" type="hidden"><div class="ds" style="height:32px;margin:4px 0"><input style="color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top" autocomplete="off" class="lst" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" value="I\'m Feeling Lucky" name="btnI" onclick="if(this.form.q.value)this.checked=1; else top.location=\'/doodles/\'" type="submit"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en&amp;authuser=0">Advanced search</a><a href="/language_tools?hl=en&amp;authuser=0">Language tools</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"></form><div id="gac_scont"></div><div style="font-size:83%;min-height:3.5em"><br></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="fll"><a href="/intl/en/ads/">Advertising\xa0Programs</a><a href="/services/">Business Solutions</a><a href="https://plus.google.com/116899029375914044550" rel="publisher">+Google</a><a href="/intl/en/about.html">About Google</a></div></div><p style="color:#767676;font-size:8pt">&copy; 2017 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><script>(function(){window.google.cdo={height:0,width:0};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b)var c=window.document,d="CSS1Compat"==c.compatMode?c.documentElement:c.body,a=d.clientWidth,b=d.clientHeight;a&&b&&(a!=google.cdo.width||b!=google.cdo.height)&&google.log("","","/client_204?&atyp=i&biw="+a+"&bih="+b+"&ei="+google.kEI);}).call(this);})();</script><div id="xjsd"></div><div id="xjsi"><script>(function(){function c(b){window.setTimeout(function(){var a=document.createElement("script");a.src=b;document.getElementById("xjsd").appendChild(a)},0)}google.dljp=function(b,a){google.xjsu=b;c(a)};google.dlj=c;}).call(this);(function(){window.google.xjsrm=[];})();if(google.y)google.y.first=[];if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp(\'/xjs/_/js/k\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\x3dsb_he,d/am\\x3dAAE/rt\\x3dj/d\\x3d1/t\\x3dzcms/rs\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg\',\'/xjs/_/js/k\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\x3dsb_he,d/am\\x3dAAE/rt\\x3dj/d\\x3d1/t\\x3dzcms/rs\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg\');google.xjs=1;}google.pmc={"sb_he":{"agen":true,"cgen":true,"client":"heirloom-hp","dh":true,"dhqt":true,"ds":"","fl":true,"host":"google.com","isbh":28,"jam":0,"jsonp":true,"msgs":{"cibl":"Clear Search","dym":"Did you mean:","lcky":"I\\u0026#39;m Feeling Lucky","lml":"Learn more","oskt":"Input tools","psrc":"This search was removed from your \\u003Ca href=\\"/history\\"\\u003EWeb History\\u003C/a\\u003E","psrl":"Remove","sbit":"Search by image","srch":"Google Search"},"nds":true,"ovr":{},"pq":"","refpd":true,"rfs":[],"sbpl":24,"sbpr":24,"scd":10,"sce":5,"stok":"SoujP_jZCl8__547pTsXrZfrXzc"},"d":{},"YFCs/g":{}};google.y.first.push(function(){if(google.med){google.med(\'init\');google.initHistory();google.med(\'history\');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}\n</script></div></body></html>'
2017-03-21 23:01:40,156 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.type: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,156 - MainThread - botocore.hooks - DEBUG - Event process-cli-arg.ssm.put-parameter: calling handler <awscli.argprocess.ParamShorthandParser object at 0x7f406f637390>
2017-03-21 23:01:40,156 - MainThread - awscli.arguments - DEBUG - Unpacked value of u'String' for parameter "type": u'String'
2017-03-21 23:01:40,156 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.key-id: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,157 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.overwrite: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,157 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.cli-input-json: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,157 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.ssm.put-parameter.generate-cli-skeleton: calling handler <function uri_param at 0x7f406f6770c8>
2017-03-21 23:01:40,157 - MainThread - botocore.hooks - DEBUG - Event calling-command.ssm.put-parameter: calling handler <bound method GenerateCliSkeletonArgument.generate_json_skeleton of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7f406e5599d0>>
2017-03-21 23:01:40,157 - MainThread - botocore.hooks - DEBUG - Event calling-command.ssm.put-parameter: calling handler <bound method CliInputJSONArgument.add_to_call_parameters of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7f406e54ab50>>
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: env
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: config-file
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: ec2-credentials-file
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: boto-config
2017-03-21 23:01:40,157 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: container-role
2017-03-21 23:01:40,158 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: iam-role
2017-03-21 23:01:40,158 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): 169.254.169.254
2017-03-21 23:01:40,159 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET /latest/meta-data/iam/security-credentials/ HTTP/1.1" 200 47
2017-03-21 23:01:40,160 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): 169.254.169.254
2017-03-21 23:01:40,161 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET /latest/meta-data/iam/security-credentials/admin-jenkins-JenkinsInstanceRole-1VHU2R6QMGAWT HTTP/1.1" 200 882
2017-03-21 23:01:40,162 - MainThread - botocore.credentials - DEBUG - Found credentials from IAM Role: admin-jenkins-JenkinsInstanceRole-1VHU2R6QMGAWT
2017-03-21 23:01:40,162 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/.local/lib/python2.7/site-packages/botocore/data/endpoints.json
2017-03-21 23:01:40,195 - MainThread - botocore.client - DEBUG - Registering retry handlers for service: ssm
2017-03-21 23:01:40,198 - MainThread - botocore.hooks - DEBUG - Event creating-client-class.ssm: calling handler <function add_generate_presigned_url at 0x7f406ff14ed8>
2017-03-21 23:01:40,198 - MainThread - botocore.args - DEBUG - The s3 config key is not a dictionary type, ignoring its value of: None
2017-03-21 23:01:40,201 - MainThread - botocore.endpoint - DEBUG - Setting ssm timeout as (60, 60)
2017-03-21 23:01:40,201 - MainThread - botocore.hooks - DEBUG - Event before-parameter-build.ssm.PutParameter: calling handler <function generate_idempotent_uuid at 0x7f406fec98c0>
2017-03-21 23:01:40,202 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=PutParameter) (verify_ssl=True) with params: {'body': '{"Overwrite": true, "Type": "String", "Name": "prod.dev.microservice1.db.secret", "Value": "<!doctype html><html itemscope=\\"\\" itemtype=\\"http://schema.org/WebPage\\" lang=\\"en\\"><head><meta content=\\"Search the world\'s information, including webpages, images, videos and more. Google has many special features to help you find exactly what you\'re looking for.\\" name=\\"description\\"><meta content=\\"noodp\\" name=\\"robots\\"><meta content=\\"text/html; charset=UTF-8\\" http-equiv=\\"Content-Type\\"><meta content=\\"/images/branding/googleg/1x/googleg_standard_color_128dp.png\\" itemprop=\\"image\\"><title>Google</title><script>(function(){window.google={kEI:\'1LDRWNX4Bqmc0gKBpL6AAw\',kEXPI:\'1352992,3700289,3700347,3700405,4026240,4029815,4031109,4032678,4036527,4038012,4039268,4043492,4045841,4048347,4065786,4072364,4072774,4073405,4073776,4075963,4076095,4076997,4078768,4079954,4081039,4081165,4082665,4083030,4085336,4088408,4088525,4090550,4090553,4090806,4091353,4092182,4092934,4093498,4093813,4094253,4094544,4094878,4095381,4095998,4096324,4096906,4096950,4097153,4097194,4097203,4097922,4097929,4097951,4098048,4098721,4098728,4098752,4098777,4099958,4100169,4100380,4101301,4101328,4101375,4101377,4101489,4101599,4102020,4102099,4102411,4102631,4102658,4102827,4103061,8500572,8503585,8507380,8508229,8508707,8508931,8509037,8509373,10200083,10201957,10202231,19001918,19001919,19001920,19001921,41027342\',authuser:0,kscs:\'c9c918f0_24\'};google.kHL=\'en\';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute(\\"eid\\")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute(\\"leid\\")));)a=a.parentNode;return b};google.https=function(){return\\"https:\\"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(c){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,c,d,g){a=google.logUrl(a,b,c,d,g);if(\\"\\"!=a){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,c,d,g){var e=\\"\\",f=google.ls||\\"\\";c||-1!=b.search(\\"&ei=\\")||(e=\\"&ei=\\"+google.getEI(d),-1==b.search(\\"&lei=\\")&&(d=google.getLEI(d))&&(e+=\\"&lei=\\"+d));a=c||\\"/\\"+(g||\\"gen_204\\")+\\"?atyp=i&ct=\\"+a+\\"&cad=\\"+b+e+f+\\"&zx=\\"+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error(\\"a\\"),!1,{src:a,glmm:1}),a=\\"\\");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b];return!1};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);var a=window.location,b=a.href.indexOf(\\"#\\");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf(\\"#\\")&&a.replace(\\"/search?\\"+c.replace(/(^|&)fp=[^&]*/g,\\"\\")+\\"&cad=h\\")};</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}\\n</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}</style><script></script><link href=\\"/images/branding/product/ico/googleg_lodp.ico\\" rel=\\"shortcut icon\\"></head><body bgcolor=\\"#fff\\"><script>(function(){var src=\'/images/nav_logo229.png\';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}\\nif (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}\\n}\\n})();</script><div id=\\"mngb\\"> <div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href=\\"http://www.google.com/imghp?hl=en&tab=wi\\">Images</a> <a class=gb1 href=\\"http://maps.google.com/maps?hl=en&tab=wl\\">Maps</a> <a class=gb1 href=\\"https://play.google.com/?hl=en&tab=w8\\">Play</a> <a class=gb1 href=\\"http://www.youtube.com/?tab=w1\\">YouTube</a> <a class=gb1 href=\\"http://news.google.com/nwshp?hl=en&tab=wn\\">News</a> <a class=gb1 href=\\"https://mail.google.com/mail/?tab=wm\\">Gmail</a> <a class=gb1 href=\\"https://drive.google.com/?tab=wo\\">Drive</a> <a class=gb1 style=\\"text-decoration:none\\" href=\\"https://www.google.com/intl/en/options/\\"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href=\\"http://www.google.com/history/optout?hl=en\\" class=gb4>Web History</a> | <a  href=\\"/preferences?hl=en\\" class=gb4>Settings</a> | <a target=_top id=gb_70 href=\\"https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/\\" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><br clear=\\"all\\" id=\\"lgpd\\"><div id=\\"lga\\"><img alt=\\"Google\\" height=\\"92\\" src=\\"/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png\\" style=\\"padding:28px 0 14px\\" width=\\"272\\" id=\\"hplogo\\" onload=\\"window.lol&&lol()\\"><br><br></div><form action=\\"/search\\" name=\\"f\\"><table cellpadding=\\"0\\" cellspacing=\\"0\\"><tr valign=\\"top\\"><td width=\\"25%\\">&nbsp;</td><td align=\\"center\\" nowrap=\\"\\"><input name=\\"ie\\" value=\\"ISO-8859-1\\" type=\\"hidden\\"><input value=\\"en\\" name=\\"hl\\" type=\\"hidden\\"><input name=\\"source\\" type=\\"hidden\\" value=\\"hp\\"><input name=\\"biw\\" type=\\"hidden\\"><input name=\\"bih\\" type=\\"hidden\\"><div class=\\"ds\\" style=\\"height:32px;margin:4px 0\\"><input style=\\"color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top\\" autocomplete=\\"off\\" class=\\"lst\\" value=\\"\\" title=\\"Google Search\\" maxlength=\\"2048\\" name=\\"q\\" size=\\"57\\"></div><br style=\\"line-height:0\\"><span class=\\"ds\\"><span class=\\"lsbb\\"><input class=\\"lsb\\" value=\\"Google Search\\" name=\\"btnG\\" type=\\"submit\\"></span></span><span class=\\"ds\\"><span class=\\"lsbb\\"><input class=\\"lsb\\" value=\\"I\'m Feeling Lucky\\" name=\\"btnI\\" onclick=\\"if(this.form.q.value)this.checked=1; else top.location=\'/doodles/\'\\" type=\\"submit\\"></span></span></td><td class=\\"fl sblc\\" align=\\"left\\" nowrap=\\"\\" width=\\"25%\\"><a href=\\"/advanced_search?hl=en&amp;authuser=0\\">Advanced search</a><a href=\\"/language_tools?hl=en&amp;authuser=0\\">Language tools</a></td></tr></table><input id=\\"gbv\\" name=\\"gbv\\" type=\\"hidden\\" value=\\"1\\"></form><div id=\\"gac_scont\\"></div><div style=\\"font-size:83%;min-height:3.5em\\"><br></div><span id=\\"footer\\"><div style=\\"font-size:10pt\\"><div style=\\"margin:19px auto;text-align:center\\" id=\\"fll\\"><a href=\\"/intl/en/ads/\\">Advertising\\u00a0Programs</a><a href=\\"/services/\\">Business Solutions</a><a href=\\"https://plus.google.com/116899029375914044550\\" rel=\\"publisher\\">+Google</a><a href=\\"/intl/en/about.html\\">About Google</a></div></div><p style=\\"color:#767676;font-size:8pt\\">&copy; 2017 - <a href=\\"/intl/en/policies/privacy/\\">Privacy</a> - <a href=\\"/intl/en/policies/terms/\\">Terms</a></p></span></center><script>(function(){window.google.cdo={height:0,width:0};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b)var c=window.document,d=\\"CSS1Compat\\"==c.compatMode?c.documentElement:c.body,a=d.clientWidth,b=d.clientHeight;a&&b&&(a!=google.cdo.width||b!=google.cdo.height)&&google.log(\\"\\",\\"\\",\\"/client_204?&atyp=i&biw=\\"+a+\\"&bih=\\"+b+\\"&ei=\\"+google.kEI);}).call(this);})();</script><div id=\\"xjsd\\"></div><div id=\\"xjsi\\"><script>(function(){function c(b){window.setTimeout(function(){var a=document.createElement(\\"script\\");a.src=b;document.getElementById(\\"xjsd\\").appendChild(a)},0)}google.dljp=function(b,a){google.xjsu=b;c(a)};google.dlj=c;}).call(this);(function(){window.google.xjsrm=[];})();if(google.y)google.y.first=[];if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp(\'/xjs/_/js/k\\\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\\\x3dsb_he,d/am\\\\x3dAAE/rt\\\\x3dj/d\\\\x3d1/t\\\\x3dzcms/rs\\\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg\',\'/xjs/_/js/k\\\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\\\x3dsb_he,d/am\\\\x3dAAE/rt\\\\x3dj/d\\\\x3d1/t\\\\x3dzcms/rs\\\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg\');google.xjs=1;}google.pmc={\\"sb_he\\":{\\"agen\\":true,\\"cgen\\":true,\\"client\\":\\"heirloom-hp\\",\\"dh\\":true,\\"dhqt\\":true,\\"ds\\":\\"\\",\\"fl\\":true,\\"host\\":\\"google.com\\",\\"isbh\\":28,\\"jam\\":0,\\"jsonp\\":true,\\"msgs\\":{\\"cibl\\":\\"Clear Search\\",\\"dym\\":\\"Did you mean:\\",\\"lcky\\":\\"I\\\\u0026#39;m Feeling Lucky\\",\\"lml\\":\\"Learn more\\",\\"oskt\\":\\"Input tools\\",\\"psrc\\":\\"This search was removed from your \\\\u003Ca href=\\\\\\"/history\\\\\\"\\\\u003EWeb History\\\\u003C/a\\\\u003E\\",\\"psrl\\":\\"Remove\\",\\"sbit\\":\\"Search by image\\",\\"srch\\":\\"Google Search\\"},\\"nds\\":true,\\"ovr\\":{},\\"pq\\":\\"\\",\\"refpd\\":true,\\"rfs\\":[],\\"sbpl\\":24,\\"sbpr\\":24,\\"scd\\":10,\\"sce\\":5,\\"stok\\":\\"SoujP_jZCl8__547pTsXrZfrXzc\\"},\\"d\\":{},\\"YFCs/g\\":{}};google.y.first.push(function(){if(google.med){google.med(\'init\');google.initHistory();google.med(\'history\');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}\\n</script></div></body></html>"}', 'url': u'https://ssm.us-west-2.amazonaws.com/', 'headers': {'User-Agent': 'aws-cli/1.11.64 Python/2.7.12 Linux/4.4.41-36.55.amzn1.x86_64 botocore/1.5.27', 'Content-Type': u'application/x-amz-json-1.1', 'X-Amz-Target': u'AmazonSSM.PutParameter'}, 'context': {'client_region': u'us-west-2', 'has_streaming_input': False, 'client_config': <botocore.config.Config object at 0x7f406e0716d0>}, 'query_string': '', 'url_path': '/', 'method': u'POST'}
2017-03-21 23:01:40,202 - MainThread - botocore.hooks - DEBUG - Event request-created.ssm.PutParameter: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7f406e071650>>
2017-03-21 23:01:40,203 - MainThread - botocore.auth - DEBUG - Calculating signature using v4 auth.
2017-03-21 23:01:40,203 - MainThread - botocore.auth - DEBUG - CanonicalRequest:
POST
/

content-type:application/x-amz-json-1.1
host:ssm.us-west-2.amazonaws.com
x-amz-date:20170321T230140Z
x-amz-security-token:FQoDYXdzEH8aDB+CopdDn2uI3t3kwiK3AwdLzUJJevsoxakY4+GMjrdqf6VwX8Lr6aQhiIXplN2we+NXZ/lACbI9hQGalWF/pn1BjqV6bHHlDBZnmaiPWFpnnQJOYJSLsT/JXIKChqtWArTcq30EcPJieqPEHQlnzQ/XMYL67XxD5S2Man3vCxGG5qm9XmFYtaibK1aKR8gMVDP9WUixPtQ+UC2BOXt6+Bkvhn6vHBn4DshekvalBHab19cXhvqT74BM35r7SADNpkH2fcBvbXy6rwlWi97ZLsRGs4KlaVASqyOJ5gAmrlJW8cMvn0qJWltayKXbpZgEAHEQx0L1jgeNx7266Mn9+uxQ8PTRxcjSBFVobBuYYXy322CmHIzrIK1KH100iWhE1nLghMUsFMzzhpzhb45cE0uT8pm+X8Ccu0culiHEfqtFxIO8S8jCNSqVvwV8SUoRcCxPij2+XDQm41DqVNdKwxQweXRVhzDjmitE9W4I/pPqbIo2DX1T9nr/R+k7aI2WrIy/zi0wHhcEM11QqpPFu6tjj/v1d45webCNrMTuDvPKhR6Q73UvwP5YyedJgePkatm0RDAAOIOjJgE/UWPb5TLYPdLNHs4os8nGxgU=
x-amz-target:AmazonSSM.PutParameter

content-type;host;x-amz-date;x-amz-security-token;x-amz-target
3c79ff817d17ed6377b572323db19662dac89832bb957aa9bf1649ab352bc8da
2017-03-21 23:01:40,203 - MainThread - botocore.auth - DEBUG - StringToSign:
AWS4-HMAC-SHA256
20170321T230140Z
20170321/us-west-2/ssm/aws4_request
e7b981f4d09db4bf902339911ea2430ee8903c4d918250d7a6eff62c9bd3ec1f
2017-03-21 23:01:40,203 - MainThread - botocore.auth - DEBUG - Signature:
dd1de8d756273e4c03067377cf28e1f9d15feec2db26e51f9339547a9664b2d5
2017-03-21 23:01:40,203 - MainThread - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [POST]>
2017-03-21 23:01:40,204 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTPS connection (1): ssm.us-west-2.amazonaws.com
2017-03-21 23:01:40,236 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "POST / HTTP/1.1" 400 10739
2017-03-21 23:01:40,238 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amzn-requestid': '57f74d36-0e8a-11e7-b927-b7aa3df7233f', 'date': 'Tue, 21 Mar 2017 23:01:39 GMT', 'content-length': '10739', 'content-type': 'application/x-amz-json-1.1', 'connection': 'close'}
2017-03-21 23:01:40,238 - MainThread - botocore.parsers - DEBUG - Response body:
{"__type":"ValidationException","message":"1 validation error detected: Value '<!doctype html><html itemscope=\"\" itemtype=\"http://schema.org/WebPage\" lang=\"en\"><head><meta content=\"Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.\" name=\"description\"><meta content=\"noodp\" name=\"robots\"><meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\"><meta content=\"/images/branding/googleg/1x/googleg_standard_color_128dp.png\" itemprop=\"image\"><title>Google</title><script>(function(){window.google={kEI:'1LDRWNX4Bqmc0gKBpL6AAw',kEXPI:'1352992,3700289,3700347,3700405,4026240,4029815,4031109,4032678,4036527,4038012,4039268,4043492,4045841,4048347,4065786,4072364,4072774,4073405,4073776,4075963,4076095,4076997,4078768,4079954,4081039,4081165,4082665,4083030,4085336,4088408,4088525,4090550,4090553,4090806,4091353,4092182,4092934,4093498,4093813,4094253,4094544,4094878,4095381,4095998,4096324,4096906,4096950,4097153,4097194,4097203,4097922,4097929,4097951,4098048,4098721,4098728,4098752,4098777,4099958,4100169,4100380,4101301,4101328,4101375,4101377,4101489,4101599,4102020,4102099,4102411,4102631,4102658,4102827,4103061,8500572,8503585,8507380,8508229,8508707,8508931,8509037,8509373,10200083,10201957,10202231,19001918,19001919,19001920,19001921,41027342',authuser:0,kscs:'c9c918f0_24'};google.kHL='en';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute(\"eid\")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute(\"leid\")));)a=a.parentNode;return b};google.https=function(){return\"https:\"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(c){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,c,d,g){a=google.logUrl(a,b,c,d,g);if(\"\"!=a){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,c,d,g){var e=\"\",f=google.ls||\"\";c||-1!=b.search(\"&ei=\")||(e=\"&ei=\"+google.getEI(d),-1==b.search(\"&lei=\")&&(d=google.getLEI(d))&&(e+=\"&lei=\"+d));a=c||\"/\"+(g||\"gen_204\")+\"?atyp=i&ct=\"+a+\"&cad=\"+b+e+f+\"&zx=\"+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error(\"a\"),!1,{src:a,glmm:1}),a=\"\");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b];return!1};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);var a=window.location,b=a.href.indexOf(\"#\");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf(\"#\")&&a.replace(\"/search?\"+c.replace(/(^|&)fp=[^&]*/g,\"\")+\"&cad=h\")};</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}\n</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}</style><script></script><link href=\"/images/branding/product/ico/googleg_lodp.ico\" rel=\"shortcut icon\"></head><body bgcolor=\"#fff\"><script>(function(){var src='/images/nav_logo229.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}\nif (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}\n}\n})();</script><div id=\"mngb\"> <div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href=\"http://www.google.com/imghp?hl=en&tab=wi\">Images</a> <a class=gb1 href=\"http://maps.google.com/maps?hl=en&tab=wl\">Maps</a> <a class=gb1 href=\"https://play.google.com/?hl=en&tab=w8\">Play</a> <a class=gb1 href=\"http://www.youtube.com/?tab=w1\">YouTube</a> <a class=gb1 href=\"http://news.google.com/nwshp?hl=en&tab=wn\">News</a> <a class=gb1 href=\"https://mail.google.com/mail/?tab=wm\">Gmail</a> <a class=gb1 href=\"https://drive.google.com/?tab=wo\">Drive</a> <a class=gb1 style=\"text-decoration:none\" href=\"https://www.google.com/intl/en/options/\"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href=\"http://www.google.com/history/optout?hl=en\" class=gb4>Web History</a> | <a  href=\"/preferences?hl=en\" class=gb4>Settings</a> | <a target=_top id=gb_70 href=\"https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/\" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><br clear=\"all\" id=\"lgpd\"><div id=\"lga\"><img alt=\"Google\" height=\"92\" src=\"/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png\" style=\"padding:28px 0 14px\" width=\"272\" id=\"hplogo\" onload=\"window.lol&&lol()\"><br><br></div><form action=\"/search\" name=\"f\"><table cellpadding=\"0\" cellspacing=\"0\"><tr valign=\"top\"><td width=\"25%\">&nbsp;</td><td align=\"center\" nowrap=\"\"><input name=\"ie\" value=\"ISO-8859-1\" type=\"hidden\"><input value=\"en\" name=\"hl\" type=\"hidden\"><input name=\"source\" type=\"hidden\" value=\"hp\"><input name=\"biw\" type=\"hidden\"><input name=\"bih\" type=\"hidden\"><div class=\"ds\" style=\"height:32px;margin:4px 0\"><input style=\"color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top\" autocomplete=\"off\" class=\"lst\" value=\"\" title=\"Google Search\" maxlength=\"2048\" name=\"q\" size=\"57\"></div><br style=\"line-height:0\"><span class=\"ds\"><span class=\"lsbb\"><input class=\"lsb\" value=\"Google Search\" name=\"btnG\" type=\"submit\"></span></span><span class=\"ds\"><span class=\"lsbb\"><input class=\"lsb\" value=\"I'm Feeling Lucky\" name=\"btnI\" onclick=\"if(this.form.q.value)this.checked=1; else top.location='/doodles/'\" type=\"submit\"></span></span></td><td class=\"fl sblc\" align=\"left\" nowrap=\"\" width=\"25%\"><a href=\"/advanced_search?hl=en&amp;authuser=0\">Advanced search</a><a href=\"/language_tools?hl=en&amp;authuser=0\">Language tools</a></td></tr></table><input id=\"gbv\" name=\"gbv\" type=\"hidden\" value=\"1\"></form><div id=\"gac_scont\"></div><div style=\"font-size:83%;min-height:3.5em\"><br></div><span id=\"footer\"><div style=\"font-size:10pt\"><div style=\"margin:19px auto;text-align:center\" id=\"fll\"><a href=\"/intl/en/ads/\">Advertising Programs</a><a href=\"/services/\">Business Solutions</a><a href=\"https://plus.google.com/116899029375914044550\" rel=\"publisher\">+Google</a><a href=\"/intl/en/about.html\">About Google</a></div></div><p style=\"color:#767676;font-size:8pt\">&copy; 2017 - <a href=\"/intl/en/policies/privacy/\">Privacy</a> - <a href=\"/intl/en/policies/terms/\">Terms</a></p></span></center><script>(function(){window.google.cdo={height:0,width:0};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b)var c=window.document,d=\"CSS1Compat\"==c.compatMode?c.documentElement:c.body,a=d.clientWidth,b=d.clientHeight;a&&b&&(a!=google.cdo.width||b!=google.cdo.height)&&google.log(\"\",\"\",\"/client_204?&atyp=i&biw=\"+a+\"&bih=\"+b+\"&ei=\"+google.kEI);}).call(this);})();</script><div id=\"xjsd\"></div><div id=\"xjsi\"><script>(function(){function c(b){window.setTimeout(function(){var a=document.createElement(\"script\");a.src=b;document.getElementById(\"xjsd\").appendChild(a)},0)}google.dljp=function(b,a){google.xjsu=b;c(a)};google.dlj=c;}).call(this);(function(){window.google.xjsrm=[];})();if(google.y)google.y.first=[];if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp('/xjs/_/js/k\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\x3dsb_he,d/am\\x3dAAE/rt\\x3dj/d\\x3d1/t\\x3dzcms/rs\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg','/xjs/_/js/k\\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\\x3dsb_he,d/am\\x3dAAE/rt\\x3dj/d\\x3d1/t\\x3dzcms/rs\\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg');google.xjs=1;}google.pmc={\"sb_he\":{\"agen\":true,\"cgen\":true,\"client\":\"heirloom-hp\",\"dh\":true,\"dhqt\":true,\"ds\":\"\",\"fl\":true,\"host\":\"google.com\",\"isbh\":28,\"jam\":0,\"jsonp\":true,\"msgs\":{\"cibl\":\"Clear Search\",\"dym\":\"Did you mean:\",\"lcky\":\"I\\u0026#39;m Feeling Lucky\",\"lml\":\"Learn more\",\"oskt\":\"Input tools\",\"psrc\":\"This search was removed from your \\u003Ca href=\\\"/history\\\"\\u003EWeb History\\u003C/a\\u003E\",\"psrl\":\"Remove\",\"sbit\":\"Search by image\",\"srch\":\"Google Search\"},\"nds\":true,\"ovr\":{},\"pq\":\"\",\"refpd\":true,\"rfs\":[],\"sbpl\":24,\"sbpr\":24,\"scd\":10,\"sce\":5,\"stok\":\"SoujP_jZCl8__547pTsXrZfrXzc\"},\"d\":{},\"YFCs/g\":{}};google.y.first.push(function(){if(google.med){google.med('init');google.initHistory();google.med('history');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}\n</script></div></body></html>' at 'value' failed to satisfy constraint: Member must have length less than or equal to 4096"}
2017-03-21 23:01:40,238 - MainThread - botocore.hooks - DEBUG - Event needs-retry.ssm.PutParameter: calling handler <botocore.retryhandler.RetryHandler object at 0x7f406e559950>
2017-03-21 23:01:40,238 - MainThread - botocore.retryhandler - DEBUG - No retry needed.
2017-03-21 23:01:40,243 - MainThread - awscli.clidriver - DEBUG - Exception caught in main()
Traceback (most recent call last):
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 197, in main
    return command_table[parsed_args.command](remaining, parsed_args)
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 333, in __call__
    return command_table[parsed_args.operation](remaining, parsed_globals)
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 503, in __call__
    call_parameters, parsed_globals)
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 622, in invoke
    client, operation_name, parameters, parsed_globals)
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 634, in _make_client_call
    **parameters)
  File "/home/ec2-user/.local/lib/python2.7/site-packages/botocore/client.py", line 253, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/home/ec2-user/.local/lib/python2.7/site-packages/botocore/client.py", line 543, in _make_api_call
    raise error_class(parsed_response, operation_name)
ClientError: An error occurred (ValidationException) when calling the PutParameter operation: 1 validation error detected: Value '<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for." name="description"><meta content="noodp" name="robots"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:'1LDRWNX4Bqmc0gKBpL6AAw',kEXPI:'1352992,3700289,3700347,3700405,4026240,4029815,4031109,4032678,4036527,4038012,4039268,4043492,4045841,4048347,4065786,4072364,4072774,4073405,4073776,4075963,4076095,4076997,4078768,4079954,4081039,4081165,4082665,4083030,4085336,4088408,4088525,4090550,4090553,4090806,4091353,4092182,4092934,4093498,4093813,4094253,4094544,4094878,4095381,4095998,4096324,4096906,4096950,4097153,4097194,4097203,4097922,4097929,4097951,4098048,4098721,4098728,4098752,4098777,4099958,4100169,4100380,4101301,4101328,4101375,4101377,4101489,4101599,4102020,4102099,4102411,4102631,4102658,4102827,4103061,8500572,8503585,8507380,8508229,8508707,8508931,8509037,8509373,10200083,10201957,10202231,19001918,19001919,19001920,19001921,41027342',authuser:0,kscs:'c9c918f0_24'};google.kHL='en';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(c){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,c,d,g){a=google.logUrl(a,b,c,d,g);if(""!=a){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,c,d,g){var e="",f=google.ls||"";c||-1!=b.search("&ei=")||(e="&ei="+google.getEI(d),-1==b.search("&lei=")&&(d=google.getLEI(d))&&(e+="&lei="+d));a=c||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+e+f+"&zx="+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b];return!1};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);var a=window.location,b=a.href.indexOf("#");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf("#")&&a.replace("/search?"+c.replace(/(^|&)fp=[^&]*/g,"")+"&cad=h")};</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}
</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff !important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px}.lsbb{display:block}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}</style><script></script><link href="/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon"></head><body bgcolor="#fff"><script>(function(){var src='/images/nav_logo229.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}
if (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}
}
})();</script><div id="mngb"> <div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="http://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="http://maps.google.com/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="http://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="http://news.google.com/nwshp?hl=en&tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="https://www.google.com/intl/en/options/"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.com/history/optout?hl=en" class=gb4>Web History</a> | <a  href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div> </div><center><br clear="all" id="lgpd"><div id="lga"><img alt="Google" height="92" src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" style="padding:28px 0 14px" width="272" id="hplogo" onload="window.lol&&lol()"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><input name="biw" type="hidden"><input name="bih" type="hidden"><div class="ds" style="height:32px;margin:4px 0"><input style="color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top" autocomplete="off" class="lst" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" value="I'm Feeling Lucky" name="btnI" onclick="if(this.form.q.value)this.checked=1; else top.location='/doodles/'" type="submit"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en&amp;authuser=0">Advanced search</a><a href="/language_tools?hl=en&amp;authuser=0">Language tools</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"></form><div id="gac_scont"></div><div style="font-size:83%;min-height:3.5em"><br></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="fll"><a href="/intl/en/ads/">Advertising\xa0Programs</a><a href="/services/">Business Solutions</a><a href="https://plus.google.com/116899029375914044550" rel="publisher">+Google</a><a href="/intl/en/about.html">About Google</a></div></div><p style="color:#767676;font-size:8pt">&copy; 2017 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><script>(function(){window.google.cdo={height:0,width:0};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b)var c=window.document,d="CSS1Compat"==c.compatMode?c.documentElement:c.body,a=d.clientWidth,b=d.clientHeight;a&&b&&(a!=google.cdo.width||b!=google.cdo.height)&&google.log("","","/client_204?&atyp=i&biw="+a+"&bih="+b+"&ei="+google.kEI);}).call(this);})();</script><div id="xjsd"></div><div id="xjsi"><script>(function(){function c(b){window.setTimeout(function(){var a=document.createElement("script");a.src=b;document.getElementById("xjsd").appendChild(a)},0)}google.dljp=function(b,a){google.xjsu=b;c(a)};google.dlj=c;}).call(this);(function(){window.google.xjsrm=[];})();if(google.y)google.y.first=[];if(!google.xjs){window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp('/xjs/_/js/k\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\x3dsb_he,d/am\x3dAAE/rt\x3dj/d\x3d1/t\x3dzcms/rs\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg','/xjs/_/js/k\x3dxjs.hp.en_US.kkJn5YHOlLA.O/m\x3dsb_he,d/am\x3dAAE/rt\x3dj/d\x3d1/t\x3dzcms/rs\x3dACT90oFLSHbtfewcpmg1tOtSqJgr9GHTfg');google.xjs=1;}google.pmc={"sb_he":{"agen":true,"cgen":true,"client":"heirloom-hp","dh":true,"dhqt":true,"ds":"","fl":true,"host":"google.com","isbh":28,"jam":0,"jsonp":true,"msgs":{"cibl":"Clear Search","dym":"Did you mean:","lcky":"I\u0026#39;m Feeling Lucky","lml":"Learn more","oskt":"Input tools","psrc":"This search was removed from your \u003Ca href=\"/history\"\u003EWeb History\u003C/a\u003E","psrl":"Remove","sbit":"Search by image","srch":"Google Search"},"nds":true,"ovr":{},"pq":"","refpd":true,"rfs":[],"sbpl":24,"sbpr":24,"scd":10,"sce":5,"stok":"SoujP_jZCl8__547pTsXrZfrXzc"},"d":{},"YFCs/g":{}};google.y.first.push(function(){if(google.med){google.med('init');google.initHistory();google.med('history');}});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);}
</script></div></body></html>' at 'value' failed to satisfy constraint: Member must have length less than or equal to 4096
2017-03-21 23:01:40,244 - MainThread - awscli.clidriver - DEBUG - Exiting with rc 255

Traceback (most recent call last):
  File "./aws", line 27, in <module>
    sys.exit(main())
  File "./aws", line 23, in main
    return awscli.clidriver.main()
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 54, in main
    return driver.main()
  File "/home/ec2-user/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 223, in main
    sys.stderr.write("%s\n" % e)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 7912: ordinal not in range(128)
aws --version
aws-cli/1.11.29 Python/2.7.12 Linux/4.4.41-36.55.amzn1.x86_64 botocore/1.4.86
[root@jenkins ssm-put-secure-param]# rpm -qi aws-cli
Name        : aws-cli
Version     : 1.11.29
Release     : 1.45.amzn1
Architecture: noarch
Install Date: Fri 20 Jan 2017 11:25:49 PM UTC
Group       : Amazon/Tools
Size        : 3711352
License     : ASL 2.0
Signature   : RSA/SHA256, Mon 19 Dec 2016 11:15:32 PM UTC, Key ID bcb4a85b21c0f39f
Source RPM  : aws-cli-1.11.29-1.45.amzn1.src.rpm
Build Date  : Fri 16 Dec 2016 10:02:49 PM UTC
Build Host  : build-64012.build
Relocations : (not relocatable)
Packager    : Amazon.com, Inc. <http://aws.amazon.com>
Vendor      : Amazon.com
URL         : http://aws.amazon.com/cli/
Summary     : Provides a unified command line interface to Amazon Web Services
Description :
This package provides a unified command line interface to Amazon Web Services.

For more information and documentation please visit http://aws.amazon.com/documentation/cli/
@dstufft
Copy link
Contributor

dstufft commented Mar 23, 2017

Going by my reading of the code, it appears that when something looks like a URI on the CLI we attempt to fetch it, assuming that the URI is pointing to the real value instead of the uri being the value itself. I'm not sure how to handle this because it certainly seems undesirable to be unable to pass a "raw" URI on the CLI, but I don't see any way for you to say "but no really".

Flagging this to get more discussion.

@waltervargas
Copy link
Author

Hi @dstufft,

I was wondering if this behavior is a feature or a bug, but definitely seems like is a bug, what happens if the URL responds with another URL?

Thanks for your reply.

@dstufft
Copy link
Contributor

dstufft commented Mar 24, 2017

If a URI responds with another URI we won't recursively fetch them, we'll just use the content of the initial URL. As it currently stands it's not a bug since it is expected behavior (in the code, not for end users) that it does this. This was explicitly added so it wasn't a mistake or anything. If anything I can see this as a feature request to add a mechanism to escape the URI to add "raw" parmeters that don't fetch the URI.

@waltervargas
Copy link
Author

Hi @dstufft,

Thanks for you response, I agree with you, we can see this as a feature request to escape the URL, and to check the feature, because is not working at all, for example:

❯ aws ssm put-parameter --name walter.test --value http://www.google.com  --type String --region us-west-2 --overwrite

Traceback (most recent call last):
  File "/home/waltervargas/.local/bin/aws", line 27, in <module>
    sys.exit(main())
  File "/home/waltervargas/.local/bin/aws", line 23, in main
    return awscli.clidriver.main()
  File "/home/waltervargas/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 54, in main
    return driver.main()
  File "/home/waltervargas/.local/lib/python2.7/site-packages/awscli/clidriver.py", line 223, in main
    sys.stderr.write("%s\n" % e)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 8018: ordinal not in range(128)

@maskerade
Copy link

maskerade commented Mar 28, 2017

I've been caught out by this today.

I found this similar issue: #1475 and have successfully used the workaround mentioned in the comments

@m17kea
Copy link

m17kea commented Jun 19, 2017

Is there any update on this issue?

@waltervargas
Copy link
Author

waltervargas commented Jun 19, 2017

@armitagemderivitec the update is that this behavior is a feature, not a bug.

@brendangibat
Copy link

I just want to say that this is the type of strange issue that is declared to be a feature-not-a-bug that will lead to a security exploit in the future.

Unexpected behavior which executes an HTTP request is very dangerous and exploitable to the unwary developer. It is completely counter-intuitive.

I was able to use the workaround for a simple script only for testing purposes, but this behavior has made sure that additional security reviews are necessary for AWS API integration.

@jamesls
Copy link
Member

jamesls commented Sep 1, 2017

Hi everyone, just wanted to give an update on this. As a few people have mentioned, this is a documented feature in the CLI (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-file-remote), but we do understand that this can result in unintuitive behavior and would like to address this.

What would help is if someone has a concrete proposal on how to disable this functionality. The only constraint is that we do have to preserve backwards compatibility so we can't change the default behavior, but we certainly make an additive change that lets people disable this.

@starrago
Copy link

starrago commented Sep 1, 2017

We absolutely need a parameter to specify a "raw" value as URL, i'm having some issues on my team when setting new variables via CLI for our HTTP endpoints, it fetches the URL instead of using it as string.

@noisygerman
Copy link

@jamesiri A few ideas

  1. Allow escaped urls to be set as values, but then unescape them when setting the value. E.g. https%3A%2F%2Fsqs.us-west-9.amazonaws.com%2F0123456789%2Fqueue.fifo becomes "https://sqs.us-west-9.amazonaws.com/0123456789/queue.fifo.
  2. The unescape thing could be another flag. E.g. aws ssm put-parameter --name "/api/qa/THE_MIGHTY_QUEUE" --value "https%3A%2F%2Fsqs.us-west-9.amazonaws.com%2F0123456789%2Fqueue.fifo becomes "https://sqs.us-west-9.amazonaws.com/0123456789/queue.fifo" --unescape true. Probably the safer bet.
  3. Add a new command option to tell the cli to interpret the value as a literal, e.g. aws ssm put-parameter --name "/api/qa/THE_MIGHTY_QUEUE" --value "https://sqs.us-west-9.amazonaws.com/0123456789/queue.fifo" --isLiteral true
  4. Prefix the the value with a symbol that tells cli to treat the value a literal, e.g. aws ssm put-parameter --name "/api/qa/THE_MIGHTY_QUEUE" --value "@https://sqs.us-west-9.amazonaws.com/0123456789/queue.fifo"

or anything else that works... not picky really 😄

@m17kea
Copy link

m17kea commented Sep 21, 2017

I think the simplest thing would be to simply add a switch i.e. --isLiteral

Any ideas on a time horizon for this?

@toby5box
Copy link

toby5box commented Oct 12, 2017

Just kill this 'feature', seriously. Even apart from security concerns it certainly violates the principle of least surprise. If anyone has an actual use case for it then give this functionality a completely different option, e.g. --value-get, don't overload the --value option with this unexpected behaviour. Avoid overloading generally!

(My "concrete proposal" is simply therefore to treat --value as a value.)

@michaelwnyc
Copy link

This is beyond surprise. If you escape the urls, then what about ip addresses? Agree with toby5box, if someone needs a feature like this, separate it into another option.

@mdcsaenz
Copy link

mdcsaenz commented Nov 2, 2017

I also have experienced this issue. I agreed with tony5box as well. This is something that needs to be reconsidered as another option.

@joguSD
Copy link
Contributor

joguSD commented Nov 6, 2017

This is definitely something that's on our radar to address. For now I'll just try and round up all issues related to this so it will be easier to notify everyone once we have a proposed resolution.

Related:
#2577
#2894

@joguSD joguSD added the feature-request A feature should be added or improved. label Nov 6, 2017
@kowalski
Copy link

Just in case someone else hit this, I found a workaround (a silly one). I was successful to put the url paramater using aws console in EC2 | SYSTEMS MANAGER SHARED RESOURCES | Parameter Store

Still I don't know how to do the same directly from aws-cli

@ivanaivana
Copy link

Depending on how you manage your parameters, this Ansible module might be one possible workaround for this problem.

@jasonmcaffee
Copy link

I found a workaround by using the cli-input-json:

aws --profile myprofile ssm put-parameter --cli-input-json '{
  "Name": "/some/url/param",
  "Value": "http://google.com",
  "Type": "String",
  "Description": "url"
}'

@mrburrito
Copy link

I can see why you might think this is a "feature," but it makes almost no sense for SSM parameters.

As a backwards-compatibility solution, correct the "feature" and release CLI 2.x with good behavior and a flag or other option to enable the URL resolution.

@ASayre
Copy link
Contributor

ASayre commented Feb 6, 2018

Good Morning!

We're closing this issue here on GitHub, as part of our migration to UserVoice for feature requests involving the AWS CLI.

This will let us get the most important features to you, by making it easier to search for and show support for the features you care the most about, without diluting the conversation with bug reports.

As a quick UserVoice primer (if not already familiar): after an idea is posted, people can vote on the ideas, and the product team will be responding directly to the most popular suggestions.

We’ve imported existing feature requests from GitHub - Search for this issue there!

And don't worry, this issue will still exist on GitHub for posterity's sake. As it’s a text-only import of the original post into UserVoice, we’ll still be keeping in mind the comments and discussion that already exist here on the GitHub issue.

GitHub will remain the channel for reporting bugs.

Once again, this issue can now be found by searching for the title on: https://aws.uservoice.com/forums/598381-aws-command-line-interface

-The AWS SDKs & Tools Team

This entry can specifically be found on UserVoice at: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33243994-aws-ssm-put-parameter-performs-an-http-get-request

@ASayre ASayre closed this as completed Feb 6, 2018
@toby5box
Copy link

toby5box commented Feb 6, 2018

Are you sure this is a "feature request" and not a bug report? Some of the users who've been bitten by this would likely classify it as the latter. Presumably bug reports get fixed, not voted on.

@trevorrowe
Copy link
Member

Due to backward-compatability concerns, this feature cannot be universally disabled. We've marked this as a feature request to track the work needed to provide a customer opt-in flag which disables this. Sorry for the confusing messaging. This was done as part of an automatic migration of features we want to track.

@bugeats
Copy link

bugeats commented Sep 14, 2018

The ticket is long since closed but this retarded (and insecure) bug still remains.

Here's the fix:

# ~/.aws/config
[default]
cli_follow_urlparam = false

@jamesls
Copy link
Member

jamesls commented Sep 19, 2018

Hey everyone, just a quick update. While we can't remove this functionality in the current major version of the CLI, based on everyone's feedback, we plan on removing this for CLI v2: #3590

@et304383
Copy link

This is the dumbest thing I've ever seen.

If you wanted to execute a curl call to get the contents of a URL and use it for the value, you'd put a curl call into your CLI call:

--value $(curl https://example.com)

Why anyone at AWS would think this was a desirable default behaviour is completely beyond my grasp of human understanding.

@justnance justnance added the v2 label Jan 11, 2019
@mscottx88
Copy link

I found myself here today, trying to store a SLACK Webhook URI as a plaintext secret.

The solution to use --cli-input-json works perfectly.

Change this

        execa.shellSync(
          `aws secretsmanager create-secret --kms-key-id "${keyId}" --name "${service}/${stage}/${name}" --secret-string "${value}"`,
        );

To this

        execa.shellSync(
          `aws secretsmanager create-secret --cli-input-json '{
            "KmsKeyId": "${keyId}",
            "Name": "${service}/${stage}/${name}",
            "SecretString": "${value}"
          }'`,
        );

@dankolesnikov
Copy link

How is this a feature? Parameter Store is supposed to be a place to store secrets/environmental variables. Some of them contain a URL pointing to somewhere! It is nonsense that AWS CLI tries to execute that as a request without explicitly being told to.

Being unable to use CLI for this is TERRIBLY inconvenient. Please add a fix ASAP!
~ Danil

@lorengordon
Copy link
Contributor

@dankolesnikov See the new-ish config setting cli_follow_urlparam for a way to disable this behavior. This feature was released in 1.15.48. Also see prior comment mentioning the fix.

https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#general-options

@dankolesnikov
Copy link

Thank you @lorengordon !! <3

@luckyvalentine
Copy link

I have added cli_follow_urlparam = false to my ~/.aws/config ion every profile, and, it's still trying to resolve the url.

I want to add that I also feel that having the aws command line assume you want to resolve and pull the contents from a URL is a horrible idea. I can't imagine any security engineer would be OK with this.

So, how do you store URLs in the parameter store? The cli_follow_urlparam isn't working. Aws version aws-cli/1.14.44

@lorengordon
Copy link
Contributor

@luckyvalentine, Update your version, look up two comments.

@ssotomayor
Copy link

Just found this today, workaround is using --cli-input-json as @jasonmcaffee pointed.

aws ssm put-parameter --cli-input-json '{
  "Name": "/some/url/param",
  "Value": "http://google.com",
  "Type": "String",
  "Description": "url"
}'

Or adding it from the web console in the parameter store.

@sbe-arg
Copy link

sbe-arg commented Aug 8, 2019

what an ugly feature, who came up with this idea in AWS... we had to do this.

    aws ssm put-parameter \
        --region ${AWS_REGION} \
        --overwrite \
        --cli-input-json '{
            "Name": '\"$VAR1.something.url\"',
            "Value": '\"$URL_VALUE\"',
            "Type": "String",
            "Description": "Automatically maintained."
        }'  || exit $?

@Bharathkumarraju
Copy link

check this one guys might be useful for you https://github.com/Bharathkumarraju/uploadsecrets_to_paramstore

@jasonycw
Copy link

Need to have this in the beginning of the script, if you need to have URL value right now
aws configure set cli_follow_urlparam false

@ispyinternet
Copy link

Bizare feature.

@packyg
Copy link

packyg commented Feb 25, 2020

This feature is still incredibly frustrating as it's counterintuitive.

Developers have to end up on this issue to figure out how to use the command in a very plausible way. The idea that someone wants to store their params at a specific URL seems more like an implementation detail for specific use cases of certain users, not a concern of the cli. Those users could have just curl'ed the value themselves...

cli_follow_urlparam should be false by default.

@mrburrito
Copy link

They removed this "feature" in v2 of the CLI! 🎉🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉

https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html#cliv2-migration-paramfile

kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 20, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- Using the google-drive branch: this is temporary and will be switched
  to master once merged. This is done to keep concourse up-to-date while
  this is under review.
- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 20, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- Using the google-drive branch: this is temporary and will be switched
  to master once merged. This is done to keep concourse up-to-date while
  this is under review.
- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 21, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- Using the google-drive branch: this is temporary and will be switched
  to master once merged. This is done to keep concourse up-to-date while
  this is under review.
- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 21, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- Using the google-drive branch: this is temporary and will be switched
  to master once merged. This is done to keep concourse up-to-date while
  this is under review.
- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 21, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- Using the google-drive branch: this is temporary and will be switched
  to master once merged. This is done to keep concourse up-to-date while
  this is under review.
- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 21, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
kevindew added a commit to alphagov/govuk-ask-export that referenced this issue May 21, 2020
This adds a pipeline file that concourse uses to run exports. It has 3
jobs. The first of these keeps this pipeline up to date in concourse,
the second is a job that runs on a schedule at 10am to perform the live
export and the last job is a test export that runs against the draft
survey that can be used for testing.

The export job is started at approximately 10am (it is based on when
concourse first checks the timer which is on a 2 minute interval). It
starts by sending a slack notification to say the job is starting, it
then runs the export task. If the export task fails or has an error
another slack notification is sent to inform the team (it notifies a
group). If the export is successful it outputs a file
`output/slack-message.txt` which is consumed by the successful slack
notification to include contextual information.

For simplicity I've hard coded the test job with google folder ids and
my own email since I didn't feel these needed to be secret (we only use
these folders for test data).

This references a number of secrets that are already configured in
Concourse under the govuk-ask-export namespace.

This does a few WTFs in that I'll try explain (some might be because
this is my first concourse file):

- The 12pm time: Concourse will only allow running the job when the time
  is between the times specified. I've set this to 12pm to allow a 2
  hour window where we can try retry the job manually if, for instance,
  the job failed due to an intermittent error.
- Only specifying a path for Slack notification: because of a truly
  bizarre [AWS SSM
  behaviour](aws/aws-cli#2507) gds-cli can't seem
  to add full URL secrets to Concourse and won't be able to until they
  update their AWS library. A path is a workaround.
- The strange `<!subteam^S0145ESTQE8>` in the slack notification is the
  syntax to reference a group. This references the govuk-ask-support
  group on GDS Slack. I couldn't work out a nice way to stop duplicating
  it (I didn't really want to add another secret / env var)
@MikeWhittakerRyff
Copy link

Workaround (for me !) Insert leading space before 'http', have the value enclosed in quotes so it 'sees' the space.

some libraries (eg Python requests) will ignore the space.

@MikeWhittakerRyff
Copy link

Memo to AWS: PLEASE document this on the AWS CLI documentation - even for most recent, in case people do not have CLI v2

@tomsaleeba
Copy link

To build on the already mentioned --cli-input-json workarounds, you can use a bash heredoc to reduce escaping of quotes:

cliJson=$(cat <<EOF
  {
    "Name": "$paramName",
    "Value": "$newValue"
  }
EOF
)
aws ssm put-parameter \
  --cli-input-json "$cliJson" \
  --overwrite

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A feature should be added or improved. v2
Projects
None yet
Development

No branches or pull requests