2

我正在使用JavaScript编写AWS依赖应用程序,并且正在利用AWS CLI为我的AWS资源自动构建过程。我正在尝试创建一个启用了CORS的API网关资源。当调用API网关CLI的put-integration-response方法,当我添加了--response-parameters说法,我收到以下错误:AWS CLI无效JSON错误 - 期望使用双引号括起属性名称

>> 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参数参数,是造成问题:

--response-parameters {"method.response.header.Access-Control-Allow-Origin":"\'*\'"}

如果有帮助,这个参数通过Grunt的grunt-exec插件提供。究竟是什么导致了这个问题?我试着添加更多的双引号,但他们似乎并没有出现在'收到JSON'中。

+1

中找到更多信息。您似乎错过了将参数包装在单引号中。 --response-parameters'{“method.response.header.custom-header”:'''''''custom-value'''''“}'这个链接有个很好的例子:http://docs.aws。 amazon.com/cli/latest/reference/apigateway/put-integration-response.html – kosa

+0

所以我需要用单引号包装整个JSON字符串?我现在就试试。 –

+0

我会试一试。确保报价已正确关闭并转义。 – kosa

回答

0

您可以使用'''''''*''''''对静态值进行编码。

例子:

aws apigateway put-integration-response --rest-api-id xxxxx --resource-id xxxxxx --http-method GET --status-code 200 --response-parameters '{"method.response.header.Access-Control-Allow-Origin": "'"'"'*'"'"'"}' 

我建议使用JavaScript SDK调用API网关来管理您的资源。您可以从SDK documentation.

相关问题