当设置了--response-parameters选项时,put-gateway-response失败
我想使用aws cli设置一些自定义的API网关响应。这是我使用的命令(仅相关的参数):当设置了--response-parameters选项时,put-gateway-response失败
aws apigateway put-gateway-response --response-parameters method.response.header.Access-Control-Allow-Origin='"'"'*'"'"'
完整的命令是:
类=>AWS apigateway放网关响应--rest -api-id w1s3nc4dxd --response-type UNAUTHORIZED --status-code 401 --response-parameters method.response.header.Access-Control-Allow-Origin =''''''''''''--response -templates'{“application/json”:“{\”errorcode \“:401,\”message \“:$ context.error.messageString}”}'--region eu-west-1
它失败了个:
发生错误(BadRequestException)调用PutGatewayResponse操作时:无效的映射表达式指定:验证结果:警告:[],错误:[无效的映射表达式指定:method.response.header.Access-控制-Allow-Origin]
如果在没有该参数的情况下执行,则一切正常。我也尝试过json格式和相同的结果。
--response-parameters '{"method.response.header.Access-Control-Allow-Origin":"'"'*'"'"}'
任何见解?提前致谢。
---编辑
只是一个额外的澄清。这会失败,并带有所有类型的响应参数,这不仅涉及访问控制 - 允许源头。
我相信网关响应参数的格式应该是gatewayresponse.header.[name]
。这将是在地图键(目标),和值(源)是一个静态值(如你有)或映射表达式method.request.(path|querystring|header).[name]
或stageVariables.[name]
或context.[name]
并启用CORS? –
嗯,我不确定为什么CORS与此相关。我的一些终点有一些启用了CORS,而另一些则没有。试图设置一个头到API网关响应。为了使它更清楚,无论响应参数是什么,它都会失败。 – RoberMP