Недопустимое значение для поля «ресурс»: «». Недопустимый шаблон пути при добавлении правил пути

Недопустимое значение для поля «ресурс»: «». Недопустимый шаблон пути при добавлении правил пути

Я хочу добавить правила сопоставления путей в карту URL в Google Compute Engine. Вот моя команда:

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).

Связанный контент