问题标签 [aws-api-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4014 浏览

amazon-web-services - 使用 Cognito 向 AWS API Gateway 验证应用程序

以下是我的用例 -

我正在开发一个安卓应用程序。我正在尝试在其后面使用 aws api 网关和 lambda 函数。但即使在我登录之前,我也想保护 HTTP 调用并验证我的应用程序。为此,我计划将 cognito 与 API 网关一起使用。所以首先我的电话将转到 cognito,它将对应用程序(而不是用户)进行身份验证,然后我的电话将转到任何 Lamda 函数。我想将所有这些都包含在 api gateway 的 SDK 中。

问题 1 - 是否可以这样做(请参考一些文档或代码)

问题 2 - 是否推荐。或者有更好的方法吗?

0 投票
1 回答
6457 浏览

node.js - AWS Lambda -> API Gateway 中的 Gzipped 响应

我似乎无法通过 API 网关从 Lambda 获得压缩响应。我在 Lambda 中压缩我的响应并在 API Gateway 中设置“Content-Encoding”标头。

我不确定哪个部分是问题所在。

这是从 Lambda 到 API Gateway 的最终返回:

我试过只传递缓冲区、base64 编码等。

从 Chrome 发出 GET 请求:如果我从网关中删除 Content-Encoding 标头,我会在浏览器中获得 binary/base64/buffer 数组作为字符串响应。

如果我设置标头,则 GET 请求完全失败,没有响应,但在 AWS 控制台中进行测试会返回带有引号的有效负载。

我不知道这里发生了什么,但如果亚马逊真的希望人们使用这个东西,我们需要能够压缩我们的响应。似乎它应该只是 API Gateway 中的一个复选框,然后我可以简单地从 Lambda 返回一个 JSON 字符串并自动压缩它。

0 投票
3 回答
8262 浏览

aws-api-gateway - 调用 API 错误 - AWS API 网关

我正在尝试使用 AWS API 网关创建 API

  • 首先我创建了一个资源作为 /sample
  • 然后创建了一个方法 GET
  • 提供 Endpoint-URL 并保存。
  • 在 Method Execution 窗格中,选择 Method Request,将 HTTP Request Headers 添加为“Authorization”,添加此以将基本身份验证详细信息传递到后端 url,因为服务受到基本身份验证的保护,
  • 在 Method Execution 窗格中,选择 Integration Request、mapped HTTP Headers、Mapped from as "method.request.path.Authorization"
  • 选择 Method Execution,在 Client 框中选择 TEST,通过 Header Authorization - Basic XXXXXX 成功完成所有配置后,测试 API ,得到“message”:“Internal server error”状态码-500

供您参考,我的后端服务在 amazon-linux 机器上运行。

你能告诉我如何解决这个问题吗?

0 投票
1 回答
5373 浏览

subdomain - AWS api网关设置自定义域

我正在使用 API Gateway 服务来管理我的 Spring Boot 资源。我想将网关指向我的子域。我尝试将它添加到 Route 53 中的别名,但它不起作用。API Gateway 控制台中有一个选项,它要求提供我的域和一些凭据。我不知道子域是否可以工作以及我应该在证书输入中添加什么。可能它要求一个 SSL 证书,我准备购买一个,但在我这样做之前,我想确保它接受子域。

0 投票
2 回答
584 浏览

http-proxy - AWS api 网关 - http 代理应该从源获取状态代码

我目前正在尝试设置 AWS Api 网关,以代理到另一个 api,它具有功能齐全的方法、响应内容、状态代码等。这设置起来相当简单,但我注意到 Api 网关总是返回,200 OK不管是什么origin api 响应。

外汇。如果有一个错误请求(在原始 api 中)导致错误消息出现在JSON和 a400 Bad Request中,Api 网关将响应完全相同的错误消息,但状态代码200 OK

如果我从 API Gateway Web 界面中删除所有设置Message Response,我会在 API Gateway 中收到内部错误。我必须在 Api 网关中手动映射来自原始 api 的所有不同状态代码,这是真的吗?

如果可以让状态代码(以及当前运行良好的响应)通过,而不让 Api 网关以任何方式触摸它,我更愿意。

0 投票
2 回答
4761 浏览

amazon-web-services - AWS API Gateway:如何在映射模板中将查询字符串参数设为可选?

我似乎无法弄清楚如何使用资源的集成请求中的映射模板创建可选的查询字符串参数。

我的模板如下所示:

我希望 'limit' 和 'post_date' 是可选的。当未提供这些参数时,此模板会创建一个如下所示的查询字符串:

当我期待时:

文档似乎没有涵盖这一点。我在文档中找到了一些示例模板,它们使用类似 bash 的语法来提供条件功能。我已尝试测试以下内容,但它不会在 AWS 控制台中验证:

我在正确的轨道上吗?

谢谢!

0 投票
7 回答
26853 浏览

amazon-web-services - Making calls to AWS api gateway endpoint with api key using rest client POSTMAN

We are developing a mobile/web app for which we are using aws lambda and dynamo db as our backend.The standalone lambda functions are working perfectly. The calls are being routed via api gateway. We are using api keys to leverage the security features that it provides. For some testing purposes, we are trying to call the api end point through a third party rest client POSTMAN.

The requests are of POST type but no matter what we try, we get

403 ("message": "Missing authentication token.")

A snapshot is attached for reference. ( few portions are shaded for security reasons )

enter image description here

  1. We are unable to fathom the root cause for the behaviour.
  2. if the same can be achieved with some other tool then please suggest.
0 投票
1 回答
2262 浏览

amazon-web-services - 如何为 AWS API Gateway 设置缓存键?

我有一个使用 AWS API Gateway 映射到 HTTP 端点的 Lambda 函数。这很好用,我已将查询字符串参数映射到 Lambda 事件,一切正常:

https://api.buzzcloud.xyz/?count=999

我可以从http://buzzcloud.xyz调用

我想启用缓存,但似乎默认情况下 API 网关使用 URL 进行缓存,因此我的查询字符串参数的更改不会触发不同的缓存结果。

结果是,启用缓存后,我的页面将返回第一次请求并放入缓存的任何数据。

如何设置自定义缓存键或确保查询字符串是缓存标识符的一部分?

0 投票
2 回答
14580 浏览

amazon-web-services - 我可以将 VPC 中的 HTTP 终端节点指定为 AWS API Gateway 中的资源吗?

当我的产品(一些 Web API)位于 VPC 内部时,我遇到了一种情况,即没有任何外部访问权限。我想公开这个 API 的一部分(只是几个 HTTP 方法),以便从 Internet 访问。我正在尝试使用 AWS API Gateway 来实现这一点,但看起来我无法将内部 ELB 端点设为 API Gateway 资源。有什么想法我该怎么做?

谢谢,--Vovan

0 投票
1 回答
61 浏览

rest - 如何在不指定所有资源的情况下设置 API 网关

我有一些具有许多 REST 路径的 EC 2 应用程序(在 node.js 中),并且由于仍处于开发过程中,因此路径不断变化。

如何在 api-gateway 中设置,将映射到多个路径,而不是指定每个路径?

而不是在 api-gateway 中设置所有资源,我可以执行以下操作:指向 my.ec2.com/api/ 的 api-gateway.amazon.com/api

它会自动解决对http://api-gateway.amazon.com/api/test的任何调用 指向http://my.ec2.com/api/test等?