首页 文章

如何在Azure SDK 2.5中更改每个服务配置的诊断存储位置

提问于
浏览
4

在Azure SDK 2.5中,存储帐户在角色的wadcfgx中设置如下:

<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="myDiagnosticAccount" endpoint="https://core.windows.net/" />

问题是我想为分段和 生产环境 分别设置诊断帐户 . 像这样:

用于分期

<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="myProductionDiagStorageAccount" endpoint="https://core.windows.net/" />
</PrivateConfig>

并用于 生产环境

<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="myStageDiagStorageAccount" endpoint="https://core.windows.net/" />
</PrivateConfig>

但我没有看到任何可能的方法来执行此操作,因为此配置是按角色而不是按服务配置 . 在之前的SDK中,我曾经设置了两个不同的诊断连接字符串 - “Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString” - 一切正常 .

我怎样才能在SDK 2.5中实现这一目标?

1 回答

  • 4

    你是对的 . 使用SDK 2.5,无法为不同的部署环境定义不同的存储帐户 .

    一种可能性是保留两个单独的诊断配置文件(一个用于分段,另一个用于 生产环境 ) . 您需要在部署期间禁用诊断,并且在部署代码后,您可以使用Set-AzureServiceDiagnosticsExtension Cmdlet启用诊断 .

    事实上,它似乎是基于这篇博文的推荐方法: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(参见 Headers 为 Enabling diagnostics extension through PowerShell 的部分) . 来自博文:

    由于Azure SDK 2.5使用扩展模型诊断扩展,因此诊断存储的配置和连接字符串不再是部署包和cscfg的一部分 . 所有诊断配置都包含在wadcfgx中 . 这种方法的优点是诊断代理和设置与项目分离,即使在部署应用程序后也可以动态启用和更新 . 由于此更改,需要重新考虑某些现有工作流 - 不是将诊断配置为部署到每个环境的应用程序的一部分,您可以先将应用程序部署到环境中,然后为其应用诊断配置 . 从Visual Studio发布应用程序时,此过程将自动完成 . 但是,如果使用PowerShell在VS之外部署应用程序,则必须通过PowerShell单独安装扩展 .

    UPDATE - 26-May-2015

    SDK 2.6实际上支持不同部署环境的不同存储帐户 . 来自release notes

    现在可以在服务配置(.cscfg)文件中指定诊断存储帐户,以便更轻松地在不同环境中使用不同的诊断存储帐户 .

    如果您已经在使用SDK 2.5,我建议将其升级到SDK 2.6 .

相关问题