Quiero agregar reglas de coincidencia de rutas a un mapa de URL en Google Compute Engine. Aquí está mi comando:
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"
arroja este mensaje de error:
ERROR: (gcloud.compute.url-maps.add-path-matcher) There was a problem modifying the resource:
- Invalid value for field 'resource': ''. Invalid path pattern
No creo haber definido un recurso en blanco en esta línea de comando.
Tengo que citar los parámetros --path-rules
entre comillas porque zsh se quejará de lo contrario.
Esta es la primera regla que quiero definir. Después de esto, agregaré una regla para asignar todo /*
a otro servicio backend, así:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
backend-service-app --path-matcher-name others --path-rules "/*=backend-service-app"
¿Qué significa este mensaje de error? ¿Qué pasa con mi comando?
Respuesta1
Sospecho que tiene algo que ver con el uso de comillas dobles y comillas invertidas para el argumento de --path-rules. En particular, no es necesaria la barra invertida para citar el signo de interrogación. Tenga en cuenta el resultado de:
print -r -- "\?"
De manera similar, las nuevas líneas dentro de las comillas dobles no necesitan una barra invertida a menos que tenga configurada la opción csh_junkie_quotes.
Hay varias formas en que zsh puede ayudarte a citar palabras automáticamente. Una forma es quizás intentar vincular una clave a la región de cotización. Esto citará la región (modo emacs) o la selección visual (modo vi).