我想在 Google Compute Engine 中的 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"
这个错误信息是什么意思?我的命令有什么问题?
答案1
我怀疑这与 --path-rules 参数同时使用双引号和反斜杠引号有关。具体来说,您不需要反斜杠来引用问号。请注意以下输出:
print -r -- "\?"
类似地,除非您设置了 csh_junkie_quotes 选项,否则双引号内的换行符不需要反斜杠。
zsh 有多种方法可以帮助您自动引用单词。一种方法是尝试将某个键绑定到 quote-region。这将引用区域(emacs 模式)或可视选择(vi 模式)。