Как принудительно удалить содержимое Azure CDN или сделать его недействительным? - PullRequest
10 голосов
/ 06 января 2012

У меня есть содержимое, которое редко меняется и которое я хочу показывать в Azure CDN по соображениям производительности. Однако, когда содержимое действительно изменяется, важно, чтобы обновленные данные были немедленно доступны. В идеале, я мог бы установить длинный TTL, но затем заранее сказать CDN об истечении срока действия контента при его обновлении. Как я могу сделать это? В настоящее время нет API для аннулирования кэша или очистки, и я бы не стал устанавливать короткий TTL.

Ответы [ 4 ]

10 голосов
/ 18 декабря 2015

В декабре 2015 года группа Azure добавила возможность обновлять или очищать CDN через REST API (https://msdn.microsoft.com/en-us/library/mt634451.aspx).. Вначале эта функция доступна только для конечных точек, созданных с помощью нового портала Azure (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).

8 голосов
/ 08 января 2012

НЕТ API для аннулирования CDN Azure.

Обходной путь:

  1. Включите «Состояние строки запроса» в вашем CDN на портале Azure.Затем вы можете добавить новое имя строки запроса и случайное значение, например./images/background.png?v=1234

  2. Загрузить и переименовать новый файл с отметкой времени или случайным значением.например: /images/background.20140917225200.png

  3. Установите более короткий заголовок кэша и дождитесь его истечения.Вот статья из команды Azure http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx

0 голосов
/ 23 августа 2018

Вы также можете удалить содержимое CDN через PowerShell:

$AzureCdnResourceGroupName = "--RESOURCE GROUP--"
$AzureCdnEndpoint = "--ENDPOINT NAME--"
$AzureCdnProfileName = "--CDN PROFILE NAME--"

#In case there's multiple subscriptions on the account
Set-AzureRmContext -SubscriptionId $AzureCdnSubscriptionId
$AzureCdnSubscriptionId = "--SUBSCRIPTION GUID--"

Write-Host "Purging CDN $AzureCdnProfileName/$AzureCdnEndpoint"

Invoke-AzureRmResourceAction `
    -ResourceGroupName $AzureCdnResourceGroupName `
    -ResourceType 'Microsoft.Cdn/profiles/endpoints' `
    -ResourceName $AzureCdnProfileName/$AzureCdnEndpoint `
    -ApiVersion '2015-06-01' `
    -Action 'Purge' `
    -Parameters @{ ContentPaths = @('/static/js/*','/static/css/*') } `
    -Force

Write-Host 'Purging completed'
0 голосов
/ 03 февраля 2012

Вы не можете принудительно очистить CDN.

Рекомендуется добавлять информацию о версии / дате к имени файла и разрабатывать приложение для динамического получения текущего имени файла.

Например, для фотографий продуктов добавьте версию к имени большого двоичного объекта, сохраните имя большого двоичного объекта в таблице и затем предоставьте ссылку на имя из таблицы вместо жесткого кодирования имени файла.

Таким образом, вы можете установить максимальное истечение срока действия для заголовков кэша, и Azure будет просто очищать устаревшее содержимое, когда это необходимо.

...