提问人:pac 提问时间:11/15/2023 最后编辑:pac 更新时间:11/15/2023 访问量:47
是否可以使用 AWS API Gateway HttpIntegration 的 Apache VTL 映射将编码的查询参数转换为路径?
Is it possible to convert an encoded query param to path using a Apache VTL mapping for AWS API Gateway HttpIntegration?
问:
我需要将一些呼叫从前端代理到后端,但我无法更改它们的实际行为。
下面是一个示例来说明我试图实现的目标:
客户端调用:应重定向到: https://myApiGateway/myProxy?whereTo=%2Ffoo%2Fv2%2Fbar%3Fbaz%3D1
https://partner.com/foo/v2/bar?baz=1
我的第一个想法是将 lambda 集成附加到 API Gateway 终端节点,然后我可以轻松地解码并发送请求,但是:
- 我无法让它工作(高延迟,由于某种原因,请求未被合作伙伴摄取)
- 我宁愿不必使用 Lambda(额外的延迟、维护、成本等)
因此,在浏览 AWS 文档时,我认为可以使用 API Gateway HttpIntegration 功能。特别是,我找到了一些关于使用 Apache VTL 语言进行模板映射的信息。
有可能真正实现这一点吗?
有什么想法吗?
在 AWS 控制台上,我找不到如何创建映射并将其链接到 Integration request > URL 路径参数。只提出了基本映射,没有 VTL 脚本?集成请求> URL 路径参数
最终,我想在 Typescript CDK 中执行此操作,这就是我所在的位置:
const proxyPartnerResource = restApi.root.addResource("myProxy", {
defaultCorsPreflightOptions: {
allowMethods: ["POST", "OPTIONS"],
allowOrigins: apigw.Cors.ALL_ORIGINS,
},
});
const integration = new apigw.HttpIntegration('https://partner.com', {
httpMethod: 'POST',
options: {
requestTemplates: {
'application/json': `{
"path": "$util.urlDecode($input.params('whereTo'))"
}`
},
},
});
proxyPartnerResource.addMethod('POST', integration, {
requestModels: {
'application/json': new apigw.Model(this, 'RequestModel', {
restApi: restApi,
schema: {},
}),
},
});
答: 暂无答案
评论