当前位置: 首页 > 知识库问答 >
问题:

如何从Amazon API网关将参数从POST传递到AWS Lambda

夔宏深
2023-03-14
{
    "values": "$input.params()"
}
 {"values":"{path={}, querystring={}, header={Accept=*/*, Accept-Encoding=gzip, deflate, Accept-Language=en-US,en;q=0.8, Cache-Control=no-cache, CloudFront-Forwarded-Proto=https, CloudFront-Is-Desktop-Viewer=true, CloudFront-Is-Mobile-Viewer=false, CloudFront-Is-SmartTV-Viewer=false, CloudFront-Is-Tablet-Viewer=false, CloudFront-Viewer-Country=US, Content-Type=application/x-www-form-urlencoded, Origin=chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop, Postman-Token=7ba28698-8753-fcb1-1f48-66750ce12ade, Via=1.1 6ba5553fa41dafcdc0e74d152f3a7a75.cloudfront.net (CloudFront), X-Amz-Cf-Id=sc8C7dLcW0BHYopztNYrnddC0hXyFdBzHv0O9aWU1gKhd1D_J2HF3w==, X-Forwarded-For=50.196.93.57, 54.239.140.62, X-Forwarded-Port=443, X-Forwarded-Proto=https}}"}

共有1个答案

爱炯
2023-03-14

R7Kamura的回答不错。此外,这里还有一个application/x-www-form-urlencoded的可理解且健壮的映射模板示例,它适用于所有情况(假设POST):

{
    "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
                "$key": "$val"#if($foreach.hasNext),#end
            #end
        #end
    }
}

它将转换

name=Marcus&email=email%40example.com&message=

进入

{
    "data": {
                "name": "Marcus",
                "email": "email@example.com",
                "message": ""
    }
}
module.exports.handler = function(event, context, cb) {
  return cb(null, {
    data: event.data
  });
};
 类似资料:
  • 我正在尝试使用此解决方案将我的Api-Gateway地图应用程序/x-wow-form-urlencoded到json:如何从Amazon API Gateway将参数从POST传递到AWS Lambda 但是到目前为止,我的lambda被成功触发,只有我的request.body总是空的。如果有人知道如何使用. net-core c#处理它,我真的很感激洞察力。 到目前为止,我的无服务器lamb

  • 我正在为webste构建一个功能,用户可以在其中重置密码。他收到一封电子邮件,其中包含URL中生成的令牌。单击此链接时,用户将被发送到/Reset页面。该页的Get方法如下:

  • 问题内容: 我已经编写了这个jQuery ajax方法,在下面调用了webmethod。除了作为用户对象的参数具有空字段之外,调用进行得很好。我在调试时可以在firebug中看到值,但它们无法通过webmethod中的User对象参数 我试图从jQuery方法传递给Webmethod的两个值是“ UserID”(Guid)和“ About”(字符串),它们都是User类的属性,但在服务端,是Use

  • ...下面的类是骆驼处理器,它最终被调用: 我知道Apache CXF使用的Exchange类与Camel使用的Exchange不同,但是这两种集成技术之间应该有一种传递信息的方式?

  • 它不同于-如何从POST将参数从AmazonAPI网关传递到AWS Lambda。因为我可以在API网关中转换参数,但不能用Golang传递或打印它。然而,同样的API网关在Python上运行良好。 下面是我的API网关和AWS Lambda(Golang)的日志。我可以看到POST参数已成功转换为JSON。但是,我在Lambda函数日志中看不到它。 API网关日志 Lambda函数码 Lambd

  • 问题内容: 我想将值传递给javascript。如果可能的话,我该怎么办?如何在后备bean中接收它们? 问题答案: