Поскольку мы обновились до Azure SKD 2.5, мы больше не можем обновлять конфигурацию диагностики при запуске роли. Вместо этого теперь мы используем командлеты Microsoft Azure PowerShell для обновления конфигурации диагностики веб-ролей и рабочих ролей.
При разработке нашего сценария конфигурации мы заметили, что вызов Set-AzureServiceDiagnosticsExtension
без предварительного вызова Remove-AzureServiceDiagnosticsExtension
завершится ошибкой со следующей ошибкой:
VERBOSE: Setting default PaaSDiagnostics configuration for all roles.
VERBOSE: 10:01:19 AM - Begin Operation: Set-AzureServiceDiagnosticsExtension
Set-AzureServiceDiagnosticsExtension : BadRequest: Cannot add extension 'Default-PaaSDiagnostics-Production-Ext-0'
with same name space 'Microsoft.Azure.Diagnostics' and type 'PaaSDiagnostics' more than once.
At C:\Github\cloud-build\lib\UpdateDiagnosticsBuildStep.ps1:109 char:7
+ Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -Diag ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Set-AzureServiceDiagnosticsExtension], CloudException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions.SetAzureServiceDiagnosticsE
xtensionCommand
В идеале мы могли бы просто вызвать set для обновления существующей конфигурации. Есть ли лучший способ сделать это, не требующий вызова remove и set?
Мы также заметили, что общее время развертывания увеличилось примерно вдвое в результате обновления диагностической конфигурации через PowerShell по сравнению с запуском роли. Я думаю, что это увеличение в основном связано с перезапуском ролей при обновлении конфигурации. Есть ли способ этого избежать?
Спасибо!