问题标签 [amazon-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 投票
0 回答
24 浏览

amazon-product-api - 是否有可用于在您自己的帐户中添加地址的亚马逊 API 或 SDK?

我正在寻找一种将地址添加到我的亚马逊帐户的编程方式。通常通过您的帐户 > 您的地址 > 添加新地址流程完成。

你能帮我么。

0 投票
0 回答
104 浏览

amazon-web-services - AWS 自定义域名映射 - 缓存?

当我为“自定义域名”创建“API 映射”时,我会间歇性地得到 403 。

响应头:x-amzn-ErrorType = ForbiddenException

我会说它大约是50/50。一半的时间,它工作得很好。

附加信息:

  • 自定义域端点类型:区域
  • 直接调用 HTTPApi 端点一直有效(https://xxx.execute-api.us-east-1.amazonaws.com/Prod
  • 我正在使用 Postman 和自定义应用程序进行测试。两者都给出相同的间歇性行为。
  • 自我们创建基本路径映射以来已经过去了一天多。我认为现在应该清除任何缓存问题。
  • 在过去的 2 个月里,我一直在研究这些东西,直到 7 月 23 日,对基本路径映射的所有更改都立即生效。
  • 如果我使用 CLI/web 控制台/CloudFormation 创建映射并不重要,行为是相同的。
  • 有解决 403 问题的指南,但其中提到的“x-amzn-ErrorType”=“ForbiddenException”响应标头的两个实例都不适用于我的情况https://aws.amazon.com/premiumsupport/knowledge-center/api-网关故障排除 403 禁止
  • 该指南没有提到 403 的所有可能情况。如果您尝试访问映射中未定义的随机基本路径,您还将获得 403 而不是预期的“未找到”。
  • 例如,如果我在 Postman 中点击自定义域映射 3 次,则 2 可能是 200,第三次尝试是 403。 Postman 控制台显示所有 3 次它都转到相同的 IP 地址(基于 whois 一些 EC2 实例),可能是 Route53 . 不确定,但我不能排除一些 AWS 内部负载平衡/缓存问题。
  • 我删除了所有 CloudFormation 堆栈并重新创建了自定义域名、api 和映射。同样的问题。

问题:

  • 有没有人过去或现在经历过上述情况?
  • 有谁知道是否有任何文件可以说明这一点?我阅读了我能找到的所有官方文档和随机博客,其中提到了基本路径映射,但没有提到任何缓存问题。
  • 你还有什么可以代替我尝试的吗?

谢谢,

0 投票
1 回答
196 浏览

amazon-web-services - 如何将 AWS API Gateway REST API 导出到文件?

我已经在 AWS API Gateway 上创建了自己的 API,并且您想将其导出到文件中,我们该怎么做?

在此处输入图像描述

?

0 投票
1 回答
248 浏览

amazon-web-services - 在 aws api 网关中更改为使用计划的新 api 密钥不起作用

我有一个 aws api gateway api,它使用 api 密钥对请求进行身份验证。它与使用计划相关联并且正在运行。后来我们需要一个新的 api 键名和值。我从使用计划中删除了旧的 api 密钥,并将新的 api 密钥添加到使用计划中。重新部署舞台。现在,当在标头中使用新的 api 键名称和值时,请求始终返回 403 禁止。不知道出了什么问题。一切看起来都不错。

0 投票
3 回答
227 浏览

amazon-web-services - 当 AWS lambda 请求有效负载大于 6MB 时,有没有办法自定义 http 响应?

语境

我正在尝试使用 AWS HTTP 网关访问 AWS lambda。我目前正在使用 AWS Lamda 代理。

我了解以下请求有效负载限制已到位。

  • HTTP 网关负载限制 = 10 MB
  • Lambda 有效负载限制 = 6 MB

问题

如果请求有效负载大小 > 10 MB,HTTP 网关会返回 HTTP 413 状态代码,我可以捕获它以在客户端显示有效的错误消息。到目前为止一切都很好。

但是,如果负载大小 > 6MB 但 < 10MB,则 lambda 会失败,因为请求超出了 6MB 限制。在这种情况下,HTTP 客户端会收到 500 HTTP 错误代码,而不是预期的 413。

问题

当 lambda 的 6MB 请求有效负载限制达到时,有什么方法可以自定义 HTTP 响应?

0 投票
1 回答
411 浏览

amazon-web-services - 当内容是字符串而不是 JSON 时,API 网关模型验证错误地验证请求

我向我的 API 网关添加了一个模型。当我发送一个正文包含字符串(而不是有效的 JSON)的 POST 请求时,模型会验证该请求。我期待它被拒绝。

我已经尝试了这两种情况来显示问题:

  1. 模型将验证“A_STRING”(不正确的行为)
  2. 模型将验证“A_STRING”{}(不正确的行为)
  3. 模型将失败 {"A_STRING"} (正确的行为)

我正在直接从 AWS 控制台测试 API 网关(请参阅随附的屏幕截图),以下是一个示例的日志:

如果它有帮助,这是我的模型:

在这里要完整的是我的 CloudFormation 代码,用于将模型附加到 API Gateay:

在此处输入图像描述

0 投票
1 回答
54 浏览

amazon-web-services - 如何从端点 URL 查找 AWS 资源

我试图理解一个无证项目。我有一个看起来像是 AWS API 网关资源的端点。有没有办法通过标识符找到该资源?

我有

我在 Stages 的俄亥俄州(us-east-2)的 API Gateways 的控制台中查看了控制台,但它们都没有一个带有 XXXXXXX 的阶段端点,该端点与该端点的 id 匹配。

端点正在运行 - 所以它肯定在某个地方。

是否有其他一些 AWS 资源类型会以这样的端点 URL 结束?还是我有错误的 AWS 账户/配置文件的可能性更大?我可以通过 XXXXXX id 在 CLI 上搜索吗?

0 投票
0 回答
1048 浏览

node.js - 是否可以使用 node.js passport.authenticate() 在 AWS api 网关中验证承载令牌?

我们有一个具有 MSAL 登录的前端反应应用程序,该应用程序使用 aws api 网关 api 端点进行后端操作。在登录过程之后,我想将承载令牌发送到 api 并对其进行身份验证。根据我在线阅读的内容,您可以使用 node.js 和 passport.authenticate() 来执行此操作。问题是试图在 aws api 网关中进行这项工作。所以我想出了一个通过 Authorizer lambda 进行身份验证的方案。1) 使用 aws-serverless-express 在 lambda 中将 express 作为 api 代理运行 2) 使用 passport-azure-ad 模块设置承载策略。3) 运行 passport.authenticate() 来验证令牌。4) 在 lambda 的有效令牌返回允许策略 5) api 请求将继续

