问题标签 [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.
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。
aws-api-gateway - 无服务器框架:将附加资源 (sqs) 连接到 api 网关 (httpapi)
我有一个 httpapi apigateway,我需要直接集成到一个 sqs 队列(直接)。我在一年前发现了这个线程:https ://forum.serverless.com/t/api-gateway-integration-with-sqs/7339 建议了两个插件,但正如线程中提到的那样 - 两者似乎都已过时/未维护并且不支持httpapi(只有restapi)
是否有不同的插件可用,或者在即将推出的新的无服务器版本 3 中是否会原生支持此功能?实现这一目标的任何其他替代想法?
任何帮助将不胜感激
cors - cdk http api cors 配置不起作用
我有这个创建 http api 的代码,但是 cors 配置不起作用,即使它在部署后在控制台中正确显示。我仍然可以从邮递员发送请求并在 api 后面执行 lambda,考虑到这种 cors 配置,这不应该发生。
route53 记录是否在这里绕过了某些东西?
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
不起作用
跟随一些关于我们如何调用该方法的图像。
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 API
是Payload format version 2
:
是context.Context
普通的golangcontext
还是特别的?我在想events.APIGatewayV2HTTPRequestContext
或其他人。
TIn
and TOut
=> events.APIGatewayV2HTTPRequest
and的正确类型是events.APIGatewayV2HTTPResponse
什么?
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 函数。
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].
任何有关如何传递多个值的帮助将不胜感激。