我想在Google计算引擎中将path匹配规则添加到URL地图。 这是我的命令:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \ backend-service-wordpress --path-matcher-name root --path-rules "/=backend-\ service-wordpress,/features/=backend-service-wordpress,/pricing/=backend-\ service-wordpress,/blog/=backend-service-wordpress,/\?*=backend-service-wordpress"
它会抛出这个错误消息:
ERROR: (gcloud.compute.url-maps.add-path-matcher) There was a problem modifying the resource: - Invalid value for field 'resource': ''. Invalid path pattern
我不认为我已经在这个命令行中定义了一个空白资源。
我不得不引用一对引号中的--path-rules参数,因为zsh会投诉否则。
这是我想要定义的第一条规则。 在此之后,我将添加一个规则来映射所有/*到另一个后端服务,如下所示:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \ backend-service-app --path-matcher-name others --path-rules "/*=backend-service-app"
这个错误信息是什么? 我的命令有什么问题?
我怀疑这是使用双引号和反斜杠引号的参数 – path规则。 特别是,你不需要反斜杠来引用问号。 请注意以下输出:
print -r -- "\?"
同样,双引号内的换行符不需要反斜杠,除非设置了csh_junkie_quotes选项。
zsh可以帮助你自动引用单词。 一种方法是尝试绑定引用区域的关键。 这将引用区域(emacs模式)或视觉select(vi模式)。