2012-01-06 5 views
9

성능상의 이유로 Azure CDN에 게재하고 싶은 내용이 거의 없습니다. 그러나 콘텐츠가 변경되면 업데이트 된 데이터를 즉시 사용할 수 있어야합니다. 이상적으로는 긴 TTL을 설정할 수 있지만 업데이트 할 때 CDN에 콘텐츠 만료를 사전에 알리십시오. 이것을 어떻게 할 수 있습니까? 현재 캐시 무효화 또는 삭제 API는 없으며 짧은 TTL을 설정하지 않을 것입니다.Azure CDN 콘텐츠를 제거하거나 무효화하려면 어떻게해야합니까?

답변

8

Azure CDN을 무효화 할 API가 없습니다.

해결 방법 :

  1. 푸른 포털에 CDN의 "쿼리 문자열 상태"를 사용합니다. 그런 다음 새로운 쿼리 문자열 이름과 임의 값을 추가 할 수 있습니다. /images/background.png?v=1234

  2. 타임 스탬프 또는 임의 값을 사용하여 새 파일을 업로드하고 이름을 변경하십시오. 예 : /images/background.20140917225200.png

  3. 캐시 헤더를 짧게 설정하고 만료 될 때까지 기다리십시오. Azure 팀의 기사입니다. http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx

+2

고마워요, 기본적으로 제가 취한 경로입니다. 변경 될 때마다 증가하는 DataVersion이 있으며, 클라이언트는 Out of Bend REST를 호출하여 최신 DataVersion을 찾은 다음 파일 이름에 포함 된 파일을 요청합니다. CDN. –

+2

Azure가 파일을 변경 한 후에도 TTL 만료 전에 동일한 문제가 발생했습니다. Amazon S3로 전환했습니다. 무효화가 가능합니다 (비용은 비쌉니다). 또한 우리의 경우 아시아, 오스트레일리아 및 남아메리카에서 더 나은 서비스를 제공합니다. –

0

CDN 제거를 강제로 수행 할 수 없습니다.

파일 이름에 버전/날짜 정보를 추가하고 현재 파일 이름을 동적으로 가져 오도록 앱을 디자인하는 것이 가장 좋습니다.

제품 사진의 경우, blob 이름에 버전을 추가하고 blob 이름을 테이블에 저장 한 다음 파일 이름을 하드 코딩하는 대신 테이블의 이름에 대한 링크를 제공하십시오.

이렇게하면 캐시 헤더에 max-expiry를 설정할 수 있습니다. Azure는 필요할 때 오래된 내용을 정리합니다.

9

12 월 2015 일 Azure 팀은 REST API (https://msdn.microsoft.com/en-us/library/mt634451.aspx)를 통해 CDN을 새로 고치거나 제거하는 기능을 추가했습니다. 처음에는이 기능이 새로운 Azure Portal (http://portal.azure.com)을 사용하여 만든 끝점에서만 사용할 수 있지만 이전 관리 표면에서 생성 된 CDN은 2016 년 (https://feedback.azure.com/forums/169397-cdn/suggestions/556307-ability-to-force-the-cdn-to-refresh-any-cached-con)의 시작 부분에 마이그레이션됩니다.

+0

한 번에 전체 끝점을 제거할지, 아니면 개별 모양을 제거 할 수 있습니까? – jz87

+0

@ jz87 : 새 API를 사용하여 특정 콘텐츠 경로 (삭제 또는로드 할 콘텐츠의 경로)를 제거 할 수 있습니다. https://msdn.microsoft.com/en-us/library/mt634451.aspx를 참조하십시오. – Alex