【发布时间】:2017-09-22 18:02:00
【问题描述】:
我正在用 javascript 编写一个依赖于 AWS 的应用程序,并且我正在利用 AWS CLI 来自动化我的 AWS 资源的构建过程。我正在尝试创建启用了 CORS 的 API Gateway 资源。在调用api网关CLI的put-integration-response方法时,添加--response-parameters参数时,收到如下错误:
>> Error parsing parameter '--response-parameters': Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
>> JSON received: {method.response.header.Access-Control-Allow-Origin:'*'}
这是导致问题的 --response-parameters 参数:
--response-parameters {"method.response.header.Access-Control-Allow-Origin":"\'*\'"}
如果有帮助,这个参数将通过 Grunt 的 grunt-exec 插件提供。究竟是什么导致了这个问题?我尝试添加更多双引号,但它们似乎没有出现在“收到的 JSON”中。
【问题讨论】:
-
您似乎错过了将参数包含在单引号中。 --response-parameters '{"method.response.header.custom-header": "'"'"'custom-value'"'"'"}' 这个链接有很好的例子:docs.aws.amazon.com/cli/latest/reference/apigateway/…
-
所以我需要将整个 JSON 字符串用单引号括起来吗?我现在就试试。
-
我会尝试一下。确保引号正确关闭和转义。
-
更新输入:
--response-parameters \'{"method.response.header.Access-Control-Allow-Origin":"\'*\'"}\'结果:>> Error parsing parameter '--response-parameters': Expected: '=', received: ''' for input: >> '{method.response.header.Access-Control-Allow-Origin:'*'}'不幸的是,这会产生一个新错误。 -
这似乎与原始问题不同,现在解析器可以理解 KEY,但无法找到值。
标签: javascript json amazon-web-services aws-api-gateway aws-cli