是否可以使用AWS API Gateway(和Lambda)访问原始URL?
或者,可以访问未经解码的原始查询字符串参数吗?
我们正在与第三方服务集成,该第三方服务调用我们的API并对Windows-1252中的查询字符串参数进行编码。 (例如,芬兰字母Ä编码为%C4而不是%C3%84)。 API网关似乎会自动解码查询字符串参数并采用UTF-8,这意味着Ä(以及Ö和Å)的结果为\ ufffd。
答案 0 :(得分:2)
该死,看来真的不可能...
我开始写了如何将Lambda Proxy Integration与PhantomJS not found on PATH
Download already available at /tmp/phantomjs/phantomjs-2.1.1-macosx.zip
Verified checksum of previously downloaded file
Extracting zip contents
Removing /usr/local/lib/node_modules/jshint/node_modules/phantomjs-prebuilt/lib/phantom
Copying extracted folder /tmp/phantomjs/phantomjs-2.1.1-macosx.zip-extract-1539960008063/phantomjs-2.1.1-macosx -> /usr/local/lib/node_modules/jshint/node_modules/phantomjs-prebuilt/lib/phantom
chmod failed: phantomjs was not successfully copied to /usr/local/lib/node_modules/jshint/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: phantomjs-prebuilt@2.1.16 (node_modules/jshint/node_modules/phantomjs-prebuilt):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: phantomjs-prebuilt@2.1.16 install: `node install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ jshint@2.9.6
updated 1 package in 13.417s
一起使用,但这会将数据解析为键值对象。
然后我在API网关中沿Mapping Templates的路走,但似乎没有任何属性可以显示整个查询字符串。
尽管我不希望它是真的,但我只能断定这是不可能的...
我认为您最好的选择是在客户端上将参数编码为base64,然后使用event.queryStringParameters
在Lambda函数中进行解码。