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
このコマンド ラインで空のリソースを定義していないと思います。
そうしないと zsh がエラーを出すので、パラメータを引用--path-rules
符で囲む必要があります。
/*
これは私が定義したい最初のルールです。これに続いて、すべてを別のバックエンド サービスにマップするルールを追加します。
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 には、単語を自動的に引用符で囲むのに役立つさまざまな方法があります。 1 つの方法は、キーを quote-region にバインドしてみることです。 これにより、領域 (emacs モード) または視覚的な選択 (vi モード) が引用符で囲まれます。