如何在AWS API Gateway中自动将requestId插入请求体,无需手动映射原字段
在AWS API Gateway中自动向请求体插入requestId(无需手动枚举字段)
要实现无需手动编写原请求体所有字段,自动将$context.requestId插入请求体的需求,直接用API Gateway的映射模板结合Velocity Template Language(VTL)就能搞定,步骤如下:
- 打开AWS API Gateway控制台,找到目标API和对应的HTTP方法(比如POST)
- 切换到集成请求标签,展开映射模板设置
- 选择请求对应的Content-Type(通常是
application/json),如果没有该类型的模板,点击「添加映射模板」创建 - 将默认模板替换为以下VTL代码:
#set($body = $util.parseJson($input.body)) #set($body.requestId = "$context.requestId") $util.toJson($body)
代码说明
$util.parseJson($input.body):把原始请求体解析为VTL可操作的JSON对象$body.requestId = "$context.requestId":向JSON对象直接添加requestId字段,值为API Gateway生成的请求ID$util.toJson($body):将修改后的JSON对象重新序列化为字符串,作为转发到后端的新请求体
这个方案完全通用,不管原请求体的结构、字段数量如何,都能自动插入requestId,不需要手动枚举任何原有字段。
内容的提问来源于stack exchange,提问作者Lemour
相关产品推荐
相关产品推荐

