我尝试将其添加到我的ServiceDefinition.csdef文件中:
<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.
最佳答案
您是否缺少该设置的声明?我没有在您的.csdef
中看到适当的元素,类似于<ConfigurationSettings><Setting name="AZURE_STORAGE_ACCOUNT"/></ConfigurationSettings>
。您需要在.csdef
中选择其中之一,然后仍然需要在.cscfg
中包括该值的其中之一。
如果您使用的是Visual Studio,则使用其属性 View 时,它应该为您编辑两个文件。 (只需双击该角色,然后四处单击即可进入配置设置并添加一个新角色。)
关于configuration - Windows Azure : how do I expose a configuration setting as an environment variable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10426296/