gpt4 book ai didi

python - AWS API 网关、Python Lambda 和 HTTP 状态

转载 作者:可可西里 更新时间:2023-11-01 17:26:05 25 4
gpt4 key购买 nike

我正在努力了解如何使用 AWS API 网关和 Lambda 函数 (python) 作为集成类型来设置正确的 http 状态代码和错误消息。

我正在处理一个简单的示例,这里是详细信息:

Lambda 函数

def lambda_handler(event, context):

return_json = {}
if event["request-number"] == "":
raise Exception("Error request-number can't be empty")
elif event["request-number"] == "3":
raise Exception("Value not accepted")
else:
return_json = {"service-activated": "TRUE"}

return return_json

应用程序接口(interface)/资源测试发布

这与上面的 lambda 集成。

目标:当 request-number = ""时,返回 HTTP 400 和消息正文 Error request-number can't be empty

实现:

  1. 我创建了一个新方法响应 400
  2. 在 lambda Error Regex 中,我映射了 Error.* 以便捕获该字符串
  3. 在 body 映射模板中:我创建了一个内容类型为 application/json 和我使用的模板(设置前有一个标签符号,但这搞砸了这个页面的格式,所以我省略了它):

    设置($inputRoot = $input.path('$')){ “消息”:$input.json('$.errorMessage')

  4. 我已检查方法响应中的 http 状态为 400(我有)

测试通过 AWS API Gateway 控制台,我测试了 HTTP 400 和正文中的消息 Error request-number can't be empty。很好,我实现了我想要的:

enter image description here

我决定也通过 Postman 和 Chrome 插件 ReSTLet Client 进行测试,我得到的是 http 状态 200 和错误消息格式不正确:

enter image description here

现在,这很奇怪:在 AWS API 控制台中一切都很好,在外部服务中没有任何工作按预期进行。

有没有人遇到过类似的事情?

谢谢!

最佳答案

您是否重新部署了您的 API?

关于python - AWS API 网关、Python Lambda 和 HTTP 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com