使用Powershell进行混淆设置工作者角色诊断

时间:2015-11-09 10:38:34

标签: azure azure-cloud-services azure-diagnostics

我想确保我的工作者角色始终配置了正确的诊断程序,但我遇到了一些问题,并且发现这个非常的文档不清楚。

我在工作者角色上设置了诊断程序并按预期运行;例如,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并进行测试,但我没有信心,因为

  1. 在交换新版本时删除了诊断信息的事实,即使它们在以前的交换中已经很好并且
  2. 文档很不清楚。
  3. 更新

    为了更好地理解这一点,我假设通过Set-生产槽上的诊断*,我将得到我需要的设置。

    我已经这样做了:

    Set-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" `
      -Slot Production -DiagnosticsConfigurationPath "<path to file>" `
      -StorageContext "<context>" -CertificateThumbprint "CERTHUMBPRINT"
    

    但是你从Get-Remove-得到的回报并不是你所期望的那样:

    1. 获取无槽
    2. Get-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService"

      返回ID( NOT EXPECTED

      的对象
        

      默认-PaaSDiagnostics生产-EXT-0

      1. 使用制作广告位
      2. 获取

        Get-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Production

        返回一个ID(预期)

        的对象
          

        默认-PaaSDiagnostics生产-EXT-0

        1. 使用暂存广告位
        2. 获取

          Get-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Staging

          不返回任何对象(预期)

          1. 删除,没有角色或插槽
          2. Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService"

            返回任何要删除的内容(预期)

              

            警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。

            1. 删除,没有任何角色,但暂存广告位
            2. Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Staging

              返回任何要删除的内容(预期)

                

              警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。

              1. 删除,角色&#34; MyRole&#34;和暂存广告位
              2. Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Role "MyRole" -Slot Staging

                返回任何要删除的内容(预期)

                  

                警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。

                1. 删除,但没有任何角色,但生产广告位
                2. Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Slot Production

                  不返回任何要删除的内容(未预期

                    

                  警告:在给定角色上没有启用现有的Microsoft.Azure.Diagnostics.PaaSDiagnostics扩展。

                  1. 删除,角色&#34; MyRole&#34;和生产插槽
                  2. Remove-AzureServiceDiagnosticsExtension -ServiceName "MyCloudService" -Role "MyRole" -Slot Staging

                    返回成功删除(未预期

                      

                    警告:从Cloud Service MyCloudService中删除MyRole的PaaSDiagnostics配置。

                    我不明白为什么Get- no Slot 会返回诊断,但Remove- 没有角色或插槽说那里什么都没有。

                    同样,为什么Remove-无效没有角色而不是与角色

0 个答案:

没有答案