标签: aws-api-gateway

如何从Amazon API Gateway将查询字符串或路由参数传递给AWS Lambda

例如,如果我们想要使用

GET /user?name=bob

要么

GET /user/bob

您如何将这两个示例作为参数传递给Lambda函数?

我在文档中看到了关于设置"映射到"的内容,但我在API网关控制台中找不到该设置.

  • method.request.path.parameter-name对于parameter-name在"方法请求"页面中定义的路径参数.
  • method.request.querystring.parameter-name对于parameter-name在"方法请求"页面中定义的名称的查询字符串参数.

即使我定义了查询字符串,我也看不到这些选项中的任何一个.

amazon-web-services aws-lambda aws-api-gateway

310
推荐指数
13
解决办法
21万
查看次数

AWS Lambda函数可以调用另一个吗?

我有2个Lambda函数 - 一个产生报价,一个将报价转换为订单.我希望Order lambda函数调用Quote函数来重新生成引用,而不是仅从不受信任的客户端接收它.

我看到了我能想到的所有地方 - 但看不出我是如何进行链接或调用功能的......当然这存在!

amazon-web-services node.js aws-lambda aws-api-gateway

280
推荐指数
10
解决办法
14万
查看次数

有没有办法更改Amazon API Gateway返回的http状态代码?

例如,如果我想为无效参数返回特定的400错误,或者当lambda函数调用导致创建时返回201.

我想有不同的http状态代码,但看起来api网关总是返回200状态代码,即使lambda函数返回错误.

amazon-web-services aws-lambda aws-api-gateway

87
推荐指数
8
解决办法
6万
查看次数

API网关与反向代理

为了处理微服务架构,它通常与反向代理(例如nginx或apache httpd)一起使用,并且对于交叉关注问题,使用实现 API网关模式.有时反向代理执行API网关的工作.
很高兴看到这两种方法之间存在明显的差异.看起来API网关使用的潜在好处是调用多个微服务并聚合结果.API网关的所有其他职责可以使用反向代理实现.例如:

  • 身份验证(可以使用nginx LUA脚本完成);
  • 运输安全.它本身就是反向代理任务;
  • 负载均衡
  • ....

基于此,有几个问题:

  1. 是否有意义地同时使用API​​网关和反向代理(例如请求 - > Api网关 - >反向代理(nginx) - >具体的mictoservice)?在什么情况下?
  2. 使用API​​网关可以实现的其他差异是什么,反向代理无法实现,反之亦然?

reverse-proxy nginx microservices aws-api-gateway tyk

85
推荐指数
3
解决办法
3万
查看次数

API网关CORS:没有'Access-Control-Allow-Origin'标头

虽然已经通过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?

ajax amazon-web-services cors aws-api-gateway

67
推荐指数
9
解决办法
5万
查看次数

AWS lambda api网关错误"格式错误的Lambda代理响应"

我正在尝试使用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代理响应".

amazon-web-services node.js aws-lambda aws-api-gateway

59
推荐指数
9
解决办法
3万
查看次数

通过API网关在aws Lambda中获取json主体

我目前正在使用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设置.

据我所知,上面例子的自述文件似乎没有使用代理集成,所以我不确定我应该在这里做什么

aws-lambda aws-api-gateway

52
推荐指数
3
解决办法
6万
查看次数

如何使用Lambda访问AWS API网关请求的HTTP标头?

我在API网关常见问题解答中看到,可以访问发送到API网关的请求标头...

如果您已经使用OAuth令牌或任何其他授权机制,则可以轻松设置API网关,以便不需要签名的API调用,只需将令牌标头转发到后端进行验证即可.

但是,我在文档中找不到如何执行此操作的示例,并且不清楚如何使用Lambda访问此数据.

我能够设置一个开放的API并获得对作为POST一部分的JSON对象的访问权限(演练:API网关和Lambda函数),但为了使用我自己的提供程序实现OAuth 2.0样式API,我需要访问"授权"标题.

我的偏好是使用Lambda和Java 8进行设置,但是使用node.js的示例也有助于理解如何实现这一点.

amazon-web-services aws-lambda aws-api-gateway

43
推荐指数
4
解决办法
3万
查看次数

我是否可以将AWS Certificate Manager证书用于具有自定义域名的API网关

我可以使用AWS Certificate Manager的证书将其与API Gateway和我的自定义域名一起使用吗?

如何从AWS Certificate Manager获取证书的证书正文,私钥和链?

amazon-web-services aws-api-gateway aws-certificate-manager

43
推荐指数
1
解决办法
5675
查看次数

获取消息:来自AWS API网关的禁止回复

[已解决] AWS(和StackOverflow)新手.我正在尝试在AWS上创建一个lambda服务,并通过API网关从外部访问它,无需身份验证或限制.

为了方便起见,我现在将网关设置为模拟.

在API的Get方法上,Authorization设置为None,API Key为not required.

当我尝试这个时,我得到{"message":"Forbidden"} (如果我将它连接到实际的lambda服务,则相同的消息).

有关如何使其可访问的任何建议?谢谢

amazon-web-services aws-api-gateway

43
推荐指数
10
解决办法
6万
查看次数