lambda 调用中缺少 multiValueQueryStringParameters

Jim*_*mbo 2 aws-lambda aws-api-gateway

我调用了连接到 Lambda 函数的 API 网关。我期望在处理程序的输入multiValueQueryStringParameters中看到一个键。event

https://aws.amazon.com/blogs/compute/support-for-multi-value-parameters-in-amazon-api-gateway/

相反,我看到了一个逗号分隔的列表queryStringParameters

例如,这个调用:

https://12324234234234.execute-api.us-east-2.amazonaws.com/dois_to_pmids?a=1&a=2&a=3

生成以下事件条目:

"queryStringParameters": {"a": "1,2,3"}

我尝试将所有内容都变成代理集成,首先要做的是:

GET /{proxy+}

然后通过执行以下操作:

ANY /{proxy+}

没有运气。

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html

https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html

这是怎么回事?

Jim*_*mbo 5

因此,经过一番挖掘后,我在设置集成时发现了一个选项来选择有效负载版本(1 或 2)。目前,您可以在此处阅读有关有效负载版本格式的信息(某种程度上,细节有点少):

https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html

该链接的主要要点是版本 2 没有multiValueQueryStringParameters,而是重复的参数在逗号分隔的列表中连接在一起(如观察到的)。

尚未测试这如何处理带有逗号的值:/

  • 谢谢你挖掘这个问题,Jimbo,你帮我省了力气。 (2认同)