Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Google Cloud backend bucket not returning the image object

I am following the tutorial:

https://cloud.google.com/load-balancing/docs/https/setup-global-ext-https-buckets#buckets_as_load_ba...

I have followed all the steps and set up my backend buckets that point to storage buckets.

However when i point to my load balancer's forwarding rule IP in the browser, i get the following error:

 

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ListBucketResult>
<Name>kierkegaard-bucket</Name>
<Prefix/>
<Marker/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>cat.jpeg</Key>
<Generation>1723653909535859</Generation>
<MetaGeneration>1</MetaGeneration>
<LastModified>2024-08-14T16:45:09.539Z</LastModified>
<ETag>"603be4bf40ae47559b446501d13ffe1f"</ETag>
<Size>242448</Size>
</Contents>
</ListBucketResult>

 

What am i missing here please?

Solved Solved
1 15 1,046
2 ACCEPTED SOLUTIONS

Hi @mountaincode2,

The idea behind unmatched paths is that they allow any existing path within your buckets to be read. Any path that doesn't match a specific rule will be served by your default backend bucket. Let's examine your provided routing rules and backend buckets.

Routing rules:

All unmatched (default)

All unmatched (default)

kierkegaard-backend

*

/seneca/*

seneca-backend

*

All unmatched (default)

kierkegaard-backend

Based on your configuration, your default backend bucket is kierkegaard-backend, which handles all paths that exist within it. However, any request targeting /seneca/*, such as "http://<loadbalancer_front_end_IP>/seneca/dog.jpg" (assuming dog.jpg exists), will use seneca-backend. For instance, if the /seneca/ folder also exists within your default backend (kierkegaard-backend), your load balancer will prioritize seneca-backend because you have a specific path rule for /seneca/*.

Furthermore, if objects are not being served, it's likely due to requesting non-existent paths or objects as previously discussed.

 

I hope this gives you an idea.

View solution in original post

Hi @mountaincode2,

That is correct. Your request should specify an existing path and object within your default bucket. This is why you are receiving a raw XML response due to the path not existing and no object within your request.

If you want your load balancer to serve a web error page whenever a request is not found, you can use the    “--web-error-page” flag, as previously discussed.

 

I hope this helps!

View solution in original post