Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services API网关-获取状态代码_Amazon Web Services_Aws Lambda_Aws Api Gateway - Fatal编程技术网

Amazon web services API网关-获取状态代码

Amazon web services API网关-获取状态代码,amazon-web-services,aws-lambda,aws-api-gateway,Amazon Web Services,Aws Lambda,Aws Api Gateway,这本应该是一个如此简单的问题,我不明白为什么在我所有的搜索中它都没有出现(也许这只是漫长的一天) 我有一个API网关API设置,我正在为400*错误组的集成响应添加主体映射模板:请参见图- 我只想得到当前响应的状态码(因为这是一个400*组-例如401/403/404等) 最接近我的是通过这个网站:我想我可以使用像$context.statusCode这样的东西,但是运气不好 是我疯了,还是这不是经常需要的 PS-对调用的任何Lambda函数进行更改不是选项 谢谢如果您正在从服务器发送错误代码

这本应该是一个如此简单的问题,我不明白为什么在我所有的搜索中它都没有出现(也许这只是漫长的一天)

我有一个API网关API设置,我正在为400*错误组的
集成响应添加
主体映射模板
:请参见图-

我只想得到当前响应的状态码(因为这是一个400*组-例如401/403/404等)

最接近我的是通过这个网站:我想我可以使用像
$context.statusCode
这样的东西,但是运气不好

是我疯了,还是这不是经常需要的

PS-对调用的任何Lambda函数进行更改不是选项


谢谢

如果您正在从服务器发送错误代码,那么您可以轻松地映射它们

我做过类似的事情,但我使用了不同的技巧。我过去常常从服务器发送我自己的错误实体和代码

您必须将来自服务器的错误实体和错误代码映射到来自amazon服务器的响应。我会尽力解释我的意思。Api网关不会自动将来自您自己的服务器的响应发送到客户端。你必须映射这些反应。例如,作为SUCESS和response实体的map 200将是默认的,即来自服务器的任何内容

现在,我们默认管理成功响应,但错误代码和错误实体又如何呢。您必须手动映射它们

有两种方法可以做到这一点

一个是手动的,转到你的api。创建错误实体或模型。为每个响应代码手动映射它们

这个用的是斯瓦格, 解决方案是导入错误实体的swagger规范。将响应模板添加到swagger规范中,让amazon完成他们的工作

我可以帮你更多的忙。这取决于您如何在amazon上设置api

访问此网站,了解亚马逊扩展版的招摇过市,

API网关中当前没有专门用于集成响应状态代码的映射模板变量

我们肯定会将此添加为功能请求

目前,您仅限于在响应模板中硬编码状态代码值。您可能需要定义通用状态代码(即“4XX”),或者为要捕获的每个状态代码定义集成响应。虽然这看起来很乏味,但在一个招摇过市的模板中可以相对轻松地进行管理

目前,查看集成响应状态代码的唯一方法是通过CloudWatch日志

谢谢,
Ryan/Amazon API Gateway

谢谢Ajinkya,但正如我提到的,我不想影响任何lambda函数和服务器调用,这是假设状态未知。我假设一定有一种方法,通过标题或其他方式获得相同的响应。如果提琴手或邮递员能做到这一点,那么这当然不难,而且这可能只是我错过的一处房产。我还想避免为每个已知的状态类型设置不同的响应,这在big APIsWell上是荒谬的,这不是我期望的答案。。。我不明白为什么所有允许使用regex状态码的功能都是允许的,但是你却不能理解它是什么状态码。不管怎样,谢谢你的反馈,让我们希望这是实施得更快,而不是更晚。我同意。和@Hexie一起。至少,我希望我能在Cloudwatch日志中看到集成响应状态代码,但我甚至没有看到。