如何在AWS API Gateway集成模板中有条件地设置字段?

时间:2016-07-27 14:24:02

标签: aws-lambda aws-api-gateway

我有一个到Lambda集成的API网关。在集成模板中,我想检查其中一个输入参数,并根据它的值,我想在传递给Lambda的事件中设置字段。为此,我编写了集成模板,但即使我通过' ext-prod-live'作为POST请求中的环境。 所以我的活动[' stage_variables'] [' solr_url']总是$ stageVariables.solr_url。我认为我没有正确访问POST正文并获得""从$ input.params(' environment')返回。

模板

#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}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

经过一番研究后,我发现我必须使用速度模板语言和路径才能正确访问POST有效负载。基本上改变了" $ input.params(' environment')" to" $ input.path(' $。environment')"