首页 文章

访问事件时,AWS Lambda Malformed Lambda与代理集成

提问于
浏览
1

手头的问题:仅在访问事件数据时出现格式错误的Lambda异常 .

当我访问该事件时,API网关返回“内部服务器错误” . 我想要做的事情的简化用例是从POST请求访问给予Lambda的密钥的值,使用代理集成,因此不需要模板映射 .

import json

def lambda_handler(event, context):
   items = {}
   items["hello"] = "name"

   itemsarray = []
   for key, value in event.items() :
       itemsarray.append(key + ":" + value)

   return {
       'statusCode': 200,
       'isBase64Encoded': False,
       'body' : json.dumps(items),
       'headers': {
            'content-type': 'application/json'
        }
   };

来自API网关的错误消息,Lambda本身不会在代码上返回任何错误 .


Thu Feb 15 13:24:51 UTC 2018 : Received response. Integration latency: 742 ms
Thu Feb 15 13:24:51 UTC 2018 : Endpoint response body before transformations: {"errorMessage": "must be str, not NoneType", "errorType": "TypeError", "stackTrace": [["/var/task/lambda_function.py", 9, "lambda_handler", "itemsarray.append(key + \":\" + value)"]]}
Thu Feb 15 13:24:51 UTC 2018 : Execution failed due to configuration error: Malformed Lambda proxy response
Thu Feb 15 13:24:51 UTC 2018 : Method completed with status: 502

JSON发布数据


{“dummy”:“你好”,“数据”:“世界”}

1 回答

  • 2

    回答我自己的问题,以保存未来几年的痛苦时间 . 我很想做“NVM得到它” . 无论哪种方式,你去 .

    事件体返回一个字符串 .

    data = json.loads(event ['body'])

    现在与它进行互动 . 如果我们有一个像JSON结构

    {
    "someVar": "out",
      "data": {
        "message": "another out"
      }
    }
    

    数据['数据']

    会回来我们"message":"another out"

    NOTE 在lambda编译器在线 . 它给出了以下错误,但一旦通过postman或API Gateway之类的东西与它进行交互,它就可以正常工作 . 它似乎给了我一段时间的假阴性 .

    'body': KeyError
    Traceback (most recent call last):
      File "/var/task/lambda_function.py", line N, in lambda_handler
        var= json.loads(event['body'])
    KeyError: 'body'
    

    现在我浪费了几个小时喝啤酒,感谢上帝堆栈溢出是一件事

相关问题