Ich möchte einer URL-Zuordnung in Google Compute Engine Pfadübereinstimmungsregeln hinzufügen. Hier ist mein Befehl:
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"
es wird diese Fehlermeldung ausgegeben:
ERROR: (gcloud.compute.url-maps.add-path-matcher) There was a problem modifying the resource:
- Invalid value for field 'resource': ''. Invalid path pattern
Ich glaube nicht, dass ich in dieser Befehlszeile eine leere Ressource definiert habe.
Ich muss die Parameter --path-rules
in Anführungszeichen setzen, da zsh sonst eine Fehlermeldung gibt.
Dies ist die erste Regel, die ich definieren möchte. Anschließend werde ich eine Regel hinzufügen, um alles /*
einem anderen Backend-Dienst zuzuordnen, und zwar so:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
backend-service-app --path-matcher-name others --path-rules "/*=backend-service-app"
Was bedeutet diese Fehlermeldung? Was ist mit meinem Befehl nicht in Ordnung?
Antwort1
Ich vermute, dass es etwas damit zu tun hat, dass sowohl doppelte Anführungszeichen als auch Backslashs für das Argument von --path-rules verwendet werden. Insbesondere benötigen Sie den Backslash nicht, um das Fragezeichen zu zitieren. Beachten Sie die Ausgabe von:
print -r -- "\?"
Ebenso benötigen die Zeilenumbrüche innerhalb der Anführungszeichen keinen Backslash, es sei denn, Sie haben die Option csh_junkie_quotes gesetzt.
Es gibt verschiedene Möglichkeiten, wie zsh Ihnen dabei helfen kann, Wörter automatisch zu zitieren. Eine Möglichkeit besteht darin, vielleicht zu versuchen, einen Schlüssel an quote-region zu binden. Dadurch wird die Region (Emacs-Modus) oder die visuelle Auswahl (Vi-Modus) zitiert.