问题标签 [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.
amazon-product-api - 是否有可用于在您自己的帐户中添加地址的亚马逊 API 或 SDK?
我正在寻找一种将地址添加到我的亚马逊帐户的编程方式。通常通过您的帐户 > 您的地址 > 添加新地址流程完成。
你能帮我么。
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 和映射。同样的问题。
问题:
- 有没有人过去或现在经历过上述情况?
- 有谁知道是否有任何文件可以说明这一点?我阅读了我能找到的所有官方文档和随机博客,其中提到了基本路径映射,但没有提到任何缓存问题。
- 你还有什么可以代替我尝试的吗?
谢谢,
amazon-web-services - 在 aws api 网关中更改为使用计划的新 api 密钥不起作用
我有一个 aws api gateway api,它使用 api 密钥对请求进行身份验证。它与使用计划相关联并且正在运行。后来我们需要一个新的 api 键名和值。我从使用计划中删除了旧的 api 密钥,并将新的 api 密钥添加到使用计划中。重新部署舞台。现在,当在标头中使用新的 api 键名称和值时,请求始终返回 403 禁止。不知道出了什么问题。一切看起来都不错。
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 响应?
amazon-web-services - 如何从端点 URL 查找 AWS 资源
我试图理解一个无证项目。我有一个看起来像是 AWS API 网关资源的端点。有没有办法通过标识符找到该资源?
我有
我在 Stages 的俄亥俄州(us-east-2)的 API Gateways 的控制台中查看了控制台,但它们都没有一个带有 XXXXXXX 的阶段端点,该端点与该端点的 id 匹配。
端点正在运行 - 所以它肯定在某个地方。
是否有其他一些 AWS 资源类型会以这样的端点 URL 结束?还是我有错误的 AWS 账户/配置文件的可能性更大?我可以通过 XXXXXX id 在 CLI 上搜索吗?
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 文件
amazon-web-services - 如何使用 AWS API Gateway websockets 实现多个聊天室?
https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/
我了解如何通过一个聊天“房间”来实现这一点。所有消息都将通过 API Gateway 中的“sendMessage”路由键。
如果我有多个不同用户组的聊天“房间”,该怎么做?
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
作为旁注,我通过此代码提供的不仅仅是图像,但上面的示例只是一个图像。