Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Aws lambda 将XML发布到Localstack中的lambda总是抛出502错误网关_Aws Lambda_Aws Api Gateway_Localstack - Fatal编程技术网

Aws lambda 将XML发布到Localstack中的lambda总是抛出502错误网关

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

我们将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 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来解决问题: