Eri*_*ric 6 amazon-web-services aws-api-gateway
如何在 API Gateway 中创建模拟集成以接受请求:
/products/{product}/bigFile.zip?platform={platform}&version={version}
Run Code Online (Sandbox Code Playgroud)
并重定向响应:
http://xyz.cloudfront.net/{product}/{platform}/{version}.zip
Run Code Online (Sandbox Code Playgroud)
我尝试过更改请求和响应映射模板,但我不确定它们是如何连接的,因为有关模拟集成的 AWS 文档非常稀疏。我可以更改 HTTP 状态代码,但无法Location根据查询参数填充标头。
更广泛的背景(如果我犯了 XY 问题)是我正在使用 AWS API Gateway 构建 API。其中一个 API 端点提供的大文件不符合 API 网关的 10 秒响应时间限制,因此我想重定向到另一个 CDN 链接。
对于 MOCK 集成,请考虑将状态代码(例如 {"statusCode": 200})定义为后端的模拟状态代码的集成请求模板。除此以外,其他组件都是相同的。您必须为重定向 3xx 状态代码定义方法响应,并在响应中包含您想要发送的任何标头。然后,在“集成响应”页面上,您可以使用单引号将标头的值设置为静态值。因此,这就是您使用重定向 URL 定义 Location 标头的位置,例如“ https://other.endpoint.com ”
编辑:使用 Lambda 函数 echo 的解决方法
设置 Lambda 函数以回显有效负载。接下来将查询字符串映射到请求正文,如下所示:
模板:
{
"q": $input.params('foo')
}
Run Code Online (Sandbox Code Playgroud)
假设 Lambda 函数回显相同的负载,您可以将集成响应中的标头映射源设置为:
integration.response.body.q
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2898 次 |
| 最近记录: |