由于我们更新到 Azure SKD 2.5,我们无法再在角色启动时更新诊断配置。相反,我们现在使用 Microsoft Azure PowerShell Cmdlet 来更新我们的 Web 和辅助角色诊断配置。
在开发我们的配置脚本时,我们注意到在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 更新诊断配置而不是在角色启动时更新诊断配置,我们的整体部署时间大约增加了一倍。我认为增加的主要原因是配置更新时角色重新启动。有没有办法避免这种情况?
谢谢!