我想确保我的工作者角色始终配置了正确的诊断程序,但我遇到了一些问题,并且发现这个非常的文档不清楚。
我在工作者角色上设置了诊断程序并按预期运行;例如,WAD表全部被填充。
这已经工作了好几个月,我们已经部署(通过从暂存到生产的交换VIP)新版本的工作者角色,并且诊断工作继续按预期运行。
但是,最近,我们部署了新版本的工作者角色(再次通过Swap VIP),并且已经删除了诊断程序。使用
Get-AzureServiceDiagnosticsExtension -ServiceName "blah" -Slot "Production"
cmdlet我可以看到,确实工作者角色没有诊断配置。
显然,我错过了使用
配置工作者角色的方法Set-AzureServiceDiagnosticsExtension
The documentation非常不清楚-Role
和-Slot
参数的作用
(empahsis mine)
-Role<字符串[]>
可选的角色数组,用于指定诊断配置。如果未指定,则将诊断配置应用为所有角色的默认配置。
这是否意味着所有部署立即获得配置,无论其角色还是插槽?或者这是否意味着我正在设置"默认"对于我之后制作的任何部署?如果我后来使用-Slot参数运行此命令,这是否会影响"默认"?为什么`Get-AzureServiceDiagnosticExtension 不有-Role参数?
-Slot<字符串>
指定要修改的部署的环境。支持的值是"生产"或"分期"。
但是,如果我不提供-Slot,该怎么办?这是否意味着所有插槽立即获取配置? -Sole如何使用-Role,因为没有提及"默认"这里像-Role文档?
Remove-AzureServiceDiagnosticsExtension
也有-Slot和-Role 这一事实带来了额外的混淆,但documentation并不清楚如何与"默认&# 34;它在Set-
cmdlet文档中描述的配置。 在没有-Role或-Slot的情况下删除所有内容,或仅删除"默认"您Set-
没有-Role或-Slot?
我想要做的是确保我只需要设置诊断一次。即,在我第一次创建工作者角色时,我设置了诊断程序,而不必再次触摸它。
但是,我更加复杂的是,我希望不为 Staging 记录诊断,只记录 Production 。
我一直在玩cmdlet并进行测试,但我没有信心,因为
更新
为了更好地理解这一点,我假设通过Set-
生产槽上的诊断*,我将得到我需要的设置。
我已经这样做了:
Set-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" `
-Slot Production -DiagnosticsConfigurationPath "<path to file>" `
-StorageContext "<context>" -CertificateThumbprint "CERTHUMBPRINT"
但是你从Get-
和Remove-
得到的回报并不是你所期望的那样:
Get-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService"
返回ID( NOT EXPECTED )
的对象默认-PaaSDiagnostics生产-EXT-0
Get-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Production
返回一个ID(预期)
的对象默认-PaaSDiagnostics生产-EXT-0
Get-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Staging
不返回任何对象(预期)
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService"
返回任何要删除的内容(预期)
警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Staging
返回任何要删除的内容(预期)
警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Role "MyRole" -Slot Staging
返回任何要删除的内容(预期)
警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Production
不返回任何要删除的内容(未预期)
警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。
Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Role "MyRole" -Slot Staging
返回成功删除(未预期)
警告:从Cloud Service MyCloudService中删除MyRole的PaaSDiagnostics配置。
我不明白为什么Get-
no Slot 会返回诊断,但Remove-
没有角色或插槽说那里什么都没有。
同样,为什么Remove-
无效没有角色而不是与角色?