亚马逊网络服务-AWS API网关:使用模拟集成重定向



我如何在API网关中创建一个模拟集成来接受请求:

/products/{product}/bigFile.zip?platform={platform}&version={version}

并重定向到:

http://xyz.cloudfront.net/{product}/{platform}/{version}.zip

我尝试过更改请求和响应映射模板,但我不确定它们是如何连接的,因为关于模拟集成的AWS文档非常稀疏。我可以更改HTTP状态代码,但无法根据查询参数填充Location标头。

更广泛的背景(如果我已经解决了XY问题)是,我正在使用AWS API网关构建一个API。其中一个API端点提供的大型文件无法满足API网关的10s响应时间限制,因此我想重定向到另一个CDN链接。

对于MOCK集成,请考虑Integration Request模板,该模板将状态代码(例如{"statusCode":200})定义为后端的模拟状态代码。除此之外,其他组件都是相同的。您必须为重定向3xx状态代码定义一个方法响应,并在响应中包含要发送的任何标头。然后在Integration Response页面上,您可以使用单引号将标题的值设置为静态值。因此,无论重定向URL是什么,都可以在这里定义Location标头,比如"https://other.endpoint.com'

编辑:使用Lambda函数回声的解决方案

设置Lambda函数以回声有效载荷。接下来将querystring映射到请求主体,如下所示:

模板:

{
  "q": $input.params('foo')
}

假设Lambda函数回显相同的有效载荷,您可以将Integration Response中的标头映射源设置为:

integration.response.body.q

相关内容

  • 没有找到相关文章

最新更新