Quero adicionar regras de correspondência de caminho a um mapa de URL no mecanismo de computação do Google. Aqui está o meu 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"
lança esta mensagem de erro:
ERROR: (gcloud.compute.url-maps.add-path-matcher) There was a problem modifying the resource:
- Invalid value for field 'resource': ''. Invalid path pattern
Acho que não defini um recurso em branco nesta linha de comando.
Eu tenho que citar os parâmetros --path-rules
entre aspas porque o zsh reclamará do contrário.
Esta é a primeira regra que quero definir. Em seguida, adicionarei uma regra para mapear tudo /*
para outro serviço de back-end, assim:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
backend-service-app --path-matcher-name others --path-rules "/*=backend-service-app"
O que significa essa mensagem de erro? O que há de errado com meu comando?
Responder1
Eu suspeito que tenha algo a ver com o uso de aspas duplas e barras invertidas para o argumento de --path-rules. Em particular, você não precisa da barra invertida para citar o ponto de interrogação. Observe a saída de:
print -r -- "\?"
Da mesma forma, as novas linhas entre aspas duplas não precisam de barra invertida, a menos que você tenha a opção csh_junkie_quotes definida.
Existem várias maneiras pelas quais o zsh pode ajudá-lo a citar palavras automaticamente. Uma maneira é talvez tentar vincular uma chave à região de cotação. Isto irá citar a região (modo emacs) ou seleção visual (modo vi).