Windows Azure:如何将配置设置公开为环境变量?

我尝试添加这对我ServiceDefinition.csdef中的文件:Windows Azure:如何将配置设置公开为环境变量?

<WorkerRole ...><Runtime><Environment> 

<Variable name="AZURE_STORAGE_ACCOUNT">

<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='AZURE_STORAGE_ACCOUNT']/@value" />

</Variable>

</Environment></Runtime></WorkerRole>

我设置的配置在我ServiceConfiguration.Cloud.cscfg文件中设置:

<Role name="WorkerRole"> 

<ConfigurationSettings>

<Setting name="AZURE_STORAGE_ACCOUNT" value="<secret stuff>" />

</ConfigurationSettings>

</Role>

但我得到以下错误,当我运行cspack

CloudServices091 : The '/RoleEnvironment/CurrentInstance/Configur 

ationSettings/ConfigurationSetting[@name='AZURE_STORAGE_ACCOUNT']/@value' is an

invalid xpath expression.

回答:

该配置似乎是正确的。如果你能确保你使用的是最新的SDK,会更好。 xPath功能在Windows Azure SDK 1.5和更高版本中可用。

最好的问候,

Ming Xu。

回答:

您是否错过了该设置的声明?我在.csdef中看不到相应的元素,例如<ConfigurationSettings><Setting name="AZURE_STORAGE_ACCOUNT"/></ConfigurationSettings>。您需要.csdef中的其中一个,然后您仍然需要包含该值的.cscfg中的那个。

如果您使用Visual Studio,则应使用其属性视图为您编辑这两个文件。 (只需双击该角色,然后单击左键即可配置设置并添加一个新设置。)

回答:

我已经尝试过在博客中提到的不同选项,例如包括.cscfg和.csdef中的设置。但是,它似乎并不奏效。 此外,其他XPath查询像

 <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/@id"/> 

正常工作。

最后,我想通了,使用的变量名是不同的:

在cscfg我:

<Setting name="WFFEPeriodicRestartTime" value="168:00:00" /> 

在csdef我:

<ConfigurationSettings> 

<Setting name="PeriodicRestartTime" />

</ConfigurationSettings>

.... ...

<Variable name="PeriodicRestartTime"> 

<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='WFFEPeriodicRestartTime']/@value" />

</Variable>


更改csdef到:

<ConfigurationSettings> 

<Setting name="WFFEPeriodicRestartTime" />

</ConfigurationSettings>

.... ....

<Variable name="WFFEPeriodicRestartTime"> 

<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='WFFEPeriodicRestartTime']/@value" />

</Variable>


它似乎正常工作,现在

以上是 Windows Azure:如何将配置设置公开为环境变量? 的全部内容, 来源链接: utcz.com/qa/266208.html

回到顶部