首页 文章

Azure PowerShell Cmdlet和设置服务诊断(Set-AzureServiceDiagnosticsExtension)

提问于
浏览
1

自从我们更新到Azure SKD 2.5后,我们无法再更新角色启动时的诊断配置 . 我们现在使用Microsoft Azure PowerShell Cmdlet来更新我们的Web和辅助角色诊断配置 .

在开发我们的配置脚本时,我们注意到在没有先调用 Remove-AzureServiceDiagnosticsExtension 的情况下调用_958351将失败,并显示以下错误:

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来更新现有配置 . 有没有更好的方法来做到这一点,不需要我们必须调用删除和设置?

我们还注意到,由于通过powershell和角色启动更新诊断配置,我们的整体部署时间大约翻了一番 . 我认为增加的主要原因是配置更新后重新启动的角色 . 有没有办法避免这种情况?

谢谢!

2 回答

  • 1

    确保在调用 Set-AzureServiceDiagnosticsExtension 时添加-Role参数 .

    正如 Saurabh Bhatia 在评论中指出的那样@ Windows Azure Diagnostics – Upgrading from Azure SDK 2.4 to Azure SDK 2.5

    对于Powershell脚本,请确保在设置扩展名时明确传入-Role . 如果扩展已经存在,并且您没有明确传入该角色,那么您可能会看到提到的错误 . 同样,当您删除扩展名时,请确保明确传入要从中删除扩展名的-role . 如果任何角色上都没有诊断扩展,则可以调用set extension ps而不使用Role在所有角色上设置扩展名 .

  • 2

    正如Kevin Williamson [MSFT]在他的博客文章中描述的那样:

    使用Visual Studio对WAD配置进行部署后更新时,首先使用Get Extension API下载扩展配置以获取当前配置,然后使用Add Extension API更新新配置,然后更改部署配置以关联新配置扩展配置到服务,然后删除扩展以删除旧的扩展配置 .

    http://blogs.msdn.com/b/kwill/archive/2014/12/02/windows-azure-diagnostics-upgrading-from-azure-sdk-2-4-to-azure-sdk-2-5.aspx

相关问题