loadbalancerではurlに応じてbackendを振りわけることが可能で、例えば以下のような設定ができる。
https://example.com/app/* -> app serverとなるcloudrunのインスタンスへ https://example.com/web/* -> cloud storageへ
以下のurlにアクセスしたとき
https://example.com/web/aaa/bbb.txt
cloud storageにアクセスがいくが、取得されるファイルはwebという名前のbucket内にあるディレクトリaaa直下のbbb.txtというファイルである。
loadbalancer側の設定としては上記に書いたように /web/*
ならこちら、のような形の設定を行っているため、*
の部分が展開されてbackend側で使われると勝手にイメージしていたが間違いだった。
意図していた通りに*の部分だけをbackend側に渡したい場合、詳細設定に含まれる"パスの接頭辞の書き換えとして /
を指定しておけばOK。
Cloud Load Balancingでマッチしたパスを特定のサービスに振り分ける
terraformでの設定なら path_prefix_rewrite
を設定しておけばよい。