如何将通过
POST
请求传入 API 网关的 application/x-www-form-urlencoded 数据转换为 JSON
对象,以便您可以将所述对象发送到 Step Functions
,而无需先发送到 Lambda 进行预处理。
(答案包含在下面)
application/x-www-form-urlencoded
StartExecution/StartSyncExecution
映射模板:
#set($data = "")
#foreach( $token in $input.path('$').split('&') )
#set( $keyVal = $token.split('=') )
#set( $keyValSize = $keyVal.size() )
#if( $keyValSize >= 1 )
#set( $key = $util.urlDecode($keyVal[0]) )
#if( $keyValSize >= 2 )
#set( $val = $util.urlDecode($keyVal[1]) )
#else
#set( $val = '' )
#end
#end
#set($data =
"${data}\""${key}\"":\""$util.escapeJavaScript($val)\""#if($foreach.hasNext),#end")
#end
{
"input": "{$data}",
"stateMachineArn": "YOUR STEP FUNCTION ARN"
}
鉴于您的角色具有适当的权限,此映射模板将导致您的步骤函数正确执行,并输入格式精美的
JSON
对象。