问题标签 [aws-http-api]

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 回答
34 浏览

json - 在 Grafana 中显示 http url json 结果

我有一个非常简单的场景 - 我有一个公共 url,它以 json 格式显示结果,我想为其构建破折号可视化。我不知道选择哪个数据源,尝试了一些(Json api,简单的 json)但没有成功。这是我对 grafana 的第一次体验,因此我们将不胜感激。结果如下所示:

我只想从此 url 获取结果并使用 Grafana 显示结果。

0 投票
3 回答
559 浏览

go - AWS API Gateway HTTP API 如何传递字符串查询参数?

所以我正在制作一个应用程序并需要 AWS API Gateway。我想使用 HTTP API 而不是 REST API。我的代码看起来像这样

如您所见,这不是完整的代码。我与数据库建立连接并使用请求字符串查询。所以我对http api进行了同样的尝试,但它只给了我404,这意味着http api不会将查询字符串传递给lambda,所以我如何让我的api将数据传递给lambda。Rest api 工作 HTTP 不工作。谢谢你的帮助。

0 投票
1 回答
147 浏览

aws-lambda - 本地启动 API 时未设置 AWS SAM APIGatewayProxyRequestEvent HttpMethod

我创建了一个带有 的应用程序AWS::SERVERLESS::FUNCTION,它附加了一个 HttpApi 事件。我认为为每个资源创建一个 lambda 是个好主意,因此例如 Post、Get 和 Put on /customer 都由单个 lambda 处理,它决定使用哪个操作

所以现在来解决我的问题:当使用sam local start-api我的 lambda 启动应用程序时,会被正确调用,但既没有input.getHttpMethod()也没有input.getRequestContext().getHttpMethod()设置。

鉴于 SAM 支持多个 HttpApi 事件,在本地运行应用程序时未能提供 http 方法几乎完全缓解了本地开发。我做错了什么,还是这真的不起作用?我正在使用 Java 顺便说一句,我无法判断使用其他语言是否也存在此问题。

以防万一:我的“每个资源一个 lambda”方法是否错误,每个操作都应该有自己的 lambda 吗?

0 投票
0 回答
112 浏览

amazon-web-services - 如何为 AWS HTTP API 创建使用计划?

我将 AWS API Gateway 与调用 lambda 函数的 HTTP API 一起使用。但是 HTTP API 不包括 USAGE 功能。根据我的要求,我需要根据 lambda 发回的响应的状态代码为客户端创建一个用法。由于我无法在 API Gateway 中访问 lambda 发送的响应,因此我正在寻找自定义解决方案。我打算使用STEP功能。

例如:

代替 API Gateway 直接调用 lambda 函数,它可以调用 STEP 函数,我可以在其中执行 LambdaA。接下来,它将触发 LambdaB,来自 LambdaA 的响应作为 LambdaB 的连续输入。我不知道这是否是正确的方法

我想知道解决此问题的最佳方法是什么...在此先感谢

0 投票
2 回答
243 浏览

amazon-web-services - 如何在没有 HTTP api 的情况下使用 aws lambda?

由于在 AWS lambda 上使用 HTTP 和 REST api 需要额外的成本,我想知道我是否可以让 AWS Lambda 在不需要这些 HTTP API 服务的情况下接收获取和发布。

在这个例子中,它似乎是可能的:

https://github.com/serverless/examples/tree/master/aws-node-simple-http-endpoint

0 投票
2 回答
241 浏览

amazon-web-services - AWS - HTTP API Gateway - 如何阻止网站图标请求?

我正在使用 HTTP API 网关来触发 lambda 调用。当我使用邮递员的网址时,没有问题。当我从浏览器中使用它时,它总是会为 favicon 发出第二个请求。

网关本身是否有阻止 favicon 请求到达 lambda 的方法?

我正在使用以下地形:

0 投票
1 回答
313 浏览

amazon-s3 - 直接从 API Gateway 中的 HTTP API 将 putObject 写入 S3

我的目的是在 Amazon API Gateway 上创建一个 HTTP API,通过 S3 API 使用 PutObject 操作将文件写入 S3(中间不调用 Lambda)。这是 PutObject 请求语法:https ://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_RequestSyntax

我不确定这在技术上是否可行,并且我在 Postman 中收到 403 Forbidden: ForbiddenException 响应。

到目前为止,我有:

  1. 创建了 S3 存储桶(配置了 CORS)
  2. 在 API Gateway 中创建了 HTTP API(配置了 CORS),并带有“putObject”POST 操作
  3. 将 HTTP API 上的集成配置为 https://[s3-bucket-name].s3.us-east-1.amazonaws.com
  4. 创建对 HTTP API 'invoke URL' 的 Postman 请求,并在标头上设置 'Host' 和 'x-apigw-api-id'

ForbiddenException 显然表明存在权限问题,无论是在 HTTP API 上还是在其背后的 S3 API 上。我确实在 HTTP API 上配置了一个 Cloudwatch 日志组,它没有显示任何条目,所以这似乎是一个 HTTP API 访问问题。

我还怀疑我需要将参数映射添加到 HTTP API 以将所有必要的标头传递给 S3 putObject 操作。

我的问题是:

  1. 这种类型的 HTTP API 是否可以直接与 S3 集成?
  2. 服务的 403 Forbidden 响应的可能原因是什么?
  3. 我会在 HTTP API 集成配置中使用“附加”参数映射来添加标准 S3 API 参数(并避免将它们暴露给客户端)吗?
0 投票
0 回答
87 浏览

amazon-web-services - 从 API Gateway (HTTP API) 的 lambda 授权方获取自定义响应

我正在尝试从 API 网关(HTTP API)的 lambda 授权方获取自定义响应。除了检查 cognito 令牌外,我们还添加了自定义验证,并希望在响应中添加失败的原因。我们在上下文中添加了错误响应,但找不到将其添加到响应中的方法。我们只收到“403 Forbidden”消息。有没有人对此有任何解决方案?

0 投票
1 回答
161 浏览

amazon-web-services - 基于 AWS API Gateway 路径的私有集成路由

我正在使用 AWS HTTP API Gateway 将请求路由到我在 VPC 中的集成。

我添加了一个自定义域,我想通过以下方式根据路径将我的请求路由到我的集成

基于路径的路由

基本上所有到达 API 网关的请求都应该根据基本路径路由到不同的集成,但集成应该只接收基本路径之后的路径。因此,所有到达 my.custom.domain/foo/<path1>/<path2>/<path3> 的请求都应该路由到集成Foo但网关应该剥离基本路径,即 /foo 并将其余的转发到集成.

功能与以下 nginx 中的相同,其中 nginx 从请求路径中剥离 foo 并将其余部分转发给服务

我尝试在 AWS API 网关中添加自定义域和 API 映射,但这不起作用。我的服务仍然从请求中接收整个路径,因此失败。我无法在互联网上找到有关此的任何文档或提及。

0 投票
0 回答
16 浏览

aws-http-api - 为什么 AWS HttpApi 不需要 Cloudformation 资源声明?

我正在使用有关如何创建 RESTful CRUD API的 AWS 官方教程AWS::Serverless::Api,并且 YML 模板不包含 AWS声明。

但是,在另一个使用RestApi的教程示例中,可以在 YML 模板中找到 API 资源的声明。

这是为什么?这是设计使然,因为HttpApi被认为是“轻量级的”?