我有一个在 AWS 中运行的 Next.js 服务器。我想从该服务器(而不是客户端)向API网关发送请求,我已配置为通过IAM授权授权请求。
如果我发送请求,我会按预期收到 403,因为没有签名。我应该能够使用 signed requests 来解决这个问题,但算法相当复杂,有很多错误范围,所以我不想从头开始实现它。
我尝试过使用各种库来实现此目的,但它们看起来相当旧或非常复杂。
我想做的就是实现这样的功能:
export async function sendSignedRequest(request: Request): Promise<Response> {
// sign request and await response
}
有没有一种简单、现代的方法来实现这一点?
您可能正在寻找 API 网关“生成的 SDK”:
https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk.html
这允许您构建一个将自动处理请求签名的客户端,方式如下:
var apigClient = apigClientFactory.newClient({
accessKey: 'ACCESS_KEY',
secretKey: 'SECRET_KEY',
});