例如,如果我们想要使用
GET /user?name=bob
要么
GET /user/bob
您如何将这两个示例作为参数传递给Lambda函数?
我在文档中看到了关于设置"映射到"的内容,但我在API网关控制台中找不到该设置.
method.request.path.parameter-name对于parameter-name在"方法请求"页面中定义的路径参数.method.request.querystring.parameter-name对于parameter-name在"方法请求"页面中定义的名称的查询字符串参数.即使我定义了查询字符串,我也看不到这些选项中的任何一个.
我有2个Lambda函数 - 一个产生报价,一个将报价转换为订单.我希望Order lambda函数调用Quote函数来重新生成引用,而不是仅从不受信任的客户端接收它.
我看到了我能想到的所有地方 - 但看不出我是如何进行链接或调用功能的......当然这存在!
例如,如果我想为无效参数返回特定的400错误,或者当lambda函数调用导致创建时返回201.
我想有不同的http状态代码,但看起来api网关总是返回200状态代码,即使lambda函数返回错误.
为了处理微服务架构,它通常与反向代理(例如nginx或apache httpd)一起使用,并且对于交叉关注问题,使用实现 API网关模式.有时反向代理执行API网关的工作.
很高兴看到这两种方法之间存在明显的差异.看起来API网关使用的潜在好处是调用多个微服务并聚合结果.API网关的所有其他职责可以使用反向代理实现.例如:
基于此,有几个问题:
虽然已经通过API网关设置了CORS并且设置了Access-Control-Allow-Origin标头,但在尝试从Chrome中的AJAX调用API时仍然会收到以下错误:
XMLHttpRequest无法加载http://XXXXX.execute-api.us-west-2.amazonaws.com/beta/YYYYY.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.响应具有HTTP状态代码403.
我试图通过Postman获取URL ,它显示上面的标题已成功通过:
并从OPTIONS响应:
如何在不恢复JSON-P的情况下从浏览器调用我的API?
我正在尝试使用AWS lambda建立一个hello world示例并通过api网关提供它.我点击了"创建一个Lambda函数",它设置了api gatway并选择了Blank Function选项.我添加了AWS网关入门指南中的lambda函数:
exports.handler = function(event, context, callback) {
callback(null, {"Hello":"World"}); // SUCCESS with message
};
Run Code Online (Sandbox Code Playgroud)
问题是,当我向它发出GET请求时,它返回502响应{ "message": "Internal server error" }.并且日志显示"由于配置错误导致执行失败:格式错误的Lambda代理响应".
我目前正在使用NodeJS通过AWS Api Gateway在AWS lambda上构建机器人,我遇到了POST请求和JSON数据的问题.我的api使用'使用Lambda代理集成',甚至当我测试代理发送内容类型的Application/json和一些json在体内时,例如{"foo":"bar"}我无法访问该对象而不先解析它
例如
var json = JSON.parse(event.body);
console.log(json.foo);
Run Code Online (Sandbox Code Playgroud)
现在我知道通过JSON.parse运行它似乎并不是什么大不了的事,但我已经看到了许多其他例子,根本不是这种情况.请看这里https://github.com/pinzler/fb-messenger-bot-aws-lambda/blob/master/index.js
我是否需要向API网关添加任何内容才能正确处理?'post method request'部分中的'request body'步骤具有针对请求主体的内容类型application/json设置.
据我所知,上面例子的自述文件似乎没有使用代理集成,所以我不确定我应该在这里做什么
我在API网关常见问题解答中看到,可以访问发送到API网关的请求标头...
如果您已经使用OAuth令牌或任何其他授权机制,则可以轻松设置API网关,以便不需要签名的API调用,只需将令牌标头转发到后端进行验证即可.
但是,我在文档中找不到如何执行此操作的示例,并且不清楚如何使用Lambda访问此数据.
我能够设置一个开放的API并获得对作为POST一部分的JSON对象的访问权限(演练:API网关和Lambda函数),但为了使用我自己的提供程序实现OAuth 2.0样式API,我需要访问"授权"标题.
我的偏好是使用Lambda和Java 8进行设置,但是使用node.js的示例也有助于理解如何实现这一点.
我可以使用AWS Certificate Manager的证书将其与API Gateway和我的自定义域名一起使用吗?
如何从AWS Certificate Manager获取证书的证书正文,私钥和链?
[已解决] AWS(和StackOverflow)新手.我正在尝试在AWS上创建一个lambda服务,并通过API网关从外部访问它,无需身份验证或限制.
为了方便起见,我现在将网关设置为模拟.
在API的Get方法上,Authorization设置为None,API Key为not required.
当我尝试这个时,我得到{"message":"Forbidden"}
(如果我将它连接到实际的lambda服务,则相同的消息).
有关如何使其可访问的任何建议?谢谢