#powershell #azure-cdn #azure-storage-account
Вопрос:
У меня есть конечная точка CDN, которую мы настроили для обслуживания веб-контента (в основном сценариев и изображений js). Сайт развертывается с помощью Azure DevOps. Все хорошо работало в прошлом.
Теперь у нас есть крупное обновление версии веб-сайта и сделано много обновлений сценариев. Однако мы заметили, что версия файлов, обслуживаемых CDN, не меняется. Поэтому я добавил задачу очистки Azure Powershell в наш конвейер Azure DevOps для удаления файлов (с помощью Az). Я использую следующую команду:
[string[]]$purge = @(“/lib/app/Controllers/file1.js", “/lib/app/Controllers/files2.js", “/lib/app/Controllers/billingController.js", “/lib/app/Controllers/file3.js", “/lib/app/Controllers/file4.js"");
Unpublish-AzCdnEndpointContent -ResourceGroupName ${{parameters.resourceGroup}} -ProfileName application$(environment) -EndpointName application$(environment) -PurgeContent $purge;
Я вижу, как работает команда, и, проверив журнал действий на конечной точке, я вижу, что очистка была успешно отправлена:
однако, когда я пытаюсь просмотреть кэшированный файл, в нем все еще есть старая версия. Мы намеренно поместили баннер с датой в верхнюю часть каждого файла сценария, чтобы мы могли отслеживать обновление, но мы не видим этого в кэшированных файлах. Я также перешел к некоторым файлам по URL-адресам учетной записи хранения и вижу, что файлы были обновлены, как и ожидалось.
В отдельном пункте я попытался выполнить приведенную выше команду powershell с помощью /. /папка/, но ни один из них, похоже, не работает. Это затрудняет, потому что мы не можем видеть содержимое CDN, чтобы узнать, почему оно не очищается должным образом
Я также пробовал использовать интерфейс командной строки az. Похоже, это тоже не работает. В любом случае, не могли бы вы помочь, пожалуйста?
Ответ №1:
Я обошел это, используя Standard_Microsoft в качестве поставщика CDN, а не Standard_Akamai, который я использовал раньше в Azure.
Это имеет дополнительное преимущество в том, что параметр подстановочного знака ‘/*’ также работает