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

amazon-web-services - HTTP API 网关中是否有等效的 REST API 密钥?

使用 REST API (AWS API Gateway v1),我们可以X-API-Key在请求中使用标头并维护 API 密钥来控制对给定端点的访问。

在 AWS 中,如果我转到 API Gateway 并选择 REST API (v1),然后在 Resources 下我看到:API Key Required并且在 API Keys 下我可以找到我的密钥。

使用serverless它可以这样配置:

但如果我切换到httpApi然后我得到:

此外,在 API Gateway 中,在 HTTP API (v2) 下,任何地方都没有 API 密钥。

当我检查文档时,REST API 下有一个关于 API 密钥的大节: https ://www.serverless.com/framework/docs/providers/aws/events/apigateway 但 API Gateway HTTP API 与 API 密钥无关: https: //www.serverless.com/framework/docs/providers/aws/events/http-api

HTTP API (API Gateway v2) 中是否有等效的REST API (API Gateway v1) API 密钥?基本上,我希望能够X-API-Key像在 REST API 中一样使用 HTTP API。

0 投票
0 回答
19 浏览

aws-api-gateway - 无服务器框架:将附加资源 (sqs) 连接到 api 网关 (httpapi)

我有一个 httpapi apigateway,我需要直接集成到一个 sqs 队列(直接)。我在一年前发现了这个线程:https ://forum.serverless.com/t/api-gateway-integration-with-sqs/7339 建议了两个插件,但正如线程中提到的那样 - 两者似乎都已过时/未维护并且不支持httpapi(只有restapi)

是否有不同的插件可用,或者在即将推出的新的无服务器版本 3 中是否会原生支持此功能?实现这一目标的任何其他替代想法?

任何帮助将不胜感激

0 投票
1 回答
60 浏览

cors - cdk http api cors 配置不起作用

我有这个创建 http api 的代码,但是 cors 配置不起作用,即使它在部署后在控制台中正确显示。我仍然可以从邮递员发送请求并在 api 后面执行 lambda,考虑到这种 cors 配置,这不应该发生。

route53 记录是否在这里绕过了某些东西?

0 投票
0 回答
47 浏览

aws-api-gateway - 在 API Gateway V2 中发送消息属性不适用于 $request.header

我们正在尝试将 API Gateway V2 与 API SQS 集成连接起来。这种集成工作正常,消息正在到达队列。

问题是当我们尝试将值从标头添加header.sample1到消息时。

通常建议的解决方案是在集成中使用消息属性,但这不起作用。在下面的屏幕截图中您可以看到$request.header.sample1。为此,我们希望收到 SQS 的标头值,但这并没有发生,而是整个 API 请求失败。

在此处输入图像描述

我们还尝试将其格式化为对象:

这很好用。但是,如果我尝试

这也不起作用。任何使用$request.header$request.body不起作用的东西。此外,尝试$request.header.sample1不起作用

跟随一些关于我们如何调用该方法的图像。

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
56 浏览

go - Amazon API Gateway HTTP API:go 中 lambda 函数中的自定义类型

对于如何使用 golang 并坐在HttpApi后面将自定义类型传递到我的 Lambda 函数中,我有点困惑。

考虑以下 go lambda 处理程序,它几乎是文档中示例的副本。

结果消息始终如下。

我有一种转储的感觉,这是不可能的Amazon API Gateway HTTP API。但我也没有找到任何文件指出这是不可能的。所以我真的想知道,如果我做错了什么?

该文档还说明了有关有效签名的一些信息:

例如func (context.Context, TIn) (TOut, error)

如果我使用的HTTP APIPayload format version 2

context.Context普通的golangcontext还是特别的?我在想events.APIGatewayV2HTTPRequestContext或其他人。

TInand TOut=> events.APIGatewayV2HTTPRequestand的正确类型是events.APIGatewayV2HTTPResponse什么?

0 投票
0 回答
24 浏览

aws-lambda - AWS HTTP API 网关不支持 ASP.NET 核心 Web API 路由?

我正在尝试将一个 asp.net 核心 web api 传输到我的第一个 AWS HTTP API。我将 asp.net 核心 web api 项目作为 lambda 函数托管,并尝试通过 API 网关匹配端点。我可以通过我的 API 网关访问默认端点。即可以通过我的api网关成功访问以下端点。

在此处输入图像描述

但是,如果我尝试使用 Route 属性访问某些方法,则会收到 404 not found 异常。例如

具有以下映射 在此处输入图像描述

我在这里做错了什么?

谢谢,

0 投票
0 回答
38 浏览

amazon-web-services - 从 HTTP API 调用 lambda 别名

有很多关于如何使用 was REST API 调用 lambda 别名的信息,但相同的过程不适用于 HTTP API。这个问题之前在这里被问过,但没有得到回答。这个问题专门针对 HTTP API。

aws 文档建议您可以使用完整的 arn 引用 lambda 函数别名,这很有意义,只是 lambda 选择不接受完整的 arn。

在此处输入图像描述

我还使用以下 CLI 命令(帐号替换为 xx)授予了对 lambda 的 API 访问权限:

如何使用 HTTP API(而不是 REST API)的别名调用 lambda?

更新 1:使用 cli,我可以创建一个指向带有别名的 lambda URI 的集成。这是来自的返回值aws apigatewayv2 update-integration

我还尝试使用以下方法再次添加权限:

(将资源路径添加到 source-arn 会导致错误)

当我调用 API 端点时,我现在得到:

根据 CloudWatch 日志,未调用 lambda 函数。

0 投票
0 回答
16 浏览

aws-api-gateway - AWS HTTP API 与 AWS Step Functions 集成 -> 在输入中发送多个值

我有一个 Type: AWS::Serverless::HttpApi 我试图连接到一个 Type: AWS::Serverless::StateMachine 作为触发器。这意味着 HTTP API 将触发 Step Function 状态机。

我可以让它工作,只指定一个输入。例如,运行时的 DefinitionBody 如下所示:

请注意以下行:输入:$request.body。我只指定 $request.body。

但是,我需要能够发送 $request.body 和 $request.header.X-Hub-Signature-256。我需要将这两个值作为输入发送到我的状态机。

我尝试了很多不同的方法。例如:

Input: " { body: $request.body, header: $request.header.X-Hub-Signature-256 }"

Input: $request

我每次都会遇到不同的错误,但这是主要的错误:

Warnings found during import: Unable to create integration for resource at path 'POST /github/secret': Invalid selection expression specified: Validation Result: warnings : [], errors : [Invalid source: $request specified for destination: Input].

任何有关如何传递多个值的帮助将不胜感激。