您可以使用 $context (AWS API GATEWAY) 中的值静态设置 Header

Can you statically set a Header with a value from $context (AWS API GATEWAY)

我试图在访问我的 http 端点之前从 AWS_IAM 身份验证中获取调用者用户。

我试图在请求中传递 $context.identity body 在集成请求中添加一个映射模板,但我的 http 端点是一个 GET 请求,我得到一个空请求 body.

我需要知道是我的哪位用户发出了请求

也许将 $context.identity.cognitoIdentityId 作为请求传递 header 是解决方案。

不幸的是,$context 变量目前在请求 headers 中不起作用,仅在映射模板中起作用。我们有一个功能请求要在将来添加此功能,但尚无预计交付日期。

使用 $context.identity.cognitoIdentityId 在映射模板中确实有效,但正如您所指出的,API 网关不会将请求 body 发送到 GET 请求的后端端点.

作为临时解决方法,您能否更改后端端点以使用 POST 或 PUT?

那么你可以通过 body.

的映射模板中的 $context.identity.cognitoIdentityId 令我感到惊讶

在此问题得到解决之前的另一个解决方法是使用 Lambda 作为另一个代理。您可以使用映射模板将 $context.identity.cognitoIdentityId 发送到 Lambda 函数。该函数然后使用 header 中的相关上下文字段而不是 body 中的相关上下文字段将请求转发到您的 http 端点。这样您就不必更改 API(您可以继续使用 GET 等)。

我发布了 more details and an example of a generic function here。希望对你有帮助。