CloudLoadBalancingでバックエンドバケットにルーティングするときはpathとバケット内の階層を一致させよう
GoogleCloudLoadBalancing(以下、GCLB)のurl-mapを指定して、バックエンドバケットにルーティングするときに地味にハマったエラーとその解消法について書きます。 環境 1 2 3 4 5 6 7 GoogleCloud # terraformで構築するため一応バージョンのせておく terraform --version v1.3.5 hashicorp/google v4.74.0 結論 GCLBを経由してGCSのオブジェクト参照するときは、オブジェクトのpathとurl-mapで指定するpathは一致させる必要があります。 解説 今回使用するterraformのコードの一部です。他にもgcsなどのリソースも作ってますが、解説する内容とは関係ないので省略してます。 デフォルトのルートとは別にpaths = ["/test/*"]でバックエンドバケットにルーティングするように設定されています。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 resource "google_compute_url_map" "default" { name = "${local.project}-${local.prefix}" default_service = google_compute_backend_bucket.backend_bucket.id host_rule { hosts = ["*"] path_matcher = "path-matcher-2" } path_matcher { name = "path-matcher-2" default_service = google_compute_backend_bucket.backend_bucket.id path_rule { paths = ["/test/*"] service = google_compute_backend_bucket.backend_bucket.id } } } 上記のコードで構築した、GCLBの設定は以下のようになっています。 ...