Aws lambda 将XML发布到Localstack中的lambda总是抛出502错误网关
我们将lambda部署到Localstack,并将API网关端点配置为AWS\u代理。如果主体为空或包含JSON,则使用POST调用Lambda是可行的,但是,在主体中发送XML(无论内容类型如何)总是返回502。Localstack日志中的错误为:Aws lambda 将XML发布到Localstack中的lambda总是抛出502错误网关,aws-lambda,aws-api-gateway,localstack,Aws Lambda,Aws Api Gateway,Localstack,我们将lambda部署到Localstack,并将API网关端点配置为AWS\u代理。如果主体为空或包含JSON,则使用POST调用Lambda是可行的,但是,在主体中发送XML(无论内容类型如何)总是返回502。Localstack日志中的错误为: localstack_1 | 2019-11-14T13:29:49:ERROR:localstack.services.generic_proxy: Error forwarding request: Expecting value: line
localstack_1 | 2019-11-14T13:29:49:ERROR:localstack.services.generic_proxy: Error forwarding request: Expecting value: line 1 column 1 (char 0) Traceback (most recent call last):
localstack_1 | File "/opt/code/localstack/localstack/services/generic_proxy.py", line 240, in forward
localstack_1 | path=path, data=data, headers=forward_headers)
localstack_1 | File "/opt/code/localstack/localstack/services/apigateway/apigateway_listener.py", line 35, in forward_request
localstack_1 | data = data and json.loads(to_str(data))
localstack_1 | File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
localstack_1 | return _default_decoder.decode(s)
localstack_1 | File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
localstack_1 | obj, end = self.raw_decode(s, idx=_w(s, 0).end())
localstack_1 | File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
localstack_1 | raise JSONDecodeError("Expecting value", s, err.value) from None
localstack_1 | json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我以为AWS_代理集成应该将数据直接传递到Lambda,而不进行任何解码或验证?有没有一种方法可以设置API网关集成,以便它能够愉快地接受XML
这是我们在部署lambda后用来设置API网关的函数:Localstack总是假设发布的数据是JSON并试图将其解析到Python字典,这似乎是个问题 我在这里创建了一个问题来跟踪问题,如果我有时间,我将尝试进行PR来解决问题: