如何在GCP项目元数据中设置JSON数据?解决语法错误
解决gcloud添加JSON格式项目元数据的语法错误
方法一:命令行直接正确转义
用单引号包裹整个JSON格式的元数据值,避免shell解析引号时出错:
gcloud compute project-info add-metadata --metadata csp='{"default-src":["*","self"]}'
原理:shell中,单引号包裹的内容会被原样解析,不会处理内部的双引号和特殊字符,能保证传递给gcloud的JSON格式完全正确。
方法二:通过文件传递元数据(适合复杂JSON场景)
如果元数据的JSON内容更复杂,建议写入文件后再执行命令,规避命令行转义麻烦:
- 创建
metadata-values.json文件,内容如下:
{ "csp": "{\"default-src\":[\"*\",\"self\"]}" }
- 执行gcloud命令读取文件中的元数据:
gcloud compute project-info add-metadata --metadata-from-file=metadata-values.json
原命令报错原因
你之前的命令混合使用了双引号转义和单引号,shell解析时无法正确识别JSON的完整结构,导致元数据值的语法被破坏,触发了Bad syntax for dict arg错误。
内容的提问来源于stack exchange,提问作者Saurabh Joshi
相关产品推荐
相关产品推荐

