问题标签 [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 投票
1 回答
2760 浏览

amazon-web-services - AWS API Gateway 私有 API 自定义域名

AWS 文档说,

私有 API 不支持自定义域名。

来源:https ://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html

这到底是什么意思?我可以将自定义域名附加到私有 API。

但是我面临 SSL 证书的问题。

0 投票
1 回答
84 浏览

amazon-web-services - 我应该选择什么 Elastic Beanstalk 环境?

我的工作是将我们现有的 java 计算(作为 WAR 文件的 servlet)从我们自己的服务器移动到 AWS。这是一个没有用户界面或数据库的计算。其他公司应该能够在他们的程序中调用计算。servlet 接受一个带有 Json 有效负载的 post 请求,并且在执行计算后响应将 Json 有效负载发送回客户端。计算相对繁重,因此耗时(1-2 秒)。

我已决定使用 AWS Elastic Beanstalk 进行云计算,但我不确定要使用什么 EB 环境 - 服务器或 Worker 环境?如果我应该在 EB 前使用 AWS API Gateway?

希望有人可以为我澄清这一点。

0 投票
1 回答
308 浏览

amazon-web-services - 如何从亚马逊 api 网关调用 lambda(在 vpc 中)

案例:我的 lambdavpc将连接rds以获取一些数据。所以在这里我正在开发无服务器 Web 应用程序,我想在网页本身(一些表格数据)上显示该 lambda 响应。

  1. 如何创建 amazon api-gate-way 来调用该 lambda 函数(在 vpc 中)以获取所需的数据。
  2. 这个 api 网关 url 我将在 ajax 部分中使用。

问题: A. 如何从 ajax 调用将数据从 ajax url 传递到这个 lambda 函数(在 vpc 中)

有什么建议么 ?

谢谢

0 投票
1 回答
174 浏览

amazon-web-services - AWS api 网关中的代理资源 API 返回所有 url 的最后缓存响应

我已根据资源为 AWS API Gateway 中配置的 API 之一启用缓存。我为此 API 创建的资源是代理资源,如下图所示 -

在此处输入图像描述

现在我面临的问题是对于所有 url,返回相同的响应(最后一个缓存),路径是否不同都没有关系。例如,/path/xyz/path/xyz/p1返回相同的响应。我怀疑由于此 API 是代理资源(直通),默认缓存键不是唯一的,因此所有 url 的响应相同。启用缓存键的请求参数在这里没有帮助。

有没有人遇到过这个问题?还是我缺少一些配置?

0 投票
1 回答
294 浏览

django-rest-framework - drf_yasg 和 amazon api 网关返回 json 而不是 html ui

我已经使用 djangorestframework 设置了我的 python api 服务,并且我正在使用 drf_yasg 为我的 api 显示 swagger 文档。

这是设置的概览:

接下来,我使用 amazon ec2 和其他东西设置了这个 api,并且我正在使用 Amazon API Gateway 从容器中访问 api。

API 网关设置

现在的问题是,当我尝试使用 api 网关域访问它时,它返回的是swagger JSON而不是 HTML。我尝试了几种方法,例如Content-Type在方法响应和集成响应中设置映射,但没有任何效果。

在我的本地机器上,它按预期显示 html,所以我怀疑问题出在我的网关设置中。

如果有人可以提供帮助,我将不胜感激!

0 投票
2 回答
2218 浏览

amazon-web-services - api gateway lambda 应该如何返回登录的重定向 URL

我的 Lambda 函数返回 html 页面。我能够从节点 js 10.x 成功返回完整的 html。因此,如果我使用 api gateway url https://2kiz3ttah.execute-api.eu-west-1.amazonaws.com/stage/login访问我的 lambda, 如果未登录,则 lambda 应该返回一个重定向 URL。如何返回在浏览器中打开的 URL,而不是呈现 HTML 页面。

0 投票
1 回答
716 浏览

amazon-web-services - AWS Lambda 函数 context.identity.cognito_identity_id 返回 null

对于 Web 应用程序,我正在制作一个由 api 网关触发的 AWS Lambda 函数。我将 api 网关链接到 cognito 用户池,因此您需要在触发该功能之前登录。“选项”部分未启用授权,“发布”方法将 cognito 用户池作为授权者。当我按下前端的按钮触发它时,该功能运行正常。我的问题是它context.identity.cognito_identity_id总是返回一个空值,而不是预期的子 uuid。我不知道这是为什么。我尝试启用“使用调用方凭据调用”,但是当我将鼠标悬停在复选框上时,显示我无法启用它。这是我当前的 lambda 函数:

我怎样才能使它context.identity.cognito_identity_id(或类似的东西)返回我认为应该的用户的 uuid?

0 投票
1 回答
49 浏览

amazon-web-services - 如何在不使用 AWS API Gateway 的情况下使用 Cognito 对我的 API 请求进行身份验证

似乎有关使用 Cognito 保护 API 的所有信息都需要使用 AWS API Gateway,但此网关需要额外付费,并且还有许多其他 API Gateway 产品可用。

0 投票
1 回答
482 浏览

amazon-web-services - cloudFormation:具有嵌套资源的 api-gateway - 测试工作流程期间出现 500 错误

我构建了一个 cloudFormation 模板。它执行一个简单的工作流程:客户端发出请求 -> api 网关处理它并通过代理集成发送到 lambda 函数。api 网关和 lambda 之间有一个角色。

我的模板包括:

  • 根资源 (AudienceApi)
  • 嵌套资源(段)
  • 方法 post (PostMethod) 与 lambda 的集成
  • lambda 函数 (lambdaFunction)
  • lambda 调用者(它是 api 网关调用 lambda 的权限)
  • lambda 角色

在测试整个工作流程期间,我遇到了一个问题 - api 响应错误 500 Internal Server Error。从日志中我发现消息: Invalid permissions on Lambda function

我继续测试并找出当我删除嵌套资源(Segment)并将方法发布资源(PostMethod)直接连接到根资源(AudienceApi)时,我的工作流程开始工作

问题:我的模板有什么问题?为什么它不适用于嵌套资源路径?

也许有人查看我的模板并发现错误?

模板

0 投票
0 回答
1206 浏览

reactjs - 使用 Lambda 函数 + API 网关将图像从 ReactJS 上传到 AWS S3

我是 ReactJS 和 AWS 的新手。我想用一个简单的按钮创建一个简单的 ReactJS 前端,通过与 Lambda 函数集成的 API 网关将图像上传到 S3(lambda 函数为文件上传创建预签名的 url)。我遇到了 CORS 错误,我已经尝试了我在网上找到的所有内容,但似乎没有任何效果。我想要实现的主要目标是将图像上传到 S3 并获取图像的 url 以将其发布到 DynamoDB 表中作为参考。我不确定如何使所有这些组件一起工作。我关注了这篇文章:https ://blog.webiny.com/upload-files-to-aws-s3-using-pre-signed-post-data-and-a-lambda-function-7a9fb06d56c1

这是我的 Lambda 代码:

我创建了启用了 lambda 代理集成功能的 AWS API,以确保从此处传递标头以避免 CORS 错误,但它仍然以某种方式显示它们。

我的 ReactJS 前端组件代码如下所示(取自上面链接的教程):

任何帮助将不胜感激!最终,我想将图像上传到 s3,然后将图像 url 存储在 dynamodb 表中作为参考。谢谢!