2016-07-27 5 views
1

ラムダ統合のためのAPIゲートウェイがあります。統合テンプレートでは、入力パラメータの1つをチェックしたいと思います。その値に応じて、Lambdaに渡されるイベントのフィールドを設定したいと思います。そのために私は統合テンプレートを書いていましたが、POSTリクエストの環境として 'ext-prod-live'を渡しても常にそうであるようです。 私のイベント['stage_variables'] ['solr_url']は常に$ stageVariables.solr_urlです。私はPOST本体に正しくアクセスせず、$ input.params( 'environment')から戻ってきていると思います。AWS API Gateway統合テンプレートでフィールドを条件付きで設定するにはどうすればよいですか?

テンプレート

#set($inputJson = $input.json('$')) { "request" : $inputJson, "Authorization" : "$input.params().header.get('Authorization')", 
#if ($input.params('environment') == "ext-prod-live") "stage_variables" : {"solr_url" : "$stageVariables.live_solr_url"} 
#else "stage_variables" : {"solr_url" : "$stageVariables.solr_url"} 
#end } 

リクエストボディ

{"environment": "ext-prod-sim", "min_ts": 0, 
       "execType": 14} 

すべてのヘルプははるかに高く評価されます。

+0

さらにいくつかのテストで、空の文字列を取得しています私のjson入力。 – user2903819

答えて

1

いくつかの研究の後、私は、速度ペーストロードに正しくアクセスするためにベロシティテンプレート言語とパスを使用しなければならないことを理解しました。 "$ input.params( 'environment')"を "$ input.params( 'environment。)"に変更しました。

+0

それは答えになるでしょう。 –

関連する問題