我刚刚将以下文件和所需的节点模块放入 node.js lambda。所以这本质上是客户端和 api 之间的中间件。如果令牌有效,将允许请求通过。

在我的测试中,当它应用承载策略时出现此错误:

{ "name": "AzureAD: Bearer Strategy", "hostname": "169.254.43.173", "pid": 8, "level": 30, "msg": "authentication failed due to: token is not found", “时间”:“2020-08-24T23:48:35.497Z”,“v”:0 }

如果有一种更简单的方法来验证承载令牌,那就太好了。

Lambda index.js 文件:

配置.js

app.js 文件

0 投票
1 回答
961 浏览

amazon-web-services - 如何使用 AWS API Gateway websockets 实现多个聊天室?

https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/

我了解如何通过一个聊天“房间”来实现这一点。所有消息都将通过 API Gateway 中的“sendMessage”路由键。

如果我有多个不同用户组的聊天“房间”,该怎么做?

0 投票
1 回答
186 浏览

javascript - 使用 lambda 通过 API Gateway 提供存储桶图像资源导致图像损坏

我正在使用 AWS Api Gateway、Lambda 和 S3。

我的目标是访问网关并在浏览器中提供并显示来自我的 S3 存储桶的图像。目前,我能够使用我的 lambda 中的 AWS SDK 从适当的存储桶中成功获取图像,这没问题。然后我通过网络发送它,响应为 200,我可以看到所有适当的标题。然而图像被破坏了。

这是我的 lambda 中的代码:

响应是 200,一切正常,但我的图像在浏览器中似乎损坏了。这是示例https://3bn2t9npbd.execute-api.us-east-1.amazonaws.com/dev/cat.jpg的 uri

作为旁注,我通过此代码提供的不仅仅是图像,但上面的示例只是一个图像。