Question

Atanu21 on Tue, 06 Dec 2016 06:13:02


Getting Cache status for Azure CDN as 'UNCACHEABLE' while trying to serve files from Azure Data lake.
How to ensure data lake response is being cahced to CDN edge servers or remove the Cache-Control and Expires headers  for Data lake?

Sponsored



Replies

Richard Li - MSFT on Tue, 06 Dec 2016 19:00:47


Hi Atanu21,

Can you share the entire request and response including headers?

Are you using Akamai or Verizon CDN Profile?

There are a number of reasons a file can be uncacheable. If you'd rather not share details on the forum, you can send them to me directly at rli@microsoft.com

Atanu21 on Wed, 07 Dec 2016 09:17:45


Hi Richard,

I have sent you a mail regarding the same.

However I can still post my request/response here.I am trying with both Akamai and Verizon profiles.Origin is 'Azure Data lake'.

Request

curl -v -X GET -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlJyUXF1OXJ5ZEJWUldtY29jdVhVYjIwSEdSTSIsImtpZCI6IlJyUXF1OXJ5ZEJWUldtY29jdVhVYjIwSEdSTSJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuY29yZS53aW5kb3dzLm5ldC8iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wNmZhNTQ1Yy01MmQ3LTRiOGMtYjBmNy03MzQ5MTFiNDA0MmEvIiwiaWF0IjoxNDgxMTAwMzcyLCJuYmYiOjE0ODExMDAzNzIsImV4cCI6MTQ4MTEwNDI3MiwiYXBwaWQiOiI3MzU0NDBhNy1kM2RmLTQ0YjEtYTk2Yy0wMTlhMzE5NmEwYmYiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wNmZhNTQ1Yy01MmQ3LTRiOGMtYjBmNy03MzQ5MTFiNDA0MmEvIiwib2lkIjoiNTM4OTQyMjQtNDIyNC00MTllLTgxNzAtMzQ3NTQwNGI2NGFlIiwic3ViIjoiNTM4OTQyMjQtNDIyNC00MTllLTgxNzAtMzQ3NTQwNGI2NGFlIiwidGlkIjoiMDZmYTU0NWMtNTJkNy00YjhjLWIwZjctNzM0OTExYjQwNDJhIiwidmVyIjoiMS4wIn0.DK_OKyzJUVRJEbmV8xny_lWuEfyjG3hBn20drYf6gQwzoRlmFms3VRZmsKHqywWSjpz8QhujPmm6NyAAdjqUaogap0C5F8pGyP1_TpiPjenOCz5LHR04dUGQBf2aSzDSULuFeqNF0H5-Bpe8hvarLOU13mVnK9StPWgp19V5Bbr-vPmh4gEcBXODl9Pnpmt_VCICTSwkFiedA7Vw3FzBoy8CoJ9FQZWQrQdthjwzP-RcMGe4YVpjBPyZAnA44TTF31LVPjy82_08fvSX1KrIW5o114_y3BseGTwOPCobMvsHcPUB6Da8OuFovXbdmfpD0B2iazjp5dxAb4OQStCnsw" -H "x-ms-client-request-id: 14930640-86b7-427b-8b24-65abdd23fccf.0" -H "User-Agent: ADLSJavaSDK-2.0.11/Windows8-6.2/amd64/OracleCorporation-1.7.0_17" -H "Cache-Control: public, max-age=0, s-max-age=3600" "https://signsdemo5.azureedge.net/signsdata/test.txt?op=OPEN&api-version=2016-11-01&read=true"

Response

Is file content from Data lake.But Response headers are as below.

HTTP/1.1 200 OK
Cache-Control: no-cache, no-cache, no-store, max-age=0
Content-Type: application/octet-stream
Date: Wed, 07 Dec 2016 09:03:45 GMT
Expires: -1
Pragma: no-cache
Server: ECAcc (oxr/831C)
Status: 0x0
Strict-Transport-Security: max-age=15724800; includeSubDomains
X-Content-Type-Options: nosniff
x-ms-request-id: 55c08b3e-d9df-4fdb-971d-6e8bbd2ccd8e
x-ms-webhdfs-version: 16.07.18.01
Transfer-Encoding: chunked

Cache_Hit_Ratio is always 0% and Cache_Status is either 'TCP_MISS / UNCACHEABLE'

Richard Li - MSFT on Wed, 07 Dec 2016 19:34:28


Hi, I responded over email but sharing it here as well.

One solution is to investigate what setting on your origin is adding these headers, and remove them.

 

If you want to force the cdn to cache, you must use a Verizon premium profile, go into the rules engine in the supplemental portal, and use a “Force Internal Max-Age” and/or Force External Max-Age” setting to override the cache header sent from the origin.

 

https://docs.microsoft.com/en-us/azure/cdn/cdn-rules-engine

 

We are also working on bringing this feature to the standard profiles in the near future